Untitled
unknown
plain_text
4 years ago
9.2 kB
5
Indexable
import React from 'react'; import classes from '../Lesson.module.scss'; const Lesson32 = () => ( <div className={classes.root}> <h1> REKONSTRUKCIJA NISKE KAO OJLEROVA PUTANJA </h1> <p className={classes.indent1x}> U prethodnom delu smo problem rekonstrukcije niske na osnovu njene kompozicije rešavali pomoću Hamiltonove putanje u grafu koji smo formirali na osnovu njene kompozicije. Ono što nismo pomenuli jeste da možemo imati više takvih putanja: </p> <p className={classes.indent2x}>Putanja koju smo dobili u prethodnom delu:</p> <img alt="" src="/assets/lesson32/pic1.svg" className={classes.indent3x} /> <p className={classes.indent2x}>Još jedna Hamiltonova putanja istog grafa:</p> <img alt="" src="/assets/lesson32/pic2.svg" className={classes.indent3x} /> <p className={classes.indent2x}> Imamo dve Hamiltonove putanje. Ali to nije jedini problem ovog pristupa. Pored toga, nemamo ni odgovarajući algoritam pomoću kojeg ćemo odrediti te putanje. Zato menjamo pristup, i umesto da posmatramo očitavanja kao čvorove, posmatraćemo ih kao grane grafa: </p> <img alt="" src="/assets/lesson32/pic3.svg" className={classes.indent3x} /> <p className={classes.indent2x}> Dok ćemo čvorove između kojih se nalazi grana obeležiti na sledeći način: </p> <img alt="" src="/assets/lesson32/pic4.svg" className={classes.indent3x} /> <p className={classes.indent2x}>Tj, dobićemo sledeću putanju:</p> <img alt="" src="/assets/lesson32/pic5.svg" className={classes.indent3x} /> <p className={classes.indent2x}> Kako bismo kreirali graf od ovih čvorova i grana, spojićemo sve one čvorove koji su identični: </p> <p className={classes.indent2x}>korak1</p> <img alt="" src="/assets/lesson32/pic6.svg" className={classes.indent3x} /> <p className={classes.indent3x}> Imamo tri AT čvora. Prvo ih približavamo tako da budu jedan ispod drugog: </p> <img alt="" src="/assets/lesson32/pic7.svg" className={classes.indent4x} /> <p className={classes.indent3x}>Zatim ih spajajmo u jedan čvor:</p> <img alt="" src="/assets/lesson32/pic8.svg" className={classes.indent4x} /> <p className={classes.indent2x}>korak2</p> <p className={classes.indent3x}>Imamo tri identična čvora TG:</p> <img alt="" src="/assets/lesson32/pic9.svg" className={classes.indent4x} /> <p className={classes.indent3x}>Spajamo ih u jedan čvor:</p> <img alt="" src="/assets/lesson32/pic10.svg" className={classes.indent4x} /> <p className={classes.indent2x}>korak3</p> <p className={classes.indent3x}> Na kraju nam ostaju samo još dva identična čvora, čvorovi GG: </p> <img alt="" src="/assets/lesson32/pic11.svg" className={classes.indent4x} /> <p className={classes.indent3x}>Spajamo ih:</p> <img alt="" src="/assets/lesson32/pic12.svg" className={classes.indent4x} /> <p className={classes.indent2x}> Kao rezultat dobijamo graf kojim ćemo se baviti u ovom delu, takozvani <b>De Brujinov graf</b>: </p> <img alt="" src="/assets/lesson32/pic13.svg" className={classes.indent3x} /> <p className={classes.indent3x}> Genom na osnovu De Bruijinovog grafa će biti konstruisan kao putanja tog grafa koja posećuje svaku njegovu granu <b>tačno</b> jednom: </p> <p className={classes.indent3x}>korak1</p> <p className={classes.indent3x}>Počinjemo od čvora TA i krećemo se po putanji.</p> <img alt="" src="/assets/lesson32/pic14.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak2</p> <img alt="" src="/assets/lesson32/pic15.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak3</p> <p className={classes.indent3x}> Imamo 3 mogućnosti. Svejedno je koju ćemo izabrati jer sve vode ka istom čvoru. </p> <img alt="" src="/assets/lesson32/pic16.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak4</p> <img alt="" src="/assets/lesson32/pic17.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak5</p> <img alt="" src="/assets/lesson32/pic18.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak6</p> <img alt="" src="/assets/lesson32/pic19.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak7</p> <img alt="" src="/assets/lesson32/pic20.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak8</p> <img alt="" src="/assets/lesson32/pic21.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak9</p> <img alt="" src="/assets/lesson32/pic22.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak10</p> <img alt="" src="/assets/lesson32/pic23.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak11</p> <img alt="" src="/assets/lesson32/pic24.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak12</p> <img alt="" src="/assets/lesson32/pic25.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak13</p> <img alt="" src="/assets/lesson32/pic26.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak14</p> <img alt="" src="/assets/lesson32/pic27.svg" className={classes.indent4x} /> <p className={classes.indent3x}>korak15</p> <img alt="" src="/assets/lesson32/pic28.svg" className={classes.indent4x} /> <p className={classes.indent1x}> <span className={classes.red}>Definicija.</span> <b>Ojlerova putanja</b> grafa je putanja koja posećuje svaku granu tog grafa tačno jednom. </p> <p className={classes.indent1x} /> <p className={classes.indent1x}> Sada naš problem rekonstrukcije niske na osnovu njene kompozicije možemo definisati na sledeći način: </p> <p className={classes.indent1x}>PROBLEM OJLEROVE PUTANJE</p> <p className={classes.indent2x}>ulaz: graf Graf</p> <p className={classes.indent2x}> izlaz: niska Putanja koji posećuje svaku granu grafa Graf tačno jednom </p> <p className={classes.indent1x}> Ojler je rešio ovaj problem rešavajući <b>Problem kenigsberških mostova</b>: </p> <p className={classes.indent1x}>PROBLEM KENIGSBERŠKIH MOSTOVA</p> <p className={classes.indent2x}> Preko reke Pregel koja protiče kroz Kenigsberg (nekada u Pruskoj, danas pod imenom Kalinjingrad u Rusiji) i koju dva ostrva dele na dva rukavca, postoji sedam mostova koji povezuju ostrva i obale reke, kao što je prikazano na slici ispod. Stanovnici grada su dugo bili okpirani sledećim pitanjem: Da li je moguće preći sve mostove ne prelazeći ni preko jednog mosta dva ili više puta? </p> <img alt="" src="/assets/lesson32/pic29.svg" className={classes.indent3x} /> <p className={classes.indent1x}> On je na osnovu date slike konstruisao graf u kome su odgovarajući čvorovi predstavljali okruge, a grane mostove koji povezuju te okruge: </p> <img alt="" src="/assets/lesson32/pic30.svg" className={classes.indent2x} /> <p className={classes.indent1x}> Ojler je rešio ovaj problem 1736. godine. Njegov dokaz o nepostojanju željenog puta preko kenigsberških mostova se obično uzima kao početak jedne nove matematičke discipline - Teorija grafova. </p> <p className={classes.indent1x}> Prikazani graf za kenigsberške mostove je neusmereni graf. Mi smo u ovom delu radili sa usmerenim grafovima, ali to nema značajnog uticaja jer su razlike između usmerenih i neusmerenih grafova male. Na dalje, radićemo sa usmerenim grafovima jer oni odgovaraju problemu koji rešavamo. </p> <p className={classes.indent1x}> Nakon prikaza ovog problema imamo dva veoma slična problema koja su ekvivalentna problemu rekonstrukcije niske: </p> <p className={classes.indent1x}>PROBLEM HAMILTONOVE PUTANJE</p> <p className={classes.indent2x}>ulaz: graf Graf</p> <p className={classes.indent2x}> izlaz: niska Putanja koji posećuje svaki <b>čvor</b> grafa Graf tačno jednom </p> <p className={classes.indent1x}>PROBLEM OJLEROVE PUTANJE</p> <p className={classes.indent2x}>ulaz: graf Graf</p> <p className={classes.indent2x}> izlaz: niska Putanja koji posećuje svaku <b>granu</b> grafa Graf tačno jednom </p> <p className={classes.indent1x}> Međutim, ispostavlja se da ova dva problema imaju različitu algoritamsku sudbinu. Za problem Hamiltonove putanje (koji je NP-kompletan problem) ne postoji efikasan algoritam koji ga rešava, dok za problem Ojlerove putanje to nije slučaj (Ojler je našao efikasan algoritam za taj problem). Samim tim, u nastavku ćemo se fokusirati na Ojlerov problem i prikazati ga detaljnije. </p> </div> ); export default Lesson32;
Editor is loading...