Optymalizacja kombinatoryczna I-NM3O>OK
1. Podstawowe definicje i pojęcia (optymalizacja, macierze, grafy)
2. Programowanie liniowe – aspekty praktyczne
3. Język MathProg - składnia i przykłady
4. Programowanie logiczne w semantyce stabilnych modeli (ang. Answer Set Programming)
5. Programowanie dynamiczne
6. Metoda podziału i ograniczeń
7. Kodowanie SAT – praktyczne wykorzystanie solwerów
8. Definiowanie problemów jako zadanie spełnialności formuły logicznej z wykorzystaniem leżących w jej osnowie różnych teorii (ang. Satisfiability Modulo Theories)
9. Algorytmy heurystyczne i aproksymacyjne
W cyklu 2024/2025-Z:
Celem zajęć w tym module jest przygotowanie studentów do dokładnego i efektywnego rozwiązywania trudnych zadań optymalizacji dyskretnej. Rozpatrywanych jest pięć metod: (i) programowanie dynamiczne (np. w języku C++), (ii) algorytm podziału i ograniczeń (np. w języku C++), (iii) programowanie liniowe w tym całkowitoliczbowe (np. na podstawie języka MathProg), (iv) definiowanie problemów jako zadanie spełnialności formuły logicznej z wykorzystaniem leżących w jej osnowie różnych teorii (np. na podstawie biblioteki Z3) oraz (v) programowanie logiczne z poszukiwaniem stabilnych modeli (np. na podstawie języka AnsProlog). Dzięki temu student powinien wykazać się pełnym zrozumieniem tematyki związanej ze stosowaniem klasycznych i nowoczesnych dokładnych metod optymalizacyjnych. |
Koordynatorzy przedmiotu
<b>Ocena końcowa</b>
W cyklu 2022/2023-Z: | W cyklu 2023/2024-Z: | W cyklu 2024/2025-Z: Uzyskanie pozytywnych ocen z napisanych własnych aplikacji.
Wymagania egzaminacyjne: Zaliczenie laboratoriów
|
<b>Wymagania wstępne</b>
W cyklu 2022/2023-Z: wiedza uzyskana na poziomie inżyniera – z zakresu przedmiotów: matematyka dyskretna, podstawy programowania oraz algorytmy i struktury danych.
| W cyklu 2023/2024-Z: | W cyklu 2024/2025-Z: wiedza uzyskana na poziomie inżyniera – z zakresu przedmiotów: matematyka dyskretna, podstawy programowania oraz algorytmy i struktury danych.
|
<b>Literatura podstawowa</b>
W cyklu 2022/2023-Z: | W cyklu 2023/2024-Z: | W cyklu 2024/2025-Z: - S. Dasgupta i in.: Algorytmy, PWN 2010.
- A. Lew i in.: Dynamic programming, Springer 2007.
- S. Salhi: Heuristic Search, Palgrave 2017.
- V. Lifschitz: Answer Set Programming Springer 2019.
- C. Barrett i in.: The SMT-LIB Standard: Version 2.6. Technical report, 2017 (http://www.SMT-LIB.org).
|
<b>Literatura uzupełniająca</b>
<b>Inne informacje</b>
Efekty kształcenia
Wiedza
Posiada rozszerzoną i pogłębioną wiedzę w zakresie niektórych działów matematyki, obejmującą elementy teorii mnogości, matematyki dyskretnej i stosowanej, w tym metody matematyczne do modelowania problemów optymalizacyjnych
Powiązane efekty kierunkowe:
IF2A_W01
Metody weryfikacji:
Kolokwium:Posiada rozszerzoną i pogłębioną wiedzę w zakresie niektórych działów matematyki, obejmującą elementy teorii mnogości, matematyki dyskretnej i stosowanej, w tym metody matematyczne do modelowania problemów optymalizacyjnych
Wiedza
Ma rozszerzoną wiedzę w zakresie teorii algorytmów oraz ich praktycznych zastosowań
Powiązane efekty kierunkowe:
IF2A_W02
Metody weryfikacji:
Kolokwium:Ma rozszerzoną wiedzę w zakresie teorii algorytmów oraz ich praktycznych zastosowań. Program
z zastosowaniem wybranego
algorytmu
Umiejętności
Umie opracować szczegółową dokumentację dotyczącą realizacji zadania projektowego i przygotować opracowanie wyników realizacji tego zadania
Powiązane efekty kierunkowe:
IF2A_U03
Metody weryfikacji:
Kolokwium:Umie opracować szczegółową dokumentację dotyczącą realizacji zadania projektowego i przygotować opracowanie wyników realizacji tego zadania. z zastosowaniem wybranego
algorytmu
Umiejętności
Umie stworzyć model matematyczny w dziedzinie informatyki i dokonać analizy opisu formalnego
Powiązane efekty kierunkowe:
IF2A_U07
Metody weryfikacji:
Kolokwium:Umie stworzyć model matematyczny w dziedzinie informatyki i dokonać analizy opisu formalnego. Program
z zastosowaniem wybranego
algorytmu
Umiejętności
Potrafi posługiwać się językiem angielskim w stopniu wystarczającym do porozumiewania się, a także do czytania ze zrozumieniem dokumentacji technicznej i wygłoszenia krótkiej prezentacji na temat realizacji zadania projektowego (umiejętności zgodne z wymaganiami określonymi dla poziomu B2 Europejskiego Systemu Opisu Kształcenia Językowego)
Powiązane efekty kierunkowe:
IF2A_U06
Metody weryfikacji:
Kolokwium:Potrafi posługiwać się językiem angielskim w stopniu wystarczającym do porozumiewania się, a także do czytania ze zrozumieniem dokumentacji technicznej i wygłoszenia krótkiej prezentacji na temat realizacji zadania projektowego (umiejętności zgodne z wymaganiami określonymi dla poziomu B2 Europejskiego Systemu Opisu Kształcenia Językowego). Program
z zastosowaniem wybranej biblioteki opisanej w języku ang.
Kompetencje społeczne
Rozumie potrzebę i zna możliwości ciągłego dokształcania się – podnoszenia kompetencji zawodowych, osobistych i społecznych
Powiązane efekty kierunkowe:
IF2A_K01
Metody weryfikacji:
Ocena aktywności na zajęciach:Rozumie potrzebę i zna możliwości ciągłego dokształcania się – podnoszenia kompetencji zawodowych, osobistych i społecznych.
Kryteria oceniania
Wykłady w formie prezentacji z wykorzystaniem rzutnika multimedialnego. Treść slajdów obejmuje zarówno aspekty teoretyczne optymalizacji kombinatorycznej, jaki i praktyczne przykłady użycia konkretnych bibliotek programistycznych. Wykłady kończą się egzaminem, który ma charakter testu jednokrotnego wyboru. Pytania dotyczą zagadnień teoretycznych oraz analizy przykładowych modeli matematycznych oraz kodów źródłowych programów napisanych w jednym z popularnych i znanych przez studentów języków (C++, C#). Za każde pytanie można uzyskać jeden punkt, a do zaliczenia wymagana jest poprawna odpowiedź na co najmniej 50% pytań plus jedno pytanie. Za 100% skuteczność student uzyskuje ocenę bardzo dobrą, a za mniejszą - proporcjonalnie mniej. Warunkiem dopuszczenia do egzaminu jest zdobycie pozytywnej oceny z laboratorium.
W ramach laboratorium rozwiązywane są praktyczne zadania dotyczące poszczególnych metod przedstawianych na wykładzie. za każde rozwiązane zadanie student uzyskuje od zera do pięciu punktów. Zero za brak lub rozwiązanie nieprawidłowe, trzy lub więcej punktów w zależności od następujących czynników: liczby punktów przypisanych do danego zadania, czasu wykonywania dla dopuszczalnych danych wejściowych (przekroczenie lub nieprzekroczenie limitu). Aby zaliczyć laboratorium należy uzbierać nie mniej niż 40% sumy wszystkich możliwych do uzyskania punktów. Za 100% skuteczność student uzyskuje ocenę bardzo dobrą, a za mniejszą - proporcjonalnie mniej.
Ocena końcowa dla modułu to średnia arytmetyczna oceny z egzaminu oraz oceny zaliczającej laboratorium. Obydwie muszą być pozytywne.
Literatura
- S. Dasgupta i in.: Algorytmy, PWN 2010.
- A. Lew i in.: Dynamic programming, Springer 2007.
- S. Salhi: Heuristic Search, Palgrave 2017.
- V. Lifschitz: Answer Set Programming, Springer 2019.
- C. Barrett i in.: The SMT-LIB Standard: Version 2.6. Technical report, 2017 (http://www.SMT-LIB.org).
- C. H. Papadimitriou i in.: Combinatorial Optimization, Dover 1998.
- D. S. Hochbaum: Approximation Algorithms for NP-Hard Problems, PWS 1997.
- E. Lawler: Combinatorial Optimization, Dover 1976.