Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKlemens Zalejski Został zmieniony 9 lat temu
1
Geometria obliczeniowa Wykład 12 Planowanie ruchu 1.Najkrótsza ścieżka między dwoma punktami. 2.Znajdywanie ścieżki między dwoma punktami. 3.Ruch postępowy robota wielokątnego na płasz- czyźnie. 4.Ruch z możliwością obrotów.
2
Planowanie ruchu – najkrótsza ścieżka między dwoma punktami. Problem. Na płaszczyźnie dany jest obszar A (ograniczony lub nie) z dziurami mający w sumie n krawędzi, reprezentowany w postaci podwójnie łączonej listy krawędzi, oraz dwa wybrane punkty s i t. Znajdź najkrótszą ścieżkę łączącą s i t (o ile istnieje). Lemat. Minimalna ścieżka łącząca punkty s i t jest łamaną składającą się z krawędzi grafu widzialności dla zbioru krawędzi obszaru A oraz punktów s i t (tzn. najkrótsza ścieżka między punktami s i t może zmieniać kierunek jedynie w punktach będących wierzchołkami obszaru A).
3
Algorytm. stwórz graf widzialności W dla zbioru krawędzi obszaru A oraz punktów s i t; if punkty s i t należą do tej samej spójnej składowej grafu W then zastosuj algorytm Dijkstry w celu znalezienia najkrótszej ścieżki z s do t; return najkrótsza ścieżka; Twierdzenie. Algorytm działa w czasie O(n 2 ). Dowód. Graf W tworzymy w czasie O(n 2 ). Spójne składowe sprawdzamy w tym samym czasie. Najkrótszą ścieżkę znajdujemy w czasie O(|V|log|V|+|E|).
4
Twierdzenie (Hershberger, Suri 1997) Ścieżkę o minimalnej długości między dwoma danymi punktami w obszarze z dziurami na płaszczyźnie, którego rozmiar wynosi n, można znaleźć w czasie O(n log n) wykorzystując pamięć rozmiaru O(n log n).
5
Znajdywanie ścieżki między dwoma punktami. Problem. Dany jest obszar z dziurami P na płaszczyźnie oraz dwa wyróżnione punkty s i t. Znajdź ścieżkę łączącą s i t (o ile istnieje). Zakładamy, że dziury są zbiorami otwartymi. Obszar P jest reprezentowany w postaci podwójnie łączonej listy krawędzi K. Orientacja krawędzi obszaru P określa jego wnętrze i zewnętrze. Mapa trapezowa. Wykorzystując metodę zamiatania dzielimy obszar P na trapezy o podstawach prostopadłych do kierunku zamiatania. Podział przechowujemy w strukturze K. Strukturą zdarzeń będzie uporządkowana względem kierunku zamiatania (np. osi y-ów) lista Q wierzchołków obszaru P. Strukturą stanu będzie zrównoważone drzewo wyszukiwań binarnych T za- wierające aktywne krawędzie obszaru P uporządkowane względem kolejności ich przecięć z miotłą (wzdłuż osi x-ów).
6
Algorytm. stwórz listę Q; while Q do q := POP(Q); usuń z T krawędzie, których końcem jest q; znajdź w T sąsiadów q; for każdy sąsiad q w T do if krawędź łącząca q z sąsiadem należy do obszaru then uaktualnij strukturę K; dodaj do T krawędzie, których koń- cem jest q i są przed miotłą; return K;
7
Lemat. Mapę trapezową wielokąta z dziurami o rozmiarze n można skonstruować w czasie O(n log n) i pamięci O(n). Dowód. W danym położeniu miotły operacja znalezienia sąsiadów wymaga czasu O(log n). Sprawdzenie należenia badanej podstawy trapezu do wnętrza obszaru D oraz aktualizacja struktury K wymagają czasu stałego. Liczba nowych wierzchołków i krawędzi w mapie trapezowej jest proporcjo- nalna do rozmiaru obszaru D. Rozmiary struktur zdarzeń i stanu są liniowe względem rozmiaru obszaru D. Mapa drogowa. Na podstawie mapy trapezowej tworzymy graf, który umożliwi nam stwier- dzenie, czy dane dwa punkty p 1, p 2 można połączyć ścieżką.
8
Algorytm. stwórz mapę trapezową; for każdy trapez do wyznacz punkt wewnątrz trapezu i połącz środki krawędzi tworzących podstawy trapezu z tym punktem; for i=1 to 2 do połącz p i z wyznaczonym punktem wewnątrz trapezu zawierającego p i ; sprawdź, czy w powstałym grafie p 1 i p 2 należą do tej samej spójnej składowej;
9
Lemat. Mapę drogową w obszarze z dziurami o rozmiarze n możemy obliczyć w czasie O(n log n) i wymaga ona O(n) pamięci. Dowód. Mapę trapezową obliczamy w czasie O(n log n). Korzystając z podwójnie łączonych list krawędzi tworzymy mapę drogową w czasie proporcjonal- nym do rozmiaru mapy trapezowej, czyli O(n). Zatem jej rozmiar jest również O(n). Twierdzenie. Ścieżkę między dwoma danymi punktami w obszarze z dziurami o rozmiarze n możemy znaleźć lub stwierdzić jej brak w czasie O(n log n). Dowód. W czasie O(n log n) tworzymy mapę drogową. Zbadanie jej spójnych składowych wymaga czasu O(n).
10
Ruch postępowy robota wielokątnego na płaszczyźnie. Problem. Dany jest robot, którego rzut na podłoże jest wielokątem (zazwyczaj wypukłym), poruszający się w obszarze z przeszko- dami (dziurami) ruchem postępowym, tzn. każdy z punktów robota porusza się po takim samym torze w tym samym czasie (robot nie obraca się). Definicja. Niech R(0,0) oznacza listę położeń wierzchołków robota w chwili startu. R(x,y) := R(0,0) + (x,y) Załóżmy, że środek układu współrzęd- nych należy do wnętrza robota. Ruch tego punktu opisuje ruch całego robota. Nazywamy go punktem odniesienia. R(0,0)R(x,y)
11
Definicja. Przestrzeń, w której porusza się robot nazywamy przestrzenią rzeczywistą. Przestrzeń parametrów robota nazywamy przestrzenią konfiguracji. W przestrzeni tej robot przyjmuje postać jednopunktową odpowiadającą jego punktowi odniesienia. Jak wyglądają przeszkody (obszary za- bronione) w przestrzeni konfiguracji ? R(0,0) R(x,y) Przestrzeń rzeczywista Przestrzeń konfiguracji
12
Przykład. Gdy przesuwany obiekt jest kołem, to przeszkody należy rozszerzyć w każym kierunku o promień koła. Gdy środek koła będzie leżeć poza po- większonymi przeszkodami, to jego brzeg nie będzie nachodzić na żadną z rzeczywistych przeszkód.
13
Suma Minkowskiego. Definicja. Rozpatrzmy wielokąty A i B jako zbiory wektorów o współrzędnych odpowiadających współrzędnym punktów należących do tych wielokątów. Sumą Minkowskiego wielokątów A i B jest A + B := {x + y : x A y B}. Fakt. Suma Minkowskiego dwóch wielo- kątów zależy od ich położenia, ale jej kształt nie. Załóżmy, że w położeniu początko- wym środek układu współrzędnych znajduje się wewnątrz robota.
14
Fakt. Zauważmy, że jeśli obiekt styka się z brzegiem obszaru lub dziury, to środek obiektu jest odległy od punktu styczno- ści o wektor przeciwny do wektora łączącego środek z punktem styczności. Zatem powiększone przeszkody okreś- lane są przez sumę Minkowskiego D-R. Algorytm. oblicz sumę Minkowskiego D-R; sprawdź, czy istnieje ścieżka między położeniem początkowym i końcowym; R(0,0)R(x,y)
15
Złożoność algorytmu zależy od kształtu robota i przeszkód. Załóżmy, że robot R ma stałą liczbę wierzchołków, a obszar D ma n wierz- chołków. R D Rozmiar sumy Złożoność czasowa konstrukcji wypukły wypukły O(n) O(n) wypukły niewypukły O(n) O(n log n) niewypukły niewypukły O(n 2 ) O(n 2 log n) Twierdzenie. Gdy obszar D o n wierzchołkach jest wypukły (dziury są też wypukłe) a robot R jest wypukły i ma O(1) wierzchołków, to możemy znaleźć ścieżkę, wzdłuż której można przesunąć R między dwoma danymi położeniami bez kolizji z żadną przeszkodą (lub stwierdzić, że jest to niemożliwe) w czasie O(n log n). Dowód. Sumę Minkowskiego D-R znajdujemy w czasie O(n). Następnie znajdujemy ścieżkę między danymi punktami w czasie O(n log n).
16
Twierdzenie. Niech P i R będą wielokątami o odpowiednio n i m wierzchołkach. Złożoność sumy Minkowskiego wielokątów P i R ma następujące ograniczenia: -O(n+m), jeśli oba wielokąty są wypukłe, - O(nm), jeśli jeden z wielokątów jest wypukły, a drugi nie, - O(n 2 m 2 ), jeśli oba wielokąty nie są wypukłe. Ograniczenia są ścisłe w pesymistycznym przypadku.
17
Ruch z możliwością obrotów. W przypadku poruszania się robota, które może się obracać, mamy jeden stopień swobody więcej. Dlatego przestrzeń konfiguracji jest trójwymiarowa (trzeci wymiar odpowiada kątowi obrotu). Sposób planowania ruchu robota jest podobny jak w poprzednim przypadku, choć nieco bardziej skomplikowany. Twierdzenie (Canny, 1987) Problem planowania ruchu, w którym robot ma d stopni swobody można rozwiązać w czasie O(n d log n).
18
Geometria obliczeniowa Wykład 12 c.d. Algorytmy randomizowane 1.Lokalizacja punktu w siatce trapezów. 2.Znajdywanie średnicy zbioru punktów w R 3.
19
Lokalizacja punktu w siatce trapezów. Problem Dany jest prostokątny obszar oraz n zawar- tych w nim rozłącznych odcinków (z których żaden nie jest pionowy i żadne dwa końce nie mają tej samej współrzędnej x-owej ani y-owej). Chcemy odpowiadać na pytanie: Miedzy którymi dwoma odcinkami (od góry i od dołu) znajduje się dany punkt ? Przedstawimy algorytm przyrostowy znaj- dujący podział obszaru na trapezy. Skonstruujemy strukturę danych umożliwia- jącą odpowiedź na zapytania o położenie punktów, wykorzystującą podział obszaru na trapezy.
20
Struktura jest grafem skierowanym, którego wierzchołki odpowiadają trapezom podziału, końcom odcinków i samym odcinkom. Wierzchołki odpowiadające odcinkom mogą występować wielokrotnie. Wierzchołki od- powiadające trapezom są liśćmi. Niech p i i q i oznaczają odpowiednio począ- tek i koniec i-tego odcinka s i. Gdy odcinek s i zawiera się w jednym z już istniejących trapezów, to w miejsce odpo- wiadającego mu wierzchołka wstawiamy wierzchołek p i, którego lewym synem jest wierzchołek odpowiadający trapezowi pow- stającemu po lewej stronie p i a prawym sy- nem jest q i. Prawym synem q i jest wierzcho- łek odpowiadający trapezowi powstającemu po prawej stronie q i a lewym synem jest s i. Lewy i prawy syn s i odpowiadają odpowied- nio trapezowi powyżej i poniżej odcinka s i. sksk smsm A DS(S i-1 ) A sisi E D C B qiqi sisi pipi B CD E
21
CBA Gdy odcinek s i przecina wiele istniejących już trapezów, to w miejsce wierzchołka odpowiadającego skrajnie lewemu trape- zowi wstawiamy p i, którego lewym synem jest wierzchołek odpowiadający trapezowi powstającemu po lewej stronie p i a pra- wym synem jest s i. W miejsce wierzchołka odpowiadającego skrajnie prawemu trapezowi wstawiamy q i, którego prawym synem jest wierzcho- łek odpowiadający trapezowi powstają- cemu po prawej stronie q i a lewym synem jest s i. Pozostałym trapezom odpowiadają wierz- chołki s i. Lewy i prawy syn dowolnego wierzchołka s i odpowiada odpowiednio trapezowi powstałemu powyżej i poniżej odcinka s i w miejscu poprzedniego trapezu. C AB sdsd scsc sbsb sasa DS(S i-1 ) I sisi H G F E D pipi qiqi sisi sisi sisi GD EFH I
22
Algorytm inicjalizuj strukturę DS ; for i:=1 to n do z pomocą struktury DS znajdź trapezy przecinane przez odcinek s i ; zastąp w strukturze DS przecinane tra- pezy nowymi układami wierzchołków; E D C B A J I H G F E D C B A J I H G F
23
Twierdzenie Algorytm oblicza sieć trapezów T(S) dla zbioru n odcinków S i tworzy strukturę danych DS(S) dla sieci T(S) w oczekiwanym czasie O(n log n). Oczekiwany rozmiar struktury wynosi O(n), a lokalizacja punktu wymaga oczekiwanego czasu O(log n). Dowód. Zmiana wierzchołka odpowiadającego trapezowi zwiększa długość ścieżki wyszukującej punkt o co najwyżej 3 wierzchołki. Jednak szacowanie długości ścieżki wyszukiwań w ten sposób jest zbyt grube. Rozważmy ścieżkę wyszukiwań punktu q w strukturze danych DS. Niech X i oznacza dla 1 i n liczbę wierzchołków na ścieżce wyszukiwań dodanych w i-tej iteracji. Zatem oczekiwana długość ścieżki wyszukiwań wynosi E( n i=1 X i ) = n i=1 E(X i ). Niech P i oznacza prawdopodobieństwo przejścia w trakcie lokalizacji punktu q przez wierzchołki stworzone w i-tej iteracji. Mamy E(X i ) 3P i. Ale P i =P[t q (S i ) t q (S i-1 )], gdzie t q (S i ) oznacza trapez w sieci powstałej po i-tej iteracji zawierający punkt q.
24
Aby oszacować prawdopodobieństwo P i zastosujemy analizę powrotną. W sieci powstałej po i-tej iteracji, zmianę trapezu zawierającego punkt q spowodować może usunięcie co najwyżej czterech krawędzi: - będącej górną krawędzią trapezu, - będącej dolną krawędzią trapezu, - wyznaczającej poprzez swój koniec lewą ścianę trapezu, - wyznaczającej poprzez swój koniec prawą ścianę trapezu. Jeśli koniec krawędzi będącej np. dolną krawędzią trapezu wyznacza równocześnie np. lewą ścianę trapezu, to liczba krawędzi, których usunięcie może wpłynąć na zmianę trapezu zawierającego punkt q, może być mniejsza niż 4. Zatem P i =P[t q (S i ) t q (S i-1 )] = P[t q (S i ) T(S i-1 )] 4/i. Stąd n i=1 E(X i ) n i=1 3P i n i=1 12/i = 12 n i=1 1/i = 12H n = O(log n). czyli oczekiwany czas lokalizacji punktu jest O(log n).
25
Zbadajmy oczekiwany rozmiar struktury. Wynosi on: (Liczba trapezów) + n i=1 (Liczba wierzchołków wewnętrznych stworzonych w i-tej iteracji). Liczba trapezów szacuje się przez O(n). Natomiast liczba wierzchołków dodanych w jednej iteracji może być liniowa względem liczby zbadanych odcinków. Prowadzi to do kwadratowego (pesy- mistycznego) oszacowania rozmiaru omawianej struktury danych. Niech k i oznacza liczbę trapezów tworzonych w i-tej iteracji. Zatem liczba nowych wierzchołków wewnętrznych wynosi k i -1. Niech (t,s) będzie równe 1, gdy trapez t T(S i ) nie będzie należeć do T(S i-1 ) po usunięciu odcinka s oraz 0 w przeciwnym przypadku. Mamy s S t [t T(S i )] (t,s) 4T(S i ) = O(i). Stąd E(k i ) = 1/i s S t [t T(S i )] (t,s) O(i)/i = O(1), czyli oczekiwana liczba nowych wierzchołków wewnętrznych powstałych w i-tej iteracji jest stała. Zatem oczekiwany rozmiar struktury danych wynosi O(n) + n i=1 E(k i -1) = O(n) + n i=1 E(k i ) = O(n) + n i=1 O(1) = O(n), czyli jest liniowy względem liczby odcinków.
26
Teraz możemy obliczyć oczekiwany czas pracy algorytmu, który wynosi: (Koszt inicjalizacji) + n i=1 (średni czas wyszukiwania położenia końców odcinka dodawanego w i-tej iteracji + liczba nowych wierzchołków dodawanych w i-tej iteracji) = O(1) + n i=1 (O(log i) + O(E(k i ))) = O(n log n), co kończy dowód.
27
I (S) D(S) Znajdywanie średnicy zbioru punktów w R 3. Definicja Dla danego zbioru n punktów S średnicą D(S) nazywamy odległość między dwo- ma najdalszymi punktami w S. Definicja Niech I (S) oznacza obszar będący częścią wspólną kul o promieniu i środkach w punktach należących do zbioru S. F(p) oznacza maksymalną odległość mię- dzy punktem p a jakimkolwiek innym punktem ze zbioru S. p F(p)
28
Fakt. Dla każdego punktu q I (S), gdy = F(p), zachodzi F(q) F(p) D(S). Natomiast dla q I (S), mamy F(p) F(q) D(S). Algorytm while S do wybierz losowo z S punkt p; oblicz F(p); znajdź I (S) dla = F(p); S := S – (S I (S) ); return( );
29
Lemat. Średnicę zbioru n punktów w R 3 można znaleźć w oczekiwanym czasie O(n log n). Dowód. W każdym kroku usuwamy co najmniej jeden punkt (wybrany). F(p) obliczamy w czasie liniowym. Znalezienie I (S) wymaga czasu O(n log n) (postępujemy identycznie jak w przypadku znajdywania przecięcia półprzestrzeni, co jest problemem dualnym do znajdywania otoczki wypukłej). Punkty z S należące do I (S) znajdujemy w czasie O(n log n). Ustawmy wartości F(p i ), gdzie p i S w ciąg niemalejący. Wtedy wybór punktu p, podobnie jak w algorytmie Hoare’a dzieli ciąg na dwie części - punkty, wśród których będziemy szukać rozwiązania i pozostałe. Zakładając, że punkty wybieramy z jednakowym prawdopodobieństwem, możemy obliczyć oczekiwany czas działania algorytmu : T(n) = O(n) + O(n log n) + n-1 i=0 T(i)/n, co daje T(n) = O(n log n).
30
Dziękuję za uwagę.
31
Ćwiczenia. 1. Udowodnij, że ścieżka o minimalnej długości łącząca dane punkty s i t jest łamaną składającą się z krawędzi grafu widzialności dla zbioru krawędzi danego obszaru A oraz punktów s i t (tzn. najkrótsza ścieżka między punktami s i t może zmieniać kierunek jedynie w punktach będących wierzchołkami obszaru A). 2. Dlaczego wybieramy punkty wewnątrz trapezów w mapie drogowej ? 3. Udowodnij, że kształt sumy Minkowskiego robota i przeszkody nie zależy od wyboru punktu odniesienia. 4. Pokaż, że suma dwóch wielokątów niewypukłych, z których jeden ma skończoną liczbę wierzchołków a drugi ma n wierzchołków, może mieć rozmiar O(n 2 ).
32
5. Który z poniższych algorytmów generuje losowe permutacje dla danej tablicy A długości n (tzn. każda możliwa permutacja A jest równie prawdopodobna jako wynik): a) (bez identyczności) for i:=1 to n do zamień(A[i],A[RANDOM(i+1,n)]); b) for i:=1 to n do zamień(A[i],A[RANDOM(1,n)]); c) for i:=n downto 2 do zamień(A[i],A[RANDOM(1,i)]); 6. Podaj przykład układu odcinków generującego w pesymistycznym przypadku strukturę podziału na trapezy rozmiaru O(n 2 ). 7. Udowodnij, że liczba wewnętrznych węzłów w strukturze przeszukiwań D algorytmu tworzenia mapy trapezowej wzrasta o k i -1 w iteracji i, gdzie k i jest liczbą nowych trapezów w T(S i ) (a stąd nowych liści w D). 8. Udowodnij, że mapa trapezowa n odcinków w położeniu ogólnym ma co najwyżej 3n+1 trapezów.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.