Algorytmy stochastyczne
Transkrypt
Algorytmy stochastyczne
Algorytmy stochastyczne 18 lutego 2014 Organizacja przedmiotu • • • • przedmiot: Algorytmy stochastyczne, semestr letni 2013/2014, prowadzący: Jarosław Piersa, forma: wykład + laboratoria (30h + 30h), wymagania programowe: umiejętność samodzielnego myślenia, Kurs Programowania I oraz II, Algorytmy i Struktury Danych, podstawy rachunku prawdopodobieństwa i statystyki matematycznej: np. Statystyczna Analiza Danych i / lub Modele i Metody Probabilistyczne, • egzamin: po semestrze letnim, pisemny + ustny, • zaliczenie laboratoriów: projekty programistyczne; ocena BDB+ z laboratoriów daje zwolnienie z egzaminu pisemnego. Literatura Podstawowa 1. 2. 3. 4. Z. Michalewicz Algorytmy genetyczne + struktury danych = programy ewolucyjne, P. Prusinkiewicz, A. Liendenmayer The algorithmic beauty of plants P. Judea, Probabilistic reasoniings in intelligent systems: Networks of plausible inference R. Neapolitan, Learning Bayesian Networks Literatura Uzupełniająca 1. U. Borczyka, Algorytmy optymalizacji mrowiskowej, WUŚ 2006 Program 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Biologiczne motywacja algorytmów genetycznych, Podstawowy algorytm genetyczny, Programy ewolucyjne, Systemy Liendenmayera, (?) Algorytmy optymalizacji mrowiskowej, Sieci bayesowskie, Wnioskowanie w sieciach bayesowskich, Uczenie parametryczne sieci bayesowskich, Uczenie strukturalne w sieciach bayesowskich, (??) Grafy losowe. Abstrakt Celem zajęć jest zapoznanie studentów z algorytmami optymalizacji opartymi losowości (algorytmy genetyczne) oraz systemami wnioskowania przy niepewnej wiedzy (sieci bayesowskie). Zajęciom towarzyszą laboratoria o charakterze programistycznym. Przedmiot kierowany jest dla studentów informatyki: drugiego stopnia oraz trzeciego roku pierwszego stopnia. Skala ocen Co będzie? • Dużo programowania (pisanie programów), • Trochę matematyki, • Prototyp algortytmu do zaimplementowania na zajęciach (język dowolny, ściągawki będą w Matlabie / Octavie), • Projekty zaliczeniowe pisane głównie w domu, prezentowane w trakcie zajęć, • Obecność wymagana (ponad 3 nieobecności = +1 projekt do napisania). Zaliczenie Zaliczenie laboratoriów na podstawie projektów programistycznych — implementowanie omawianych algorytmów. Projekty ważone od 1 do 3 punktów. Punktacja ocena dst db bdb bdb+ punkty 3p 4p 5p 6 lub więcej / 5 wybitnych Na ocenę bdb+ wymagana jest terminowość: • przynajmniej jeden projekt do końca marca, • przynajmniej jeden projekt do końca kwietnia, • przynajmniej jeden projekt do końca maja, • przynajmniej jeden projekt do końca przedmiotu w czwerwcu, • wszystkie projekty przed pierwszym terminem egzaminu! Wskazówki Na co należy zwrócić uwagę pisząc programy: • (Zalecane choć nie wymagane) projekty mogą być prezentowane na forum całej grupy laboratoryjnej. Do wykorzystania projektor w sali laboratoryjnej. Prezentacja powinna trwać 5 do 10 minut. W trakcie prezentacji należy przedstawić funkcjonalności programu, zastosowane rozwiązanie, wykorzystaną technologię, zaakcentować rzeczy, którymi autor chciałby się pochwalić. Można wykorzystać wprowadzającą prezentację pdf. Prezentację może kończyć krótka dyskusja. • Zadania będą sprawdzane z autorem siedzącym obok, w trakcie laboratorium lub na konsultacjach. Zadania nie będą sprawdzane zaocznie. • Zadania powinny być napisane tak, aby umożliwić prostą i szybką ocenę poprawności działania po efektach (ocena poprawności poprzez analizowanie wypisanych -nastu stron liczb na stdout nie jest prosta ani szybka) • Program może być uruchamiany na laptopie bądź komputerze w sali laboratoryjnej. Proszę upewnić się, że mają Państwo pod ręką wszystkie wymagane środowiska lub/i biblioteki (dotnet framework, jdk, interpreter pythona, karta graficzna obsługująca Cuda etc). • Podczas sprawdzania należy mieć kod źródłowy programu oraz edytor podświetlający składnię. • Fragmentem zaliczenia może być kilka dodatkowych pytań o np: algorytm, sposób implementacji, zagadnienia teoretyczne powiązane z zadaniem i/lub dopisanie dodatkowej funkcjonalności w trakcie sprawdzania. • Im później oddawane zadanie tym większa szansa na dodatkowe pytania. • Większe projekty na (2 i więcej punktów) można pisać w dwuosobowych zespołach. Orientacyjna lista projektów Do wyboru 3 do 6 punktów: • algorytmy genetyczne (luty): – szukanie minimum / maksimum (1p), – dylemat więźnia / problem zasp (2p), – problem komiwojażera (2p), – wyszukiwanie ścieżek (2p), • Systemy Liendenmayera (marzec): – rysowanie roślin (1p), – generowanie terenu (1p), – renderowanie lasu / łąki (2p), • Optymalizacja mrowiskowa (marzec/kwiecień): – TBU • Sieci bayesowskie (kwiecień / maj / czerwiec) – sieć bayesowskia, generowanie próbek (1p) – wnioskowanie w sieciach bayesowskich (maj) ∗ ∗ ∗ ∗ NBC, naive bayesian classifier (1p) ważone próbkowanie logiczne (1p) próbnik Gibbsa (1p) algorytm Kima-Pearla, przesyłanie wiadomości (2p) – uczenie parametryczne sieci bayesowskich (maj / czerwiec) ∗ algorytm Dirichleta (1p) ∗ algorytm EM (1p) – uczenie strukturalne sieci bayesowskich (maj / czerwiec) ∗ algorytm PC + uzupełnianie do pełnej sieci (2p) ∗ algorytm K2 (2p) • Uwaga! Z sieci bayesowskich można wykonać pakiet, który łączy działanie, wnioskowanie i uczenie. Poszczególne punkty można wykonywać „na razy”.