Geometria obliczeniowa Wykład 13

Slides:



Advertisements
Podobne prezentacje
Geometria obliczeniowa Wykład 14 Algorytmy randomizowane 1.Programowanie liniowe w R 2. 2.Lokalizacja punktu w siatce trapezów. 3.Znajdywanie średnicy.
Advertisements

Geometria obliczeniowa Wykład 13 Algorytmy randomizowane 1.Lokalizacja punktu w siatce trapezów. 2.Znajdywanie średnicy zbioru punktów w R 3. Algorytmy.
Proces doboru próby. Badana populacja – (zbiorowość generalna, populacja generalna) ogół rzeczywistych jednostek, o których chcemy uzyskać informacje.
Równowaga chemiczna - odwracalność reakcji chemicznych
Plan Czym się zajmiemy: 1.Bilans przepływów międzygałęziowych 2.Model Leontiefa.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
Jak majtek Kowalski wielokąty poznawał Opracowanie: Piotr Niemczyk kl. 1e Katarzyna Romanowska 1e Gimnazjum Nr 2 w Otwocku.
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
© Matematyczne modelowanie procesów biotechnologicznych - laboratorium, Studium Magisterskie Wydział Chemiczny Politechniki Wrocławskiej, Kierunek Biotechnologia,
Excel 2007 dla średniozaawansowanych zajęcia z dnia
Niepewności pomiarowe. Pomiary fizyczne. Pomiar fizyczny polega na porównywaniu wielkości mierzonej z przyjętym wzorcem, czyli jednostką. Rodzaje pomiarów.
Wprowadzenie Celem naszej prezentacji jest przypomnienie podstawowych informacji na temat bezpiecznego powrotu do domu i nie tylko. A więc zaczynamy…;)
WSPÓŁRZĘDNE GEOGRAFICZNE.  Aby określić położenie punktu na globusie stworzono siatkę geograficzną, która składa się z południków i równoleżników. Południk.
„MATEMATYKA JEST OK!”. Figury Autorzy Piotr Lubelski Jakub Królikowski Zespół kierowany pod nadzorem mgr Joanny Karaś-Piłat.
W KRAINIE TRAPEZÓW. W "Szkole Myślenia" stawiamy na umiejętność rozumowania, zadawania pytań badawczych, rozwiązywania problemów oraz wykorzystania wiedzy.
Algorytmy Informatyka Zakres rozszerzony
KLASA VI 1. WSTĘP – Układy współrzędnych – przykłady 2. UKŁAD WSPÓŁRZĘDNYCH X-Y – definicja, rzędne, odcięte, początek układu. 3. WSPÓŁRZĘDNE PUNKTU –
KOMBINATORYKA.
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Perceptrony proste nieliniowe i wielowarstwowe © Kazimierz Duzinkiewicz, dr hab.
Dorota Kwaśniewska OBRAZY OTRZYMYWA NE W SOCZEWKAC H.
 Austriacki fizyk teoretyk,  jeden z twórców mechaniki kwantowej,  laureat nagrody Nobla ("odkrycie nowych, płodnych aspektów teorii atomów i ich zastosowanie"),
O PARADOKSIE BRAESSA Zbigniew Świtalski Paweł Skałecki Wydział Matematyki, Informatyki i Ekonometrii Uniwersytet Zielonogórski Zakopane 2016.
Minimalizacja automatu
Okrąg i koło Rafał Świdziński.
W kręgu matematycznych pojęć
Schematy blokowe.
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
WYPROWADZENIE WZORU. PRZYKŁADY.
RUCH KULISTY I RUCH OGÓLNY BRYŁY
Pamięci Henryka Pawłowskiego
Liczby pierwsze.
FIGURY.
ALGORYTMY I STRUKTURY DANYCH
MECHANIKA 2 Wykład Nr 3 KINEMATYKA Temat RUCH PŁASKI BRYŁY MATERIALNEJ
Podstawy automatyki I Wykład /2016
Geometria obliczeniowa Wykład 2
Wstęp do Informatyki - Wykład 3
Geometria obliczeniowa Wykład 7
KLASYFIKACJA CZWOROKĄTÓW
Geometria obliczeniowa Wykład 8
Wykorzystanie Twierdzenia Talesa w zadaniach tekstowych
Geometria obliczeniowa Wykład 10
Zajęcia przygotowujące do matury rozszerzonej z matematyki
Geometria obliczeniowa Wykład 8
Elementy fizyki kwantowej i budowy materii
ALGORYTMY I STRUKTURY DANYCH
Tensor naprężeń Cauchyego
Problem Plecakowy (Problem złodzieja okradającego sklep)
Grafika i komunikacja człowieka z komputerem
ALGORYTMY I STRUKTURY DANYCH
temat stwierdzenie Grafika SmartArt z obrazami na czerwonym tle
ALGORYTMY I STRUKTURY DANYCH
MATEMATYKAAKYTAMETAM
Implementacja rekurencji w języku Haskell
Znajdowanie liczb pierwszych w zbiorze
Doskonalenie rachunku pamięciowego u uczniów
REGRESJA WIELORAKA.
Wytrzymałość materiałów
Matematyka Zadania i objaśnienia Jakub Tchórzewski.
Prawa ruchu ośrodków ciągłych c. d.
Elementy Kombinatoryki
Program na dziś Wprowadzenie Logika prezentacji i artykułu
Mikroekonomia Wykład 4.
Elipsy błędów.
Grazyna Mirkowska Matematyka Dyskretna PJWSTK 2001
Zapis prezentacji:

