- Nazwa przedmiotu:
- Metody optymalizacji dyskretnej
- Koordynator przedmiotu:
- Rajmund Kożuszek
- Status przedmiotu:
- Fakultatywny dowolnego wyboru
- Poziom kształcenia:
- Studia II stopnia
- Program:
- Informatyka
- Grupa przedmiotów:
- Przedmioty techniczne - zaawansowane
- Kod przedmiotu:
- MOD
- Semestr nominalny:
- 3 / rok ak. 2021/2022
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 1. liczba godzin kontaktowych – 47 godz., w tym
obecność na wykładach 30 godz.,
spotkania projektowe 15 godz.,
konsultacje 2 godz.,
2. praca własna studenta – 70 godz., w tym
przygotowanie do kolokwium 25 godz.,
przygotowanie do zadania projektowego 15 godz.,
realizacja projektu 30 godz.
Łączny nakład pracy studenta wynosi 117 godz., co odpowiada 4 pkt. ECTS.
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- 1,61 pkt. ECTS, co odpowiada 47 godz. kontaktowym
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 2,05 pkt. ECTS, co odpowiada 15 godz. spotkań projektowych plus 45 godz. przygotowania i realizacji projektu
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium0h
- Projekt15h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Podstawy programowania, ZBOP
- Limit liczby studentów:
- 30
- Cel przedmiotu:
- Celem przedmiotu jest przekazanie podstaw teoretycznych i nauczenie w praktyce rozwiązywania różnych problemów natury dyskretnej (kombinatorycznej). Problemy te najczęściej są związane z planowaniem, optymalizacją i podejmowaniem decyzji napotykanych w systemach zarządzania, logistyki i produkcji. Dzięki zastosowaniu zaawansowanych algorytmów optymalizacji dyskretnej i sieciowej można je rozwiązywać efektywnie.
- Treści kształcenia:
- Wykład:
I. Wprowadzenie. Sprawy organizacyjne, cele i program zajęć, zasady zaliczania. Modele matematycznego programowania liniowego, mieszanego, kwadratowego. Modelowanie dyskretne.
II. Problemy i ich klasyfikacja. Specyfika problemów, które można rozwiązywać stosując metody i modele optymalizacji. Przykłady i modele znanych klas problemów:
- produkcja, harmonogramowanie, magazynowanie
- lokalizacja, alokacja, problemy plecakowe, inwestycje
- logistyka, problemy komiwojażera (Vehicle Routing Problem)
- pricing
- zadania sieciowe modelowane za pomocą teorii grafów, proste (przydział, transportowe),
trudniejsze (przepływy wielotowarowe, projektowanie sieci, kolorowanie grafów)
- wskazanie obszarów z dużym potencjałem badawczym (np. do rozwijania w ramach indywidualnych prac dyplomowych) oraz odpowiadających na zapotrzebowanie ze strony projektów badawczo-rozwojowych prowadzonych w Zakładzie Badań Operacyjnych i Systemowych, jak i w Instytucie Automatyki i Informatyki Stosowanej.
III. Techniki rozwiązywania zadań trudnych
1. Przybliżone
- symulowane wyżarzanie
- vns
- ewolucyjne
2. Dokładne
- programowanie dynamiczne, zasada optymalności Bellmana
- metody podziału i oszacowań (branch-and-bound)
- metody odcięć (algorytm Gomory’ego)
- dekompozycje, technika generacji kolumn, dekompozycja Dantziga-Wolfe'a, Bendersa
- techniki restrykcyjne i relaksacyjne, relaksacja Lagrange'a
- metody prymalno-dualne, metoda Karusha-Kuhna-Tuckera, metoda dualna Lagrange’a
- programowanie z ograniczeniami (constraint programming), propagacja ograniczeń zgodnie z algorytmami Backtracking i Forward Checking
- algorytmy grafowe i sieciowe: badanie wgłąb, spójność, najkrótsza ścieżka, najlżejsze drzewo; skojarzenia, pokrycia, podział; algorytm Forda-Fulkersona
3. Narzędzia programistyczne modelowania i implementacji metod obliczeniowych dla problemów decyzyjnych
- aimms, opl, ampl, cplex, matlab, python-api
Ćwiczenia: brak
Laboratorium: brak
Projekt:
Projekt 1: modelowanie zadanego problemu optymalizacji i rozwiązanie go za pomocą komercyjnego pakietu optymalizacyjnego CPLEX, ILOG.
Projekt 2:
implementacja algorytmu, interfejs, integracja z solwerami, opracowanie kompletnego rozwiązania obejmującego zaprojektowanie, zaprogramowanie i uruchomienie algorytmu rozwiązującego konkretne zadanie biznesowe. Tematy projektów i narzędzia programowe są dobierane indywidualnie, zgodnie z zainteresowaniami studentów. Przykładowe dziedziny - sterowanie i harmonogramowanie produkcji w dyskretnych systemach wytwarzania, projektowanie systemów informacyjnych, zarządzanie i planowanie zasobów w ramach smart grid, zarządzanie i projektowanie sieci komputerowych i sieci telekomunikacyjnych, sieci dystrybucyjnych i komunikacyjnych, zarządzanie zasobami w chmurze, itp.
Realizacja projektu składa się z następujących etapów, dla których wyniki będą dyskutowane z prowadzącym:
1. analiza przedstawionego problemu biznesowego i zdefiniowanie zadania modelowania,
2. przygotowanie podstawowego modelu bazowego optymalizacji,
3. opracowanie i implementacja algorytmu wspomagającego rozwiązanie kompleksowego problemu,
4. analiza wyników i ocena efektywności opracowanego rozwiązania.
- Metody oceny:
- Wykład prowadzony w metodyce blended learning, tzn. tradycyjna forma wspomagana narzędziami internetowymi (oprogramowanie moodle).
Realizacja projektów wspomagana narzędziami internetowymi (oprogramowanie moodle) będzie rozbita na kilka etapów (wyniki uzyskane po zakończeniu każdego z nich będą prezentowane i dyskutowane z prowadzącym w trakcie 2-3 godzinnego spotkania).
- Egzamin:
- nie
- Literatura:
- Appa, G. M., Pitsoulis, L., & Williams, H. P. (Eds.). (2006). Handbook on modelling for discrete optimization (Vol. 88). Springer Science & Business Media.
Korte, B., Vygen, J., Korte, B., & Vygen, J. (2012). Combinatorial optimization (Vol. 2). Heidelberg: Springer.
Lau, L. C., Ravi, R., & Singh, M. (2011). Iterative methods in combinatorial optimization (Vol. 46). Cambridge University Press.
Sysło Maciej M., Narsingh Deo, Janusz S. Kowalik (1999). Algorytmy optymalizacji dyskretnej, PWN, Warszawa.
- Witryna www przedmiotu:
- https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103A-INISY-MSP-MOD
- Uwagi:
- (-)
Efekty uczenia się