Académique Documents
Professionnel Documents
Culture Documents
Euclidean TSP
Problem komiwojaera (Traveling Salesman Problem, TSP) Majc n wierzchokowy graf I dla kadej pary rnych wierzchokw {i,j} koszt d(i,j) krawdzi midzy nimi, znajd najtaszy cykl, ktry przechodzi przez kady wierzchoek dokadnie raz Problem komiwojaera w przestrzeni metrycznej koszty krawdzi speniaj nierwno trjkta , tj.
Problem komiwojaera na paszczynie Euklidesowej wierzchoki to punkty na paszczynie punkt i-ty ma wsprzdne Odlego za to:
Co wiadomo o TSP?
Problem jest NP-zupeny Aproksymacja TSP ze staym wspczynnikiem jest NP-zupena Nawet Euclidan TSP jest NP-zupeny! Ale Euclidan TSP daje si aproksymowa
Wczeniejsze rezultaty
Przed powstaniem pracy Saanjeva Arory:
Wspczynnik 3/2 (Christofides 1976) Wspczynnik 4/3 (nie udowodniony, jedynie podejrzewany!) (Held-Karp ) Rozwizanie optymalne w (Smith 1988)
Znany jest PTAS np. dla problemw SubsetSum i Bin-packing Arora (1992) pokaza, e jeli P NP to metric TSP nie ma PTAS
Ale Euclidan TSP to bardzo szczeglny przypadek! Przedstawimy PTAS dla Euclidan TSP taki, e dla wspczynnika aproksymacji 1+1/c algorytm dziaa w czasie Zatem jest on prawie liniowy i asymptotycznie szybszy ni przejrzenie wszystkich krawdzi, ktrych jest
Pomys
Podzieli paszczyzn na podobszary za pomoc quadtree, Ograniczy przejcia przez krawdzie podziaw do kilku ustalonych punktw, Zgadywa jak cieka bdzie przebiega wewntrz kadego podobszaru i niezalenie oblicza rozwizanie wewntrz, czy obliczone podrozwizania
Pomys
Zaley nam na podziale paszczyzny, ktry utworzy niewiele podobszarw, Podzia bdzie randomizowany aby czciowo uniezaleni si od rozkadu punktw, Wpowadzona bdzie perturbacja punktw Jak bdzie wyglda podzia paszczyzny, a jak perturbacja?
Quadtree
Drzewo o stopniu rozgazienia 4 dla zbioru punktw P Kady wierzchoek v reprezentuje kwadrat k(v) na paszczynie. Korze reprezentuje najmniejszy kwadrat mieszczcy cay zbir P Wierzchoek v jest liciem, jeli w k(v) znajduje si co najwyej jeden punkt ze zbioru P W przeciwnym razie kwadrat k(v) jest dzielony na czterech synw reprezentujcych podzia k(v) na cztery mniejsze kwadraty Liczba lici jest - kady li albo zawiera dokadnie jeden punkt z P albo jest bratem innego licia, ktry zawiera dokadnie jeden wierzchoek zatem maksymalnie 4n lici
Quadtree
Quadtree
Zamy, e punkty maj wsprzdne cakowite, a rozmiar bounding-boxa (najmniejszego kwadratu mieszczcego wszystkie punkty, czyli k(root)) to , Skoro lici jest to drzewo ma wierzchokw
Zadbamy za pomoc perturbacji, aby dziki czemu (wobec tego, e c jest sta) rozmiar drzewa bdzie Mona bdzie je skontruowa w czasie moemy sobie na to pozwoli!) (oczywicie
Perturbacja
Chcemy aby: Punkty miay wsprzdne cakowite Niezerowe odlegoci midzy punktami byy rwne co najmniej 8 Najwiksza odlego midzy punktami bya rzdu Po co? Rozmiar quadtree oraz kilka innych wasnoci, ktre uka swe oblicze w przyszoci Jak to wykona, aby zoono i wspczynnik aproksymacji nie ucierpiay?
Perturbacja
1) Niech bdzie rozmiarem boundig-boxa orginalnego zbioru punktw, a optymalnym kosztem cyklu komiwojaera. Zauwamy, e (nawet jeli zbir to tylko dwa punkty, najmniejszy kwadrat nie moe mie boku krtszego ni odlego midzy tymi punktami!) 2) Podzielmy paszczyzn krat o romiarze kwadratu 3) Przesumy kady punkt do najbliszego mu punktu kratowego 4) Zauwamy, e teraz koszt optymalnego cyklu komiwojaera rni si o co najwyej Jest tak, gdy kady punkt jest o mniej ni dugo kwadratu kratki od swego dawnego pooenia zatem mona by zachowa dawn ciek wyznaczajc cykl i doda do niej nki czce do nowych pooe punktw a potem poprawi cykl korzystajc z nierwnoci trjkta!
Perturbacja
Perturbacja
5) Zauwamy, e w takim razie bdziemy musieli obliczy rozwizanie 1+ 3/4c aproksymacyjne, ale to nie problem c jest dowolne 6) Teraz dzielimy wszystkie wsprzdne przez dziki czemu wszystkie wsprzdne s cakowite (byy wielokrotnociami ) oraz miminalna niezerowa odlego to co najmniej 8. (niezerowa, gdy niektre punkty mogy zosta cignite do tego samego punktu kratowego)
(a,b) - quadtree
(a,b) quadtree struktura powstaa ze standardowego quadtree poprzez przesunicie cykliczne kadej krawdzi pionowej o a, za poziomej o b. Innymi sowy proste o rwnaniu x = c przechodz na proste o rwnaniu x = (c + a) mod L , za te o rwnaniu y = d na y = (d+b) mod L Obszary ktre zawiny si dookoa traktujemy jak jeden obszar. Dooymy stara, aby nie powodowao to zbdnych trudnoci.
(a,b) - quadtree
(a,b) - quadtree
Losujemy a oraz b i budujemy (a,b)-quadtree na zbiorze punktw po perturbacji (nazywajmy go P'). Nie bdzie to duo trudniejsze ni budowa zwykego quadtree, cho kwestia jest do techniczna.
Teoria strukturalna
Lemat o naprawianiu
Istnieje staa g > 0 taka, e ponisze stwierdzenie jest prawdziwe: Niech S bdzie dowolnym odcinkiem dugoci s a p zamknit krzyw ktra przecina S co najmniej trzy razy. Wtedy istnieje zbir fragmentw S o dugoci nie wikszej ni gs taki, e po jego doczeniu do p otrzymujemy p' ktra przecina S co najwyej dwa razy. Po co nam to? W przyszoci uyjemy tego lematu, aby nakania drog komiwojaera do przejcia przez portale.
Optimal TS cycle poniewa punkty le na odcinku bdzie mia dugo nie wiksz ni 2s (zielony) Minimal Cost Maximal Matching dla punktw bez pierwszego, jeli t jest nieparzyste lub bez pierwszego I ostatniego, jeli t jest parzyste o koszcie co najwyej s (niebieski) Jeli t nieparzyste dodajemy krawd pomidzy pierwszymi punktami z obu zbiorw, jeli parzyste pomidzy pierwszymi I pomidzy ostatnimi (fioletowy) o zerowej dugoci.
Teoria strukturalna
Lemat o przeciciach
Niech paszczyzna bdzie pokryta krat o dugoci jednostkowej. Niech p bdzie cyklem komiwojaera dugoci X na zbiorze punkw dla ktrych odlego midzy kad par to 0 albo przynajmniej 4. Niech bdzie jedn z pionowych i poziomych prostych wyznaczajcych krat i niech bdzie liczb przeci tej prostej z cyklem komiwojaera. Wtedy
Niech bdzie optymalnym cyklem komiwojaera I niech przesunicie (a,b) dla quadtree T bdzie wybrane losowo. Bdziemy krok po kroku przeksztaca komiwojaera. Jak? w (m,r)-lekk drog
Dla analizy pokryjmy paszczyzn krat jednostkow. Pokaemy oczekiwane grne ograniczenie na zwikszenie si kosztu podczas modyfikacji. Obciymy kad prost z kraty czci kosztu.
Powrmy do quadtree gdyby nie przerywa dzielenia paszczyzny gdy w kwadracie jest nie wicej ni jeden punkt dostalibymy krat jednostkow w ktrej kada prosta ma pewien poziom odpowiadajcy wysokoci wierzchoka w quadtree. Poziom 0 - pierwszy podzia paszczyzny na 4 kwadraty, Poziom 1 to podziay kolejnych kwadratw itd. Spjrzmy na takie pionowe proste po losowym przesuniciu (a,b) dla (a,b)-quadtree.
Dla j od log(L) do i : przejrzyj wszystkie odcinki prostej K z poziomu j i jeli ktry jest przecinany wicej ni s razy zastosuj do lemat o naprawianiu (! przeci moe by potem 4 a nie 2 zawinite kwadraty!) - do ilu odcinkw z poziomu j zastosowalimy lemat
by moe powstay nowe przecicia dla prostych poziomych atwo rozwiemy ten problem za chwil!
Pamitacie wzr ze slajdu 30? Jest ju blisko! Mamy podan liczb przeci teraz pozostaje przesun je do najbliszych portali
Unikniemy problemw z dodatkowymi przeciciami dla linii o innej orientacji! Uyj lematu o naprawianiu, jeli pojawi si ich za duo nie zwiksza to kosztu. Kada krawd kwadratu dostanie co najwyej 4 przecicia wicej!
Programowanie dynamiczne
Bdziemy wylicza najlepsze rozwizanie dla kadego kwadratu quadtree w kolejnoci od najmniejszych do najwikszych. Pamitajmy, e kwadratw jest Skoro kada krawd jest przecinana co najwyej r razy, to moemy myle tak, e wybieramy multizbir portali i parujemy je wejciewyjcie. Korzystamy z obliczonych uprzednio optymalnych rozwiza dla mniejszych kwadratw. Wyborw dotyczcych tego multizbioru jest nie wicej ni pierwszy czynnik ogranicza liczb moliwych multizbiorw portali, drugi za ogranicza liczb wyborw kolejnoci i parowa.
Programowanie dynamiczne
Programowanie dynamiczne
Trzeba oczywicie rozway to jak wybrane cieki przebywaj wntrze kwadratu. Jeli kwadrat jest liciem to w jego wntrzu jest co najwyej jeden punkt zatem moemy w rozway dla kadego wyboru na ktrej ze cieek lee bdzie ten punkt. W przeciwnym razie kwadrat ten jest podzielony na cztery podkwadraty . Pozostaje wybra przez jakie portale bdziemy wdrowali na wewntrznych krawdziach (na sposobw) i na ktrych ciekach wybranych w poprzednim kroku bd one lee (na sposobw). Nie musimy wybiera portali na zewntrznych krawdziach one ju zostay wybrane dla wikszego kwadratu I s te portalami dla mniejszych! Sumujemy wczeniej obliczone rozwizania w mniejszych kwadratach.
Programowanie dynamiczne
Programowanie dynamiczne
Gdy wymnoymy liczb moliwych wyborw obu krokw i przemnoymy przez liczb wierzchokw w quadtree uzyskujemy ale liczba wierzchokw jest zatem zoono algorytmu to a
Cel osignity!
To wreszcie koniec
Dzikuj za wysuchanie!