Geometria obliczeniowa Wykład 13 Algorytmy randomizowane Lokalizacja punktu w siatce trapezów. Znajdywanie średnicy zbioru punktów w R3. Algorytmy równoległe Otoczka wypukła.

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 .

sk si E D C B qi pi A sm DS(Si-1) A 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 (wierzchoł-kami o zerowym stopniu wyjściowym). Niech pi i qi oznaczają odpowiednio począ-tek i koniec i-tego odcinka si. Gdy odcinek si zawiera się w jednym z już istniejących trapezów, to w miejsce odpo-wiadającego mu wierzchołka wstawiamy wierzchołek pi, którego lewym synem jest wierzchołek odpowiadający trapezowi pow-stającemu po lewej stronie pi a prawym sy-nem jest qi. Prawym synem qi jest wierzcho-łek odpowiadający trapezowi powstającemu po prawej stronie qi a lewym synem jest si. Lewy i prawy syn si odpowiadają odpowied-nio trapezowi powyżej i poniżej odcinka si. sk si E D C B qi pi A sm DS(Si-1) A

C A B sd sc sb sa I si H G F E D pi qi DS(Si-1) A B C Gdy odcinek si przecina wiele istniejących już trapezów, to w miejsce wierzchołka odpowiadającego skrajnie lewemu trape-zowi wstawiamy pi, którego lewym synem jest wierzchołek odpowiadający trapezowi powstającemu po lewej stronie pi a pra-wym synem jest si. W miejsce wierzchołka odpowiadającego skrajnie prawemu trapezowi wstawiamy qi, którego prawym synem jest wierzcho-łek odpowiadający trapezowi powstają-cemu po prawej stronie qi a lewym synem jest si. Pozostałym trapezom odpowiadają wierz-chołki si. Lewy i prawy syn dowolnego wierzchołka si odpowiada odpowiednio trapezowi powstałemu powyżej i poniżej odcinka si w miejscu poprzedniego trapezu. I si H G F E D pi qi DS(Si-1) A B C

E D C B A J I H G F Algorytm inicjalizuj strukturę DS ; for i:=1 to n do z pomocą struktury DS znajdź trapezy przecinane przez odcinek si ; zastąp w strukturze DS przecinane tra- pezy nowymi układami wierzchołków;

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 Xi 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(ni=1Xi) = ni=1E(Xi) . Niech Pi oznacza prawdopodobieństwo przejścia w trakcie lokalizacji punktu q przez wierzchołki stworzone w i-tej iteracji. Mamy E(Xi)  3Pi oraz Pi=P[tq(Si)  tq(Si-1)], gdzie tq(Si) oznacza trapez w sieci powstałej po i-tej iteracji zawierający punkt q.

Aby oszacować prawdopodobieństwo Pi 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 Pi=P[tq(Si)  tq(Si-1)] = P[tq(Si)  T(Si-1)]  4/i . Stąd ni=1E(Xi)  ni=13Pi  ni=112/i = 12 ni=11/i = 12Hn = O(log n). czyli oczekiwany czas lokalizacji punktu jest O(log n).

