Serwisy internetowe Uniwersytetu Warszawskiego | USOSownia - uniwersyteckie forum USOSoweNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Algorytmika

Informacje ogólne

Kod przedmiotu: 1000-2N00ALG Kod Erasmus / ISCED: 11.302 / (0612) Database and network design and administration
Nazwa przedmiotu: Algorytmika
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty monograficzne dla III - V roku informatyki
Przedmioty obieralne dla informatyki
Przedmioty obieralne stałe dla informatyki
Punkty ECTS i inne: 6.00
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. Problem maksymalnego przepływu.

- twierdzenie o minimalnym przekroju i maksymalnym przepływie

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

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

4. Programowanie liniowe

- geometria programów liniowych,

- algorytm simplex

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. Algorytmy geometryczne

- przynależność punktu do wielokąta

- technika zamiatania

- znajdowanie otoczki wypukłej

7. Algorytmy równoległe

- Abstrakcyjny model PRAM

- sumy prefiksowe, sortowanie, ściskanie drzew na PRAMie

- sieci sortujące

8. Randomizacja

- algorytmy Monte Carlo i Las Vegas

- algorytm Monte-Carlo dla problemu minimalnego przekroju

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.

Efekty kształcenia:

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-zupełnych

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-zupełne.

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 przykłady algorytmów randomizowanych typu Monte-Carlo i Las-Vegas

7. Zna model obliczeń równoległych PRAM i podstawowe techniki używane w podmodelach EREW i CRCW.

8. Zna podstawowe techniki unikania błędów zaokrągleń w algorytmach geometrii obliczeniowej

9. Zna najważniejsze podejścia do rozwiązywania problemów geometrycznych (dziel i zwyciężaj, zamiatanie)

10. 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 stosować podstawowe techniki randomizacyjne (zaokrąglanie randomizowane, lemat Zippela-Schwartza, color coding) oraz umie stosować derandomizację metodą warunkowej wartości oczekiwanej

5. Potrafi projektować proste algorytmy równoległe

6. Potrafi stosować podejścia zamiatania i dziel-i-zwyciężaj do nowych problemów algorytmicznych

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

Metody i kryteria oceniania:

W trakcie semestru ogłaszane są 2-3 prace domowe. Ich poprawne wykonanie (uzyskanie co najmniej 50% punktów) 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.

Zajęcia w cyklu "Semestr letni 2016/17" (zakończony)

Okres: 2017-02-18 - 2017-06-08
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
Prowadzący grup: Nikolai Karpov, Łukasz Kowalik, Marcin Pilipczuk
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin

Zajęcia w cyklu "Semestr letni 2017/18" (jeszcze nie rozpoczęty)

Okres: 2018-02-18 - 2018-06-08

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
Prowadzący grup: Łukasz Kowalik, Jakub Pawlewicz, 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.