Uniwersytet Warszawski - Centralny System Uwierzytelniania
Strona główna

Algorytmika

Informacje ogólne

Kod przedmiotu: 1000-2N00ALG
Kod Erasmus / ISCED: 11.302 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0612) Database and network design and administration Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: Algorytmika
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty monograficzne dla III - V roku informatyki
Przedmioty obieralne dla informatyki
Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka
Punkty ECTS i inne: 6.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
Język prowadzenia: polski
Rodzaj przedmiotu:

fakultatywne

Założenia (lista przedmiotów):

Algorytmy i struktury danych 1000-213aASD

Skrócony opis:

Wykład jest kontynuacją wykładu "Algorytmy i struktury danych". Celem zajęć jest zaznajomienie studentów z technikami konstrukcji efektywnych algorytmów dla różnych rodzajów problemów kombinatorycznych.

Wymagania wstępne: Algorytmy i struktury danych

Pełny opis:

1. Problemy ścieżkowe w grafach:

- algorytm Bellmana-Forda

- problemy ścieżkowe i mnożenie macierzy

- algorytm Floyda-Warshalla

- algorytm Johnsona

2. Problemy przepływowe.

- twierdzenie o minimalnym przekroju i maksymalnym przepływie

- algorytmy Forda-Fulkersona, Edmondsa-Karpa, Dinica, trzech Hindusów

- problem przepływu o najmniejszym koszcie, algorytm najtańszej ścieżki powiększającej

- redukcje do problemów przepływu

3. Klasy zlozonosci P, NP, dowodzenie NP-trudnosci

4. Programowanie liniowe

- geometria programów liniowych,

- algorytm simplex, dualność

5. Algorytmy aproksymacyjne

- algorytm 2-aproksymacyjny dla pokrycia wierzchołkowego

- nieaproksymowalność problemu komiwojażera

- algorytm Christofidesa dla metrycznego problemu komiwojażera

- zastosowania programowania liniowego w aproksymacji

6. Algotytmy parametryzowane

- definicje klas złożoności FPT, XP

- algorytmy przez rozgałęzianie,

- kernelizacja: liniowe jądro dla problemu pokrycia wierzchołkowego

- pojęcia szerokości ścieżkowej i drzewowej

- programowanie dynamiczne po dekompozycji drzewowej

7. Randomizacja

- algorytmy Monte Carlo i Las Vegas

- technika color coding

- algorytm Monte-Carlo dla problemu największych skojarzeń w grafach

8. Szybka transformata Fouriera i szybkie mnożenie macierzy (algorytm Strassena)

9. (opcjonalnie) Algorytm Edmondsa dla skojarzeń w grafach dowolnych

Literatura:

1. Wprowadzenie do algorytmów, T.H. Cormen, C. E. Leiserson, R.L.Rivest, WNT 1998, 2004.

2. Algorytmy aproksymacyjne, V. V. Vazirani, WNT 2005.

3. Metody probabilistyczne i obliczenia, M. Mitzenmacher, E. Upfal, WNT 2009.

4. The Design and Analysis of Algorithms, D. C. Kozen, Springer 1991.

5. Parameterized Algorithms, Cygan, Fomin, Kowalik, Lokshtanov, Marx, Pilipczuk, Pilipczuk, Saurabh, Springer 2015

Efekty uczenia się:

Wiedza

1. Zna najważniejsze problemy optymalizacji kombinatorycznej

2. Zna pojęcia klas złożoności P i NP, pojęcie problemów NP-trudnych

3. Zna efektywne algorytmy dla najważniejszych problemów optymalizacji kombinatorycznej z klasy P (problemy ścieżkowe, przepływy, programowanie liniowe)

4. Zna najważniejsze problemy NP-trudne.

5. Zna pojęcie algorytmu aproksymacyjnego oraz przykłady takich algorytmów używające podejścia kombinatoryczne oraz oparte o teorię programowania liniowego

6. Zna pojęcie algorytmu parametryzowanego oraz przykłady różnych parametryzacji. Zna pojęcie kernelizacji.

7. Zna pojęcie szerokości drzewowej i technikę programowania dynamicznego po dekompozycji drzewowej

8. Zna przykłady algorytmów randomizowanych typu Monte-Carlo i Las-Vegas

9. Wie o istnieniu algorytmów szybkiej transformaty Fouriera i szybkiego mnożenia macierzy.

Umiejętności:

1. Potrafi sprowadzać nowe problemy do znanych problemów przepływowych, ścieżkowych, programowania liniowego

2. Potrafi przeprowadzać dowody NP-trudności

3. Potrafi projektować algorytmy aproksymacyjne i analizować jakość aproksymacji

4. Potrafi wskazać naturalne parametryzowane wersje problemów oraz stosuje techniki takie jak: rozgałęzianie, kernelizacja, programowanie dynamiczne po dekompozycji drzewowej.

5. Potrafi stosować podstawowe techniki randomizacyjne (zaokrąglanie randomizowane, lemat Zippela-Schwartza, color coding) oraz umie stosować derandomizację metodą warunkowej wartości oczekiwanej

6. Potrafi sprowadzać nowe problemy algorytmiczne do mnożenia macierzy lub wielomianów.

Metody i kryteria oceniania:

Po każdym wykładzie przez Moodle ogłaszany jest krótki test wielokrotnego wyboru, dotyczący materiału z wykładu. Dodatkowo, w połowie semestru ogłaszana jest praca domowa składająca się z 1-3 zadań. Uzyskanie dobrego wyniku z testów i pracy domowej uprawnia do zdawania egzaminu w I terminie. Egzamin składa się z 1.5-godzinnej części testowej sprawdzającej wiedzę oraz twórcze jej wykorzystanie oraz 2.5-godzinnej części zadaniowej, sprawdzającej umiejętność rozwiązywania zadań. Zadania polegają na zaprojektowaniu algorytmu i uzasadnieniu jego własności (poprawność, czas, ew. współczynnik aproksymacji) lub na przeprowadzeniu dowodu NP-trudności.

W przypadku zaliczania przedmiotu przez doktoranta, dodatkowym elementem zaliczenia będzie zapoznanie się z oryginalnym, będącym blisko aktualnego frontu badań, artykułem naukowym i rozmowa z wykładowcą na temat tego artykułu.

Zajęcia w cyklu "Semestr letni 2021/22" (zakończony)

Okres: 2022-02-21 - 2022-06-15
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć:
Ćwiczenia, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Łukasz Kowalik, Marcin Pilipczuk
Prowadzący grup: Łukasz Kowalik, Marcin Pilipczuk, Michał Pilipczuk, Anna Zych-Pawlewicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin

Zajęcia w cyklu "Semestr letni 2022/23" (jeszcze nie rozpoczęty)

Okres: 2023-02-20 - 2023-06-18

Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć:
Ćwiczenia, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Łukasz Kowalik, Marcin Mucha
Prowadzący grup: Łukasz Kowalik, Mathieu Mari, Marcin Mucha, Anna Zych-Pawlewicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.
ul. Banacha 2
02-097 Warszawa
tel: +48 22 55 44 214 https://www.mimuw.edu.pl/
kontakt deklaracja dostępności USOSweb 6.8.0.0-e459be735 (2022-11-16)