ALGORYTMY I STRUKTURY DANYCH

Slides:



Advertisements
Podobne prezentacje
Jak majtek Kowalski wielokąty poznawał Opracowanie: Piotr Niemczyk kl. 1e Katarzyna Romanowska 1e Gimnazjum Nr 2 w Otwocku.
Advertisements

© 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.
„MATEMATYKA JEST OK!”. Figury Autorzy Piotr Lubelski Jakub Królikowski Zespół kierowany pod nadzorem mgr Joanny Karaś-Piłat.
FIGURY.
Funkcja liniowa Przygotował: Kajetan Leszczyński Niepubliczne Gimnazjum Przy Młodzieżowym Ośrodku Wychowawczym Księży Orionistów W Warszawie Ul. Barska.
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 –
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
To znaczy, że składa się z dwóch identycznych części, które można na siebie nałożyć. Na przykład człowiek (w niektórych miejscach) jest takim stworem.
TWIERDZENIE TALESA. Tales z Miletu to jeden z najwybitniejszych mędrców starożytności. Zasłynął nie tylko jako filozof ale także jako matematyk i astronom.
Matematyka przed egzaminem czyli samouczek dla gimnazjalisty Przygotowała Beata Czerniak FUNKCJE.
Własności elektryczne materii
Cechy podobieństwa trójkątów Radosław Hołówko Konsultant: Agnieszka Pożyczka.
W KRAINIE CZWOROKĄTÓW.
Ruch jest wszechobecnym zjawiskiem w otaczającym nas świecie. Poruszają się miedzy innymi: ludzie, samochody, wskazówki zegara oraz maleńkie atomy.
Jak tworzymy katalog alfabetyczny? Oprac.Regina Lewańska.
O PARADOKSIE BRAESSA Zbigniew Świtalski Paweł Skałecki Wydział Matematyki, Informatyki i Ekonometrii Uniwersytet Zielonogórski Zakopane 2016.
Geometria obliczeniowa Wykład 13
Systemy wizyjne - kalibracja
Nast. slajd Odcinki w trójkącie Maciej Kawka.
Minimalizacja automatu
Okrąg i koło Rafał Świdziński.
Przesuwanie wykresu funkcji liniowej
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
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
Geometria obliczeniowa Wykład 2
Wstęp do Informatyki - Wykład 3
Elementy analizy matematycznej
Wykorzystanie Twierdzenia Talesa w zadaniach tekstowych
Zajęcia przygotowujące do matury rozszerzonej z matematyki
Elementy fizyki kwantowej i budowy materii
Kąty w kole.
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Tensor naprężeń Cauchyego
Przekształcenia geometryczne – grafika 2D
Grafika i komunikacja człowieka z komputerem
ALGORYTMY I STRUKTURY DANYCH
Pisemne dzielenie liczb naturalnych
ALGORYTMY I STRUKTURY DANYCH
MATEMATYKAAKYTAMETAM
ALGORYTMY I STRUKTURY DANYCH
Implementacja rekurencji w języku Haskell
Znajdowanie liczb pierwszych w zbiorze
Doskonalenie rachunku pamięciowego u uczniów
REGRESJA WIELORAKA.
Matematyka Zadania i objaśnienia Jakub Tchórzewski.
Prawa ruchu ośrodków ciągłych c. d.
ALGORYTMY I STRUKTURY DANYCH
Elementy Kombinatoryki
Mikroekonomia Wykład 4.
Elipsy błędów.
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

ALGORYTMY I STRUKTURY DANYCH WYKŁAD 13 Algorytmy w geometrii Grażyna Mirkowska PJWSTK, 2004

G. Mirkowska, ASD_13 algorytmy w geometrii Plan wykładu Podstawowe operacje geometryczne Położenia punktu względem prostej Punkt wspólny dwóch odcinków Badanie, czy punkt leży wewnątrz trójkąta porównywanie kątów Znajdowanie otoczki wypukłej Algorytm Grahama Algorytm Jarvisa Wyznaczanie pierwiastka 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

G. Mirkowska, ASD_13 algorytmy w geometrii Produkt wektorowy p1  p2= det (p1,p2) = x1 *y2 – x2 *y1 Jeśli p1  p2= 0, to p1, p2 są współliniowe. p0 p1 p2 x y p1+p2 Jeśli p1  p2 < 0, to p1 jest na lewo od p2. Jeśli p1  p2 > 0, to p1 jest na prawo od p2. Jeśli (p1-p0)  (p2 –p0) < 0, to p1 jest na lewo od odcinka p0p2. Jeśli p0 nie jest początkiem układu współrzędnych, to Jeśli (p1-p0)  (p2 –p0) > 0, to p1 jest na prawo od odcinka p0p2. 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

