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 obieralne dla informatyki
Przedmioty obieralne fakultatywne dla informatyki (IIIr. licencjatu, nowy program)
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

- algorytmy podliniowe

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

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

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. By zaliczyć przedmiot w pierwszym terminie, należy uzyskać przynajmniej 75% punktów z wszystkich testów.

Ponadto w ciągu semestru będą 3-4 serie prac domowych, każda składająca się z 1-2 zadań. Egzamin będzie testowy, 90-minutowy, sprawdzający wiedzę i twórcze jej wykorzystanie. Ocena końcowa będzie zależeć od wyników prac domowych i egzaminu.

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.

By podejść do egzaminu w terminie zerowym, wymaga się powyżej 90% punktów z testów i powyżej 90% punktów z prac domowych.

Zajęcia w cyklu "Semestr letni 2023/24" (w trakcie)

Okres: 2024-02-19 - 2024-06-16
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Marcin Pilipczuk
Prowadzący grup: Marcin Pilipczuk, 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.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
kontakt deklaracja dostępności USOSweb 7.0.2.0-1 (2024-03-12)