Zbadajmy oczekiwany rozmiar struktury. Wynosi on: (Liczba trapezów) + ni=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 ki oznacza liczbę trapezów tworzonych w i-tej iteracji. Zatem liczba nowych wierzchołków wewnętrznych wynosi ki-1. Niech (t,s) będzie równe 1, gdy trapez t  T(Si) nie będzie należeć do T(Si-1) po usunięciu odcinka s oraz 0 w przeciwnym przypadku. Mamy sS t [t  T(Si)] (t,s)  4T(Si) = O(i) . Stąd E(ki) = 1/i sS t [t  T(Si)] (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) + ni=1 E(ki-1) = O(n) + ni=1 E(ki) = O(n) + ni=1 O(1) = O(n) , czyli jest liniowy względem liczby odcinków.

Teraz możemy obliczyć oczekiwany czas pracy algorytmu, który wynosi: (Koszt inicjalizacji) + ni=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) + ni=1 (O(log i) + O(E(ki))) = O(n log n), co kończy dowód.

I(S) D(S) p F(p) Znajdywanie średnicy zbioru punktów w R3. Definicja Dla danego zbioru n punktów S średnicą D(S) nazywamy odległość między dwo-ma najdalszymi punktami w S. 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. I(S) D(S) p F(p)

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();

Lemat. Średnicę zbioru n punktów w R3 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(pi), gdzie pi  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-1i=0 T(i)/n, co daje T(n) = O(n log n).

Algorytmy równoległe w modelu PRAM. Otoczka wypukła. Chcemy znaleźć otoczkę wypukłą n elementowego zbioru S punktów na płaszczyźnie. Rozpatrujemy model PRAM, w którym procesory komunikują się poprzez wspólną pamięć. Wyróżniamy różne rodzaje obliczeń w zależności od tego, czy procesory mogą jednocześnie czytać (CR) informacje z tej samej komórki pamięci czy nie (ER) oraz czy mogą jednocześnie zapisywać dane (CW) czy tylko osobno (EW). W przypadku CW określamy dodat-kowo jaki sposób zapisu danych nie powoduje konfliktu.

Dysponując O(n) procesorami CREW PRAM skorzystamy z metody „dziel i rządź”. posortuj punkty względem x-ów; while zbiory nie są dostatecznie małe do dziel je na pierwiastkowo wiele części o zbliżonym rozmiarze; znajdź otoczki małych zbiorów; while jest więcej niż jedna otoczka do połącz otoczki w kolejności odwrot- nej do kolejności podziału;

Jak łączymy małe otoczki ? oblicz styczne zewnętrzne dla każdej pary otoczek stosując wyszukiwanie binarne; systemem pucharowym znajdź krawędzie lub styczne maksymalnie odchylone od pionu w górę (dla górnych) i w dół (dla dolnych); połącz krawędzie nowych otoczek w listy; zastosuj sumy prefiksowe do określenia kolejności wierzchołków; stablicuj nowe otoczki;

Twierdzenie (Cole’88). Zbiór n liczb rzeczywistych można posortować w czasie O(log n) z pomocą O(n) procesorów CREW PRAM Twierdzenie. Algorytm znajduje otoczkę wypukłą n elementowego zbioru S punktów na płaszczyźnie w czasie O(log n) wykorzystując w tym celu O(n) pro-cesorów CREW PRAM. Dowód. Wyszukiwanie binarne, system pucharowy, sumy prefiksowe na zbiorze n elementowym można wykonać w czasie O(log n). Zatem złożoność algorytmu opisuje równanie: T(n) = T(n1/2) + O(log n), czyli T(n) = O(log n).

Dziękuję za uwagę.

Ćwiczenia. 1. 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)]); 2. Podaj przykład układu odcinków generującego w pesymistycznym przypadku strukturę podziału na trapezy rozmiaru O(n2). 3. Udowodnij, że liczba wewnętrznych węzłów w strukturze przeszukiwań D algorytmu tworzenia mapy trapezowej wzrasta o ki-1 w iteracji i, gdzie ki jest liczbą nowych trapezów w T(Si) (a stąd nowych liści w D). 4. Udowodnij, że mapa trapezowa n odcinków w położeniu ogólnym ma co najwyżej 3n+1 trapezów.

5. Prosty wielokąt nazywamy gwiaździstym, gdy zawiera punkt q widoczny z każdego punktu wielokąta. Podaj algorytm, którego oczekiwany czas działania jest liniowy i sprawdza, czy dany prosty wielokąt jest gwiaździsty. 6. Z pomocą O(n) procesorów CREW PRAM znajdź w czasie O(log n) minimalny pas zawierający dany zbiór n punktów na płaszczyźnie.