G. Mirkowska, ASD_13 algorytmy w geometrii Porównywanie kątów p0 p1 p2 x y Jeśli (p1-p0)  (p2 –p0) < 0, to kąt (p1,p0, p) jest większy od kata (p2,p0,p). Jeśli (p1-p0)  (p2 –p0) > 0, to kąt (p1,p0, p) jest mniejszy od kata (p2,p0,p). p Załóżmy, że dane punkty tworzą wielokąt wypukły. Jak zbadać, czy punkt p też tworzy z nimi wielokąt wypukły? p Jeśli idąc po krawędzi wielokąta od pi do pi+1 (kolejność przeciwna do ruchu wskazówek zegara), mam p po lewej stronie prostej wyznaczonej przez tę krawędź, to p może być następnym wierzchołkiem wielokąta wypukłego. p3 p2 p1 p0 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

Jak znaleźć wierzchołki otoczki wypukłej? Otoczka wypukła W geometrii, dowodzi się, że taki zbiór punktów (dla |Q| >2) jest wielokątem wypukłym. Problem Dla danego skończonego zbioru Q punków na płaszczyźnie, znaleźć najmniejszy zbiór wypukły taki, że każdy punkt zbioru Q znajduje się albo w jego wnętrzu albo na brzegu. Jak znaleźć wierzchołki otoczki wypukłej? Przykład Kryterium negatywne Punkt p nie jest wierzchołkiem otoczki wypukłej wttw leży wewnątrz trójkąta o wierzchołkach ze zbioru Q różnych od p, lub gdy leż na odcinku łączącym dwa różne od p punkty zbioru Q. 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

G. Mirkowska, ASD_13 algorytmy w geometrii Algorytm - trójkąty Metoda. Dla każdej trójki punktów p1, p2, p3 ze zbioru Q : jeśli są one współliniowe i p jest punktem środkowym tej trójki, to ze zbioru Q usuwamy punkt p, jeśli nie są współliniowe, to oznaczmy przez d trójkąt, którego wierzchołkami są te punkty i usuńmy ze zbioru Q wszystkie punkty leżące wewnątrz tego trójkąta. Zbiór punktów, które pozostaną w Q jest zbiorem wierzchołków szukanej otoczki wypukłej. Jeśli |Q|=n, to można utworzyć (n nad 3) trójkąty. Zatem pętla główna wykona O(n3) iteracji. W wewnętrznej pętli sprawdzamy wszystkie punkty zbioru Q. Ponieważ sprawdzenie, czy punkt leży wewnątrz trójkąta można wykonać z kosztem stałym, zatem koszt pętli wewnętrznej- O(n). Ostatecznie koszt całego algorytmy O(n4). Koszt: Niech |Q|=n. Jest (n nad 3) różnych trójek punktów liczba iteracji pętli zewnętrznej – O(n3). Koszt pętli wewnętrznej – O(n). Razem O(n4). 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

G. Mirkowska, ASD_13 algorytmy w geometrii Przykład Konstrukcja otoczki metodą trójkątów 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

G. Mirkowska, ASD_13 algorytmy w geometrii Algorytm Grahama 1. W zbiorze Q wybieramy punkt p o najmniejszej współrzędnej y. Jeżeli jest kilka takich punktów, to wybieramy ten z nich, który ma najmniejszą współrzędną x. 2. Sortujemy pozostałe punkty ze względu na kąt jaki tworzy wektor p0p z dodatnim kierunkiem osi x. Jeśli kilka punktów tworzy ten sam kąt, usuwamy wszystkie z wyjątkiem najbardziej oddalonego od p0. Niech uzyskanym ciągiem będzie p1, p2,...pm. sprawdzamy, czy po dołączeniu nowego punktu, punkty na stosie tworzą zbiór wypukły p0 x p 3. Do początkowo pustego stosu s wkładamy punkty p0, p1, p2. Algorytm ten wykorzystuje stos jako strukturę pomocniczą. Każdy punkt zbioru Q jest raz wkładany na st os i o ile stwierdzimy, że nie może być wierzchołkiem otoczki, jest usuwany ze stosu.Na zakończenie stos zawiera wszystkie wierzchołki otoczki w porządku przeciwnym do ruchu wskazówek zegara 4. for i:=3 to n do while pi leży na prawo od prostej (top(pop(s)), top(s)) do s := pop(s) od; s:= push(pi); od; p0 p1 p2 pi 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

Poprawność algorytmu Grahama 1. Każdy punkt, który został usunięty ze stosu nie należy do otoczki wypukłej. Przypuśćmy, że rozważamy punkt pi zbioru Q i że leży on na prawo od prostej pkpj. Zgodnie z algorytmem, ze stosu usuwamy punkt pj. pj pk ... p0 stos top Rzeczywiście, jak pokazuje rysunek punkt pj nie może należeć do otoczki wypukłej zbioru Q. p0 pk pj pi Ponieważ przeglądamy punkty w porządku rosnących współrzędnych biegunowych względem p0, to dla punktu pj istnieje trójkąt we wnętrzu którego znalazłoby się pj. Zatem pj nie może być wierzchołkiem otoczki wypukłej. Punkty przeglądamy w porządku rosnących współrzędnych biegunowych. 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

Poprawność algorytmu Grahama c.d. 2. Gdy do ciągu wierzchołków wielokąta wypukłego dołączamy nowy punkt ze wskazanego na rysunkach obszaru, to otrzymamy znów wielokąt wypukły. p0 pj p1 pk pk p0 pj p1 pi pi Zgodnie z algorytmem, jeśli dołączamy pi do stosu, to pi leży po lewej stronie prostej pkpj. Ponadto kąt jaki tworzy pip0 z dodatnim kierunkiem osi OX jest większy niż kąt jaki tworzy pjp0 z osią OX. Mamy więc gwarancję, że dołączony punkt pi należy do zakreskowanego obszaru. 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

Koszt algorytmu Grahama Z powyższych rozważań wynika, że niezmiennikiem pętli w 4tym kroku algorytmu Grahama jest własność: Zbiór punktów na stosie tworzy wielokąt wypukły. Koszt algorytmu Operacje dominujące to porównywanie współrzędnych lub badanie położenia punktu względem prostej. O(n) + O(nlg n) + O(1) + O(n-3) = O(nlg n) szukanie minimum krok4 inicjalizacja stosu sortowanie 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

G. Mirkowska, ASD_13 algorytmy w geometrii Przykład Dany zbiór punktów Q: A B C D E F H I J K G Po posortowaniu: BKIJFGHECDA stos J K B F G J K B I K B K B J K B J K B itd 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

G. Mirkowska, ASD_13 algorytmy w geometrii Algorytm Jarvisa Metoda Obroty kartką papieru 1. Znaleźć punkty o najmniejszej i największej współrzędnej y: p0 i q0. 2. Skonstruować dwa ciągi: lewy ciąg p0,... , pm=q0 i prawy ciąg q0,...,qk = p0, takie że razem tworzą otoczkę wypukłą Algorytm p i+1 jest tym punktem zbioru Q, który ma najmniejszy kąt biegunowy ze względu na pi licząc od dodatniej półosi OX w lewo. Niech p0 będzie punktem o najmniejszej współrzędnej y. Zaczynając od p0, przykładamy kartkę papieru równolegle do X i obracamy ją w lewo, tak długo aż napotkamy jakiś punkt zbioru Q. Ten znaleziony punkt będzie wierzchołkiem otoczki. Powtarzamy postępowanie od znalezionego punktu. q i+1 jest tym punktem zbioru Q, który ma najmniejszy kąt biegunowy ze względu na qi licząc od ujemnej półosi OX w prawo. 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

Koszt algorytmu Jarvisa Niech k będzie liczbą wierzchołków szukanej otoczki. Razem O(n*k) Każdy krok pętli kosztuje O(n), bo szukamy minimum kąta biegunowego. Uwaga W algorytmie Jarvisa podobnie jak w algorytmie Grhama nie musimy liczyć kątów. Wystarczy wiedzieć, że jeden kąt jest większy od drugiego. Poprawka (Eddy&Floyd) 1.Wybrać cztery ekstremalne punkty. 2.Usunąć wszystkie punkty leżące wewnątrz tego czworokąta. 3. Dalej tak jak w alg. Jarvisa lub Grahama. 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

G. Mirkowska, ASD_13 algorytmy w geometrii Przykład ABCDEFGHIJK A B C D E F H I J K G BACDEFGHIJK BKCDEFGHIJA BKJDEFGHICA BKJHEFGDIJA BKJHDFGEIJA BKJHDAGEIJF Zamiast kąta względem osi wystarczy badać kąt wzgl. przedłużenia ostatnio znalezionego boku otoczki. 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii

Obliczanie pierwiastka 2018-11-23 G. Mirkowska, ASD_13 algorytmy w geometrii