Pomyl zanim zaprogramujesz dr Anna Beata Kwiatkowska Zakad
Pomyśl, zanim zaprogramujesz! dr Anna Beata Kwiatkowska Zakład Metodyki Nauczania Informatyki WMi. I UMK, ZS UMK Gi. LA Konferencja dla szkół gimnazjalnych i licealnych „Programowanie i my” OEIi. ZK, Warszawa 8 września 2016
Zanim „wkręcisz” uczniów w programowanie… dr Anna Beata Kwiatkowska Zakład Metodyki Nauczania Informatyki WMi. I UMK, ZS UMK Gi. LA Konferencja dla szkół gimnazjalnych i licealnych „Programowanie i my” OEIi. ZK, Warszawa 8 września 2016
Czy informatyka jest dla uczniów ciekawa?
Istota informatyki Rzecz o istocie informatyki Algorytmika David Harel (ur. 1950 w Londynie) – wykładowca informatyki w Instytucie Weizmanna w Izraelu. Jest autorem prac z logiki modalnej, teorii obliczalności i inżynierii oprogramowania.
Dziel i zwyciężaj!
Uniwersalny model Maszyna Turinga (Alan M. Turing, 1936) • taśma – dane, # • skrzynia biegów – stan bieżący, stan następny • oko o ograniczonym polu widzenia - jedno pole Diagram przejść między stanami: • wierzchołki oznaczają stany • etykiety krawędzi: stan bieżący/stan następny, kierunek • graf skierowany!
Czy słowo jest palindromem? … # # a b b a # # …
Czy słowo jest palindromem? … # # # b b a # # …
Czy słowo jest palindromem? … # # # b b a # # …
Czy słowo jest palindromem? … # # # b b a # # …
Czy słowo jest palindromem? … # # # b b a # # …
Czy słowo jest palindromem? … # # # b b a # # …
Czy słowo jest palindromem? … # # # b b # # # …
Czy słowo jest palindromem? … # # # b b # # # …
Czy słowo jest palindromem? … # # # b b # # # …
Czy słowo jest palindromem? … # # # b b # # # …
Czy słowo jest palindromem? … # # b # # # …
Czy słowo jest palindromem? … # # b # # # …
Czy słowo jest palindromem? … # # b # # # …
Czy słowo jest palindromem? … # # # # …
Czy słowo jest palindromem? … # # # # …
Czy słowo jest palindromem? … # # # TAK! # # # …
Obecna sytuacja informatyki w szkołach Obszar porównania Kształcenie informatyczne na poziomie podstawowym Kształcenie informatyczne na poziomie rozszerzonym, Znajomość algorytmiki i programowania Elementy algorytmiki i programowania realizowane w niewielkim zakresie lub wcale Zaawansowana znajomość algorytmów i programowania Znajomość aplikacji użytkowych Pobieżna znajomość przydatności aplikacji użytkowych, często te same treści i umiejętności na poszczególnych etapach Rozwiązywanie problemów wspomagane znajomością aplikacji użytkowych z elementami programowania Przygotowanie nauczycieli Często nauczają nauczyciele innych przedmiotów z dodatkowymi uprawnieniami Niewielu nauczycieli, ale dobrze przygotowanych
Inne, zastanawiające zjawiska obecnej sytuacji o o o o Powoływanie klas informatycznych tylko w wybranych szkołach Częsta „ucieczka” uczniów z nudnych lekcji informatyki na zajęcia pozaszkolne, np. robotyka Niewielka liczba uczniów zdających maturę z informatyki Spadek liczby uczniów biorących udział w olimpiadach informatycznych Zły wynik uczniów w teście PISA – z rozwiązywania problemów z pomocą komputera - zadania na "zaprogramowanie" biletomatu i klimatyzatora - 29 miejsce na 32 kraje. Wzrastające zapotrzebowanie na programistów na rynku pracy. Ranking umiejętności programistów z poszczególnych krajów na świecie - polscy developerzy znajdują się na podium za Chinami i Rosją: http: //blog. hackerrank. com/which-countrywould-win-in-the-programming-olympics/
Cele zmian Informatyka to nie tylko lekcje o wciąż zmieniającej się technologii, ale przede wszystkim, nauka o ponadczasowych wartościach wypływających z algorytmiki i programowania. o Położenie nacisku na kształcenie: n kreatywności, n zdolności do realizacji innowacji, n umiejętności optymalizacji działań Skierowane do wszystkich uczniów i na wszystkich przedmiotach. o Zaciekawienie gimnazjalistów informatyką i przygotowanie do świadomego wyboru dalszego kształcenia się w klasach informatycznych. Wzmacnianie zainteresowań informatycznych uczniów szkół średnich, zwiększenie liczby zdających maturę z informatyki i wybierających studia informatyczne. o 6/12/2021 25
Obowiązująca Podstawa - zajęcia komputerowe Cele kształcenia – wymagania ogólne 1. Bezpieczne posługiwanie się komputerem i jego oprogramowaniem; świadomość zagrożeń i ograniczeń związanych z korzystaniem z komputera i Internetu. 2. Komunikowanie się za pomocą komputera i technologii informacyjno-komunikacyjnych. 3. Wyszukiwanie i wykorzystywanie informacji z różnych źródeł; opracowywanie za pomocą komputera rysunków, motywów, tekstów, animacji, prezentacji multimedialnych i danych liczbowych. 4. Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera. 5. Wykorzystywanie komputera do poszerzania wiedzy i umiejętności z różnych dziedzin, a także do rozwijania zainteresowań. 6/12/2021 26
Obowiązująca Podstawa - Informatyka Cele kształcenia – wymagania ogólne 1. Bezpieczne posługiwanie się komputerem i jego oprogramowaniem, wykorzystanie sieci komputerowej; komunikowanie się za pomocą komputera i technologii informacyjno-komunikacyjnych 2. Wyszukiwanie, gromadzenie i przetwarzanie informacji z różnych źródeł; opracowywanie za pomocą komputera: rysunków, tekstów, danych liczbowych, motywów, animacji, prezentacji multimedialnych. 3. Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera, z zastosowaniem podejścia algorytmicznego. 4. Wykorzystanie komputera oraz programów i gier edukacyjnych do poszerzania wiedzy i umiejętności z różnych dziedzin oraz do rozwijania zainteresowań. 5. Ocena zagrożeń i ograniczeń, docenianie społecznych aspektów rozwoju i zastosowań informatyki. 6/12/2021 27
Nowa Podstawa programowa z informatyki Cele ogólne – algorytmika i programowanie � Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji. � Programowanie i rozwiązywanie problemów z wykorzystaniem komputera oraz innych urządzeń cyfrowych: układanie i programowanie algorytmów, organizowanie, wyszukiwanie i udostępnianie informacji, posługiwanie się aplikacjami komputerowymi. � Posługiwanie się komputerem, urządzeniami cyfrowymi i sieciami komputerowymi, w tym: znajomość zasad działania urządzeń cyfrowych i sieci komputerowych oraz wykonywanie obliczeń i programów. � Rozwijanie kompetencji społecznych, takich jak: komunikacja i współpraca w grupie, w tym w środowiskach wirtualnych, udział w projektach zespołowych oraz organizacja i zarządzanie projektami. � Przestrzeganie prawa i zasad bezpieczeństwa. Respektowanie prywatności informacji i ochrony danych, praw własności intelektualnej, etykiety w komunikacji i norm współżycia społecznego; ocena zagrożeń związanych z technologią i ich uwzględnienie dla bezpieczeństwa swojego i innych. 6/12/2021 28
Podstawa programowa dla przedmiotów informatycznych - zmiany ogólne o o o o o Cele kształcenia – wymagania ogólne wspólne dla wszystkich etapów edukacyjnych. Szczegółowa ich interpretacja jest zapisana w treściach nauczania – wymaganiach szczegółowych dla poszczególnych etapów kształcenia. Spiralność kształcenia przez poszczególne etapy Umieszczenie programowania, dzisiaj postrzeganego jako oddzielna specjalność, w kontekście informatycznym. Zakres treści i umiejętności objętościowo jest taki sam. Zmiana metodyki nauczania nie tylko przedmiotów informatycznych. Personalizacja kształcenia informatycznego Opis w języku efektów kształcenia, czyli oczekiwanej wiedzy, umiejętności i kompetencji personalnych uczniów. Siatka godzin nie ulega zmianie (na razie). Zmiana nazwy zajęć komputerowych na informatykę 6/12/2021 29
Metodyka uczenie przez zalgorytmizowane rozwiązywanie problemów problem modele, pojęcia algorytm i struktury danych programowanie rozwiązania testowanie Tak należy rozumieć powszechną naukę programowania/kodowania Dodatkowo stawia się na: Różnorodne formy aktywności - wizualne - słuchowe - kinestetyczne Różnorodne środowiska wspomagające naukę rozwiązywania problemów. 6/12/2021 30
Piramida zmian – spiralność (przyrostowo) oraz nacisk na inne treści nauczania i umiejętności algorytmika, urządzenia mobilne, dynamiczne struktury danych Specyfikacja, schematy, lista kroków, język formalny, eksperymenty na danych, połowienie, dziel i zwyciężaj, zachłanność, testowanie, podstawowe typy danych, programowanie robotów Porządki na drzewie, kryteria, opisy obiektów i ich kodowanie, szukanie elementów, wizualne języki programowania, sterowanie robotem lub innym urządzeniem Porządki liniowe, rozwiązywanie problemów przez zabawy, gry, sekwencje poleceń, wizualne programowanie i sterowanie robotem (w rzeczywistości lub na ekranie), praca w grupie 6/12/2021
Autorytet nauczyciela informatyki
Nauczyciel – uczeń - informatyka wiedza, umiejętności, kompetencje ucznia wiedza, umiejętności, kompetencje nauczyciela
Nauczyciel – uczeń - informatyka wiedza, umiejętności, kompetencje ucznia wiedza, umiejętności, kompetencje nauczyciela
Kierunki zainteresowań informatycznych o o o Algorytmika Programowanie Aplikacje użytkowe Bazy danych Grafika komputerowa Kryptografia Sieci komputerowe Projektowanie stron WWW Systemy operacyjne Sztuczna inteligencja Teoria informacji …
Początki teorii grafów Leonhard Euler – szwajcarski matematyk i fizyk (rachunek różniczkowy, analiza matematyczna, mechanika, optyka, astronomia), jeden z najwybitniejszych w historii 1736 rok – zagadnienie mostów królewieckich – pierwsza praca na temat teorii grafów Królewiec (Königsberg) – miasto w Rosji u ujścia rzeki Pregoły do Bałtyku (dzisiaj Kaliningrad) 37
Google map – mosty w Królewcu Problem istnienia cyklu Eulera: Czy można przejść przez każdy most tylko raz i wrócić do miejsca, z którego się wyruszyło?
Która figura jest figurą jednobieżną? Podobny problem: przerysować figurę geometryczną bez odrywania ołówka od papieru, przechodząc każdą linię dokładnie raz. Figurę, którą można tak narysować nazywamy jednobieżną lub unikursalną. A B C 39
Jak można reprezentować graf w komputerze? 1 1 2 2 3 4 5 1 Macierz sąsiedztwa 3 2 3 5 4 4 5 1 2 3 4 5 Listy sąsiadów
Jak reprezentować graf w komputerze? 1 2 3 4 5 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 1 Macierz sąsiedztwa 1 2 3 4 5 Listy sąsiadów 2 3 5 4
Jak reprezentować graf w komputerze? 1 2 3 4 5 1 0 0 0 2 1 0 0 3 0 0 0 4 0 0 0 5 0 0 0 1 2 2 1 3 4 5 1 Macierz sąsiedztwa Listy sąsiadów 2 3 5 4
Jak reprezentować graf w komputerze? 1 2 3 4 5 1 0 1 1 0 0 2 1 0 0 3 1 0 0 4 0 0 0 5 0 0 0 1 2 3 2 1 3 1 4 5 1 Macierz sąsiedztwa Listy sąsiadów 2 3 5 4
Jak reprezentować graf w komputerze? 1 2 3 4 5 1 0 1 1 0 0 2 1 0 1 1 1 3 1 1 0 1 1 4 0 1 1 0 1 5 0 1 1 1 0 1 2 3 2 1 3 4 5 3 1 2 4 5 4 2 3 5 5 2 3 4 1 Macierz sąsiedztwa Listy sąsiadów 2 3 5 4
Kiedy graf ma cykl, a kiedy drogę Eulera? 1 2 3 4 5 1 0 1 1 0 0 2 1 0 1 1 1 3 1 1 0 1 1 4 0 1 1 0 1 5 0 1 1 1 0 1 2 3 2 1 3 4 5 3 1 2 4 5 4 2 3 5 5 2 3 4 Macierz sąsiedztwa Która z tych reprezentacji bardziej się opłaca? Listy sąsiadów
Którą reprezentację grafu wybrać? 1 2 3 4 5 1 0 1 1 0 0 2 1 0 1 1 1 3 1 1 0 1 1 4 0 1 1 0 1 5 0 1 1 1 0 1 2 3 2 1 3 4 5 3 1 2 4 5 4 2 3 5 5 2 3 4 Macierz Sąsiedztwa Złożoność obliczeniowa O(n 2), gdzie n-liczba wierzchołków Listy Sąsiadów Złożoność obliczeniowa O(m+n), gdzie m-liczba krawędzi
Listy sąsiadów – STL C++
Łamigłówka Hamiltona Sir Wiliam Rowan Hamilton (1805 -1865) –irlandzki matematyk, astronom i fizyk (algebra, mechanika) 1859 rok – dwunastościan foremny (ma 12 ścian i 20 wierzchołków), w którym każdy z wierzchołków oznaczał jedno znane miasto, np. Londyn, NY, Paryż, … Gra: Jeden z graczy oznacza pięć kolejnych miast, a drugi ma uzupełnić zawierającą je drogę tak, aby przechodziła przez każde miasto dokładnie raz. 48
Zagadka Hamiltona w języku grafów Cykl Hamiltona – cykl przechodzący przez każdy wierzchołek dokładnie raz. Problem: Znaleźć w grafie cykl Hamiltona. (Stwierdzić, czy graf jest Hamiltonowski) Dwunastościan foremny Siatka dwunastościanu foremnego Przykładowy cykl Hamiltona
Problem Sapera Czy zadany układ początkowy z Sapera posiada rozwiązanie? Problem Sapera (Minesweeper Consistency Problem (MCP), 1950). W roku 2000 Richard Kaye pokazał, że Problem Sapera jest NP-zupełny. Gdyby jakikolwiek problem NP-zupełny można było rozwiązać w czasie wielomianowym, to każdy problem NP-zupełny miałby rozwiązanie wielomianowe (np. problem kliki, pokrycia wierzchołkowego, komiwojażera, sapera).
Czy algorytmy i programowanie do czegoś nam się przydadzą?
Szukanie najkrótszej trasy razem z grafami 2 168 7 1 162 160 3 167 5 212 258 8 4 6
Model sytuacji - Graf ważony G=( V, E) V – niepusty zbiór wierzchołków 2 2 E – zbiór krawędzi w: E R+ - funkcja wag 1 3 7 5 3 4 3 7 Jaka jest najkrótsza droga z 2 do 5? 4 6 5 2 5 8 1 6 2
Relaksacja u w(v, u) v d(s, u) d(s, v) s jeśli d(s, u) ≥ d(s, v) + w(v, u) to d(s, u) = d(s, v) + w(v, u) Teraz do u przyszliśmy z v, a nie z s!
Algorytmy odkrywają tajemnice świata o Instalowanie kamer o jak najmniejszym koszcie, oświetlających wybrany obszar – minimalnego pokrycie wierzchołkowe o Rozwożenie przesyłek samochodami - pakowanie plecaka o Działanie automatów do kawy, biletów – drzewa o Kompresja danych (np. zip)- kody Huffmana o Budowa dróg między miastami o jak najmniejszym koszcie całkowitym inwestycji – minimalne drzewo rozpinające grafu o Ustalanie kolejności czynności możliwych do wykonania, np. przy produkcji – sortowanie topologiczne o Sortowanie elementów - sortowanie na drzewie o Przepływnie pakietów informacji w sieci Internet - przepływy w sieciach o Ważne osoby w grupie - centrum w grafie o Rozmieszczenie instytucji w miastach – kolorowanie grafu o Kojarzenie małżeństw – pełne skojarzenie grafu dwudzielnego
Podobieństwo organizmów Sekwencje nukleotydowe DNA (fragment genu) źródło rysunków: Wikipedia
Podobieństwo organizmów Sekwencje nukleotydowe DNA (fragment genu) trzy nukleotydy to aminokwas sekwencja aminokwasów to białko ATGGCAGACCATTATTTTTCTAACGACCCTTCTAGTAAAAGTGATCGTAAGCGATGGGAATTTACGCTTC GTGGATCTCAATTTACTTTCTTATCTGACCGTGGGGTGTTCTCGAAAAACGAAGTGGACTTTGGTTCTCG TCTTTTAATTGAAGCGTTTCAAGTGCCAGATATTAAAGGTGACATATTAGACGTAGGTTGTGGATATGGA CCAATTGGTTTATCGTTGGCGAAAGAGTTTCAAGACCGTAAAGTTCACATGGTGGATGTGAAAGGG CACTTGAGCTTGCAAAAGAAAATGCCGCTAACAATAGAATTGGAAATGTGCACATTTTTCAAAGTAGCGT CTATGAAAATGTAGATGGTATGCTGCTATTCTAATCCTCCAATTCGTGCAGGGAAAGATATC GTGCATGAGATTTTAGAAAAAGCTGTAGAACATTTAGTTCCAGGTGGAGAGTTGTGGATTGTTATTCAAA AGAAACAAGGTGCACCATCTGCGCTGAAGAAACTAGAAGAAGTGTTTTCTGAAGTCGAAGTTGTAGAAAAAAGGATATTATATCATAAAATCAAAAAAACGTTGA źródło rysunków: Wikipedia
Nie tylko grafy Podobieństwo organizmów Sekwencje nukleotydowe DNA (fragment genu) Fragment genu 16 S bakterii, na podstawie którego identyfikuje się zakażenia ATGGCAGACCATTATTTTTCTAACGACCCTTCTAGTAAAAGTGATCGTAAGCGATGGGAATTTACGCTTC GTGGATCTCAATTTACTTTCTTATCTGACCGTGGGGTGTTCTCGAAAAACGAAGTGGACTTTGGTTCTCG TCTTTTAATTGAAGCGTTTCAAGTGCCAGATATTAAAGGTGACATATTAGACGTAGGTTGTGGATATGGA CCAATTGGTTTATCGTTGGCGAAAGAGTTTCAAGACCGTAAAGTTCACATGGTGGATGTGAAAGGG CACTTGAGCTTGCAAAAGAAAATGCCGCTAACAATAGAATTGGAAATGTGCACATTTTTCAAAGTAGCGT CTATGAAAATGTAGATGGTATGCTGCTATTCTAATCCTCCAATTCGTGCAGGGAAAGATATC GTGCATGAGATTTTAGAAAAAGCTGTAGAACATTTAGTTCCAGGTGGAGAGTTGTGGATTGTTATTCAAA AGAAACAAGGTGCACCATCTGCGCTGAAGAAACTAGAAGAAGTGTTTTCTGAAGTCGAAGTTGTAGAAAAAAGGATATTATATCATAAAATCAAAAAAACGTTGA źródło rysunków: Wikipedia
BLAST - Basic Local Alignment Search Tool Ogólnoświatowa baza sekwencji nukleotydowych, białkowych, itd. http: //blast. ncbi. nlm. nih. gov/Blast. cgi Wkładając sekwencję nukleotydową genu w bazę wszystkich organizmów, można w łatwy sposób znaleźć informację np. do jakiego szczepu bakterii należy dane DNA Podaje nam również informację, na ile ta sekwencja jednej bakterii jest podobna do innej bakterii, co pozwala oszacować z jakim prawdopodobieństwem możemy powiedzieć że to jest ta, a nie inna bakteria.
Wyniki z bazy BLAST Bacilius cereus Listeria monocytogenes Bacilius anthracis (wąglik) Bacilius thuringencis Streptococcus iniae źródło rysunków: BLAST
Identyfikacja organizmu źródło rysunków: BLAST
Problem najdłuższego, wspólnego podciągu, NWP Dane: dwa ciągi A i B, Wynik: znalezienie najdłuższego wspólnego podciągu ciągów A i B. Najdłuższy wspólny podciąg X, to najdłuższy taki podciąg występujący zarówno w ciągu A, jak i w ciągu B, że elementy ciągu X występują w tej samej kolejności zarówno w A, jaki w B, ale niekoniecznie obok siebie. ALGORYTM INFORMATYKA
Problem najdłuższego, wspólnego podciągu, NWP Dane: dwa ciągi A i B, Wynik: znalezienie najdłuższego wspólnego podciągu ciągów A i B. Najdłuższy wspólny podciąg X, to najdłuższy taki podciąg występujący zarówno w ciągu A, jak i w ciągu B, że elementy ciągu X występują w tej samej kolejności zarówno w A, jaki w B, ale niekoniecznie obok siebie. ALGORYTM INFORMATYKA
Problem najdłuższego, wspólnego podciągu, NWP Dane: dwa ciągi A i B, Wynik: znalezienie najdłuższego wspólnego podciągu ciągów A i B. Najdłuższy wspólny podciąg X, to najdłuższy taki podciąg występujący zarówno w ciągu A, jak i w ciągu B, że elementy ciągu X występują w tej samej kolejności zarówno w A, jaki w B, ale niekoniecznie obok siebie. ALGORYTM INFORMATYKA AY nie jest NWP
Problem najdłuższego, wspólnego podciągu, NWP Dane: dwa ciągi A i B, Wynik: znalezienie najdłuższego wspólnego podciągu ciągów A i B. Najdłuższy wspólny podciąg X, to najdłuższy taki podciąg występujący zarówno w ciągu A, jak i w ciągu B, że elementy ciągu X występują w tej samej kolejności zarówno w A, jaki w B, ale niekoniecznie obok siebie. ALGORYTM INFORMATYKA
Problem najdłuższego, wspólnego podciągu, NWP Dane: dwa ciągi A i B, Wynik: znalezienie najdłuższego wspólnego podciągu ciągów A i B. Najdłuższy wspólny podciąg X, to najdłuższy taki podciąg występujący zarówno w ciągu A, jak i w ciągu B, że elementy ciągu X występują w tej samej kolejności zarówno w A, jaki w B, ale niekoniecznie obok siebie. ALGORYTM INFORMATYKA
Problem najdłuższego, wspólnego podciągu, NWP Dane: dwa ciągi A i B, Wynik: znalezienie najdłuższego wspólnego podciągu ciągów A i B. Najdłuższy wspólny podciąg X, to najdłuższy taki podciąg występujący zarówno w ciągu A, jak i w ciągu B, że elementy ciągu X występują w tej samej kolejności zarówno w A, jaki w B, ale niekoniecznie obok siebie. ALGORYTM INFORMATYKA
Problem najdłuższego, wspólnego podciągu, NWP Dane: dwa ciągi A i B, Wynik: znalezienie najdłuższego wspólnego podciągu ciągów A i B. Najdłuższy wspólny podciąg X, to najdłuższy taki podciąg występujący zarówno w ciągu A, jak i w ciągu B, że elementy ciągu X występują w tej samej kolejności zarówno w A, jaki w B, ale niekoniecznie obok siebie. ALGORYTM INFORMATYKA
Algorytm naiwny Generujemy wszystkie podciągi ciągu A. Dla każdego z wygenerowanych ciągów sprawdzamy, czy jest podciągiem B, zapamiętując jednocześnie najdłuższy wspólny podciąg znaleziony do tej pory. Kosztowne!
Podejście rekurencyjne Dane są dwa ciągi A = <a 1, a 2, …, am-1 , am> i B = <b 1, b 2, …, bn-1, bn> o jeśli am = bn A = <a 1, a 2, …, am-1 , am> B = <b 1, b 2, …, bn-1, bn> to wystarczy znaleźć NWP ciągów Am – 1 i Bn – 1 i dołączyć do rozwiązania am = bm; NWP (Am, Bn) = NWP (Am – 1, Bn – 1) +1 o jeśli am ≠ bn, mamy dwie możliwości: o A = <a 1, a 2, …, am-1 , am> B = <b 1, b 2, …, bn-1, bn> znaleźć NWP ciągów Am – 1 i B znaleźć NWP ciągów A i Bn – 1 i wybrać dłuższy ze znalezionych podciągów jako rozwiązanie. NWP (Am, Bn) = max(NWP (Am-1, Bn), NWP (Am, Bn-1))
Algorytm dynamiczny - długość NWP 0 A 0 L 0 G 0 O 0 R 0 Y 0 T 0 M 0 I N F O R M A T Y K A 0 0 0 Zasada optymalności Bellmana Na każdym kroku podejmuj najlepszą decyzję z uwzględnieniem stanu wynikającego z poprzednich decyzji.
Algorytm dynamiczny - długość NWP I N F O R M A T Y K A 0 0 0 A 0 0 0 0 1 L 0 G 0 O 0 R 0 Y 0 T 0 M 0 Zasada optymalności Bellmana Na każdym kroku podejmuj najlepszą decyzję z uwzględnieniem stanu wynikającego z poprzednich decyzji.
Algorytm dynamiczny - długość NWP I N F O R M A T Y K A 0 0 0 A 0 0 0 0 1 1 L 0 G 0 O 0 R 0 Y 0 T 0 M 0 Zasada optymalności Bellmana Na każdym kroku podejmuj najlepszą decyzję z uwzględnieniem stanu wynikającego z poprzednich decyzji.
Algorytm dynamiczny - długość NWP I N F O R M A T Y K A 0 0 0 A 0 0 0 0 1 1 1 L 0 0 0 0 1 1 1 G 0 0 0 0 1 1 1 O 0 0 1 1 1 1 R 0 0 0 2 Y 0 T 0 M 0 Zasada optymalności Bellmana Na każdym kroku podejmuj najlepszą decyzję z uwzględnieniem stanu wynikającego z poprzednich decyzji.
Algorytm dynamiczny - długość NWP I N F O R M A T Y K A 0 0 0 A 0 0 0 0 1 1 1 L 0 0 0 0 1 1 1 G 0 0 0 0 1 1 1 O 0 0 1 1 1 1 R 0 0 1 2 2 2 2 Y 0 0 1 2 2 3 3 3 T 0 0 1 2 2 2 3 3 M 0 0 1 2 3 3 3 Zasada optymalności Bellmana Na każdym kroku podejmuj najlepszą decyzję z uwzględnieniem stanu wynikającego z poprzednich decyzji.
Algorytm dynamiczny - długość NWP I N F O R M A T Y K A 0 0 0 A 0 0 0 0 1 1 1 L 0 0 0 0 1 1 1 G 0 0 0 0 1 1 1 O 0 0 1 1 1 1 R 0 0 1 2 2 2 2 Y 0 0 1 2 2 3 3 3 T 0 0 1 2 2 2 3 3 M 0 0 1 2 3 3 3 O(n*m) Zasada optymalności Bellmana Na każdym kroku podejmuj najlepszą decyzję z uwzględnieniem stanu wynikającego z poprzednich decyzji. Pseudokod algorytmu:
Inne przykłady przydatności algorytmów o Wydawanie reszty – algorytm zachłanny przy aktualnych nominałach n n o Rozpoznawanie plagiatów – algorytmy wyszukiwania wzorca n n o Układanie wg liczby odwiedzeń, liczby like’ów ; -) Układanie w zadanym porządku Rezerwacja miejsc – algorytm na drzewach przedziałowch n n o Teksty Muzyka Porządkowanie informacji – algorytmy sortowania n n o Automaty do kawy Zakupy Podróże pociągiem Podróże wieloma samolotami I wiele innych…
Gdy wszyscy mamy już przekonanie, że… o o o Informatyka jest ciekawa Nauczyciel informatyki jest autorytetem Algorytmy i programowanie przydają się w każdej dziedzinie życia i dodatkowo… o okazuje się, że informatyka zapewnia dobra pracę w przyszłości! Możemy liczyć na to, że wielu uczniów wybierze ten przedmiot, jak kierunek dalszego kształcenia!
Literatura 1. Tomasz Bartnicki, Jak wygrać milion dolarów w Sapera - zapis odczytu nagrodzonego medalem Filca na XXXIX Szkole matematyki Poglądowej Domniemanie–Hipoteza–Dowód, Sierpień 2007. 2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Wprowadzenie do algorytmów, WNT, 1997. 3. Lev Kourliandtchiyk, Etiudy matematyczne, od matematycznych krzyżówek do teorii grafów, Oficyna Wydawnicza Tutor, 2000. 4. David Harel Rzecz o istocie informatyki, Algorytmika, WNT 5. Olimpiada Informatyczna, http: //www. oi. edu. pl, niebieskie książeczki, ostatni dostęp 23. 08. 2016. Wikipedia
Dziękuję! Anna Beata Kwiatkowska aba@mat. umk. pl
Zagadka na zakończenie Czy można pola figury narysowanej poniżej obejść krokiem skoczka szachowego i wrócić do początkowego pola, odwiedzając przy tym wszystkie pola dokładnie raz? 83
Rozwiązanie 84
- Slides: 84