Optymalizacja systemów

Podobne dokumenty
Optymalizacja systemów

Optymalizacja systemów

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Przykład wykorzystania dodatku SOLVER 1 w arkuszu Excel do rozwiązywania zadań programowania matematycznego

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce

Programowanie liniowe

Metody systemowe i decyzyjne w informatyce

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Spis treści. Koszalin 2006 [BADANIA OPERACYJNE PROGRAMOWANIE LINIOWE]

Układy równań i nierówności liniowych

Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy

Zagadnienie transportowe

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

3. Macierze i Układy Równań Liniowych

Programowanie liniowe

W powyższym kodzie utworzono wyliczenie dni tygodnia.

Rozdział 1 PROGRAMOWANIE LINIOWE

Definicja problemu programowania matematycznego

Zad. 3: Układ równań liniowych

ZAGADNIENIE TRANSPORTOWE

Wykład z modelowania matematycznego. Zagadnienie transportowe.

UKŁADY RÓWNAŃ LINIOWYCH

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Złożoność obliczeniowa zadania, zestaw 2

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Robert Susmaga. Instytut Informatyki ul. Piotrowo 2 Poznań

OPTYMALIZACJA DYSKRETNA

Algorytmy sztucznej inteligencji

Zaawansowane metody numeryczne

Metoda eliminacji Gaussa

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Macierze. Rozdział Działania na macierzach

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Ćwiczenia laboratoryjne - 7. Zagadnienie transportowoprodukcyjne. programowanie liniowe

Obliczenia iteracyjne

Rozwiązanie Ad 1. Model zadania jest następujący:

Zaawansowane metody numeryczne

Rozpoznawanie obrazów

PROGRAMOWANIE KWADRATOWE

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Równania liniowe. Rozdział Przekształcenia liniowe. Niech X oraz Y będą dwiema niepustymi przestrzeniami wektorowymi nad ciałem

Rozwiązywanie problemów z użyciem Solvera programu Excel

Metody numeryczne Wykład 4

WYKORZYSTANIE NARZĘDZIA Solver DO ROZWIĄZYWANIA ZAGADNIENIA Problem przydziału

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

[ A i ' ]=[ D ][ A i ] (2.3)

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Metody systemowe i decyzyjne w informatyce

Metody i analiza danych

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

0 + 0 = 0, = 1, = 1, = 0.

Metody systemowe i decyzyjne w informatyce

Wykład 14. Elementy algebry macierzy

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

13 Układy równań liniowych

Tablice. Jones Stygar na tropie zmiennych

5. Rozwiązywanie układów równań liniowych

Metody systemowe i decyzyjne w informatyce

2 1 3 c c1. e 1, e 2,..., e n A= e 1 e 2...e n [ ] M. Przybycień Matematyczne Metody Fizyki I

METODA ANALITYCZNA Postać klasyczna: z = 5 x 1 + 6x 2 MAX 0,2 x 1 + 0,3x 2 < 18 0,6 x 1 + 0,6x 2 < 48 x 1, x 2 > 0

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Na poniższym rysunku widać fragment planszy. Pozycja pionka jest oznaczona przez. Pola, na które może dojść (w jednym ruchu), oznaczone są.

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Układ równań liniowych

Programowanie w Baltie klasa VII

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

WYDZIAŁ ELEKTRYCZNY POLITECHNIKI WARSZAWSKIEJ INSTYTUT ELEKTROENERGETYKI ZAKŁAD ELEKTROWNI I GOSPODARKI ELEKTROENERGETYCZNEJ

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn a 1j a 2j R i = , C j =

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

MATLAB - laboratorium nr 1 wektory i macierze

Notatki do tematu Metody poszukiwania rozwiązań jednokryterialnych problemów decyzyjnych metody dla zagadnień liniowego programowania matematycznego

OPTYMALIZACJA W LOGISTYCE

Teoretyczne podstawy programowania liniowego

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

MATLAB tworzenie własnych funkcji

Laboratorium technik optymalizacji: układanie uniwersyteckiego planu zajęć

Wprowadzenie do badań operacyjnych - wykład 2 i 3

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Wprowadzenie do programu Mathcad 15 cz. 1

Ekonometria. Regresja liniowa, współczynnik zmienności, współczynnik korelacji liniowej, współczynnik korelacji wielorakiej

Wprowadzenie do Mathcada 1

Obliczenia naukowe Wykład nr 8

Badania operacyjne. te praktyczne pytania, na które inne metody dają odpowiedzi jeszcze gorsze.

Programowanie liniowe

BADANIA OPERACYJNE I TEORIE OPTYMALIZACJI. Zagadnienie transportowe

Zestaw 12- Macierz odwrotna, układy równań liniowych

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Optymalizacja ciągła

Laboratorium Metod Optymalizacji

Ekonometria. Modele regresji wielorakiej - dobór zmiennych, szacowanie. Paweł Cibis pawel@cibis.pl. 1 kwietnia 2007

Programowanie w środowisku Baltie

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Algorytmy sortujące i wyszukujące

Transkrypt:

Optymalizacja systemów Laboratorium Zadanie nr 3 Sudoku autor: A. Gonczarek Cel zadania Celem zadania jest napisanie programu rozwiązującego Sudoku, formułując problem optymalizacji jako zadanie programowania binarnego. Rozwiązanie należy zaimplementować w środowisku MATLAB z użyciem funkcji z pakietu do optymalizacji. Zasady Sudoku Sudoku jest to łamigłówka polegająca na wypełnieniu kwadratowej planszy o wymiarach 9 9 liczbami od 1 do 9, gdzie część liczb została już wpisana. Przy czym w każdej kolumnie, każdym wierszu oraz w każdej komórce o wymiarach 3 3 (patrz rysunek 1) żadna z liczb od 1 do 9 nie może się powtarzać. Poniżej przedstawiono planszę do Sudoku, gdzie ponumerowano kolumny, wiersze oraz komórki 3 3. Rysunek 1: Plansza do Sudoku. Problem Sudoku jako programowanie binarne Niech X oznacza trójwymiarowy tensor o wymiarach 9 9 9, gdzie każdy jego element przyjmuje jedynie binarne wartości, tj. x ijk {0, 1}. Przyjmijmy konwencję, że jeśli, to znaczy, że w i-tym wierszu i j-tej kolumnie na planszy stoi cyfra k. 1

Ponadto załóżmy, że I oznacza zbiór trójek (i, j, k) informujących o tym, że w i-tym wierszu i j-tej kolumnie została na stałe wpisana cyfra k. Wtedy problem Sudoku można przedstawić jako następujący problem programowania binarnego: minimalizuj (po X) 0 przy ograniczeniach: i,k j=1 j,k i=1 u,v {0,3,6} k 3 3 x i+u,j+v,k = 1 i=1 j=1 i,j k=1 (i,j,k) I Problem programowania binarnego można rozwiązać z użyciem algorytmu Branch & Bound, który omówiony zostanie w trakcie zajęć. Dla problemu programowania binarnego domyślnie można go wywołać poprzez użycie komendy: [x val flag] = bintprog(f,[],[],a,b). Wywołanie tego algorytmu należy zaimplementować w pliku solve sudoku.m. Ograniczenia równościowe muszą być podane do algorytmu w formie macierzowej Ax = b, gdzie x jest wektorem zmiennych decyzyjnych utworzonym z trójwymiarowego tensora X. Trójwymiarowy tensor można zamienić na wektor kolumnowy stosując w Matlabie następujące polecenie: x = X(:). Każde z ograniczeń (wiersze w macierzy A) złożone jest wyłącznie z zer i jedynek, gdzie jedynka pojawia się wtedy, jeśli odpowiadająca jej zmienna decyzyjna w x jest sumowana w danym ograniczeniu. Dlatego ograniczenia łatwiej jest tworzyć jako trójwymiarowe tensory analogiczne do X, a następnie zamieniać je na wiersze macierzy A, stosując wyżej wspomnianie polecenie. Poniżej omówiono wszystkie ograniczenia w modelu. 1. Pierwszy zestaw ograniczeń gwarantuje, że w każdym wierszu każda cyfra stoi dokładnie raz. Ograniczenia należy zaimplementować w pliku row const.m. Aby automatyczny walidator zadziałał, ograniczenia należy wprowadzić w kolejności numerowania wierszy (rysunek 1), gdzie dla każdego wiersza należy wprowadzić 9 ograniczeń odpowiadających kolejno cyfrom 2

2. Drugi zestaw ograniczeń gwarantuje, że w każdej kolumnie każda cyfra stoi dokładnie raz. Ograniczenia należy zaimplementować w pliku column const.m. Aby automatyczny walidator zadziałał, ograniczenia należy wprowadzić w kolejności numerowania kolumn (rysunek 1), gdzie dla każdej kolumny należy wprowadzić 9 ograniczeń odpowiadających kolejno cyfrom 3. Trzeci zestaw ograniczeń gwarantuje, że w każdej komórce 3 3 każda cyfra stoi dokładnie raz. Ograniczenia należy zaimplementować w pliku cell const.m. Aby automatyczny walidator zadziałał, ograniczenia należy wprowadzić w kolejności numerowania komórek (rysunek 1), gdzie dla każdej komórki należy wprowadzić 9 ograniczeń odpowiadających kolejno cyfrom 4. Czwarty zestaw ograniczeń gwarantuje, że każdemu polu na planszy przypisana jest dokładnie jedna cyfra. Ograniczenia należy zaimplementować w pliku unique const.m. Aby automatyczny walidator zadziałał, ograniczenia należy wprowadzić w kolejności numerowania wierszy (rysunek 1), gdzie dla każdego wiersza należy wprowadzić 9 ograniczeń odpowiadających kolejnym polom w tym wierszu zgodnie z numeracją kolumn. 5. Ostatni zestaw ograniczeń gwarantuje, że w początkowo wypełnionych polach będą stały odpowiednie cyfry. Ograniczenia należy zaimplementować w pliku initial const.m. Aby automatyczny walidator zadziałał, ograniczenia należy wprowadzić w kolejności ich występowania w macierzy I, która jest argumentem tej funkcji. Na rysunku 2 przedstawiono przykładowe Sudoku przed i po rozwiązaniu przy pomocy programu. Zadanie do wykonania (7 pkt.) 1. Wprowadzić własną macierz I inicjalizującą planszę do Sudoku w pliku my sudoku.m. (1 pkt.) 2. Zaimplementować wyliczenie ograniczeń na wiersze w pliku row const.m. (1 pkt.) 3. Zaimplementować wyliczenie ograniczeń na kolumny w pliku column const.m. (1 pkt.) 4. Zaimplementować wyliczenie ograniczeń na komórki w pliku cell const.m. (1 pkt.) 5. Zaimplementować wyliczenie ograniczeń na unikalność cyfr w polu w pliku unique const.m. (1 pkt.) 6. Zaimplementować wyliczenie ograniczeń na przypisanie początkowych pól w pliku initial const.m. (1 pkt.) 3

7. Zaimplementować rozwiązanie problemu Sudoku z użyciem programowania binarnego w pliku solve sudoku.m. (1 pkt.) UWAGA! Wszelkie nazwy funkcji i zmiennych w plikach *.m muszą pozostać zachowane. Zmiana jakichkolwiek nazw i dodanie fragmentów kodu poza wskazanymi miejscami skutkować będzie otrzymaniem 0 pkt. Rysunek 2: Plansza początkowa i rozwiązane Sudoku. Pytania kontrolne (3 pkt.) Prowadzący zadaje jedno pytania każdej osobie oddającej program: 1. Co to jest problem programowania binarnego? Czym różni się on od problemu programowania liniowego? 2. Jaka jest interpretacja tensora zmiennych decyzyjnych X w powyższym zadaniu? Dlaczego jest on trójwymiarowy? 3. Ile jest binarnych zmiennych decyzyjnych w powyższym zadaniu? Oszacuj ile czasu zajęłoby zastosowanie przeglądu zupełnego (sprawdzenie wszystkich kombinacji zmiennych decyzyjnych) do znalezienia optymalnego rozwiązania. 4. Wytłumacz w jaki sposób zagwarantowane jest, że w każdym wierszu/kolumnie/komórce znajdą się różne cyfry. Które ograniczenia to zapewniają? Ile jest tych ograniczeń? 5. Wytłumacz do czego służy czwarty zestaw ograniczeń. Co mogłoby się stać z rozwiązaniem problemu, jeśli usunęlibyśmy te ograniczenia? 4

6. Wytłumacz w jaki sposób ustawia się początkowe pola tak, by pozostały one niezmienione w końcowym rozwiązaniu? Które ograniczenia to zapewniają? Ile jest tych ograniczeń? 7. Podaj ogólną ideę działania algorytmu Branch & Bound. Do jakich problemów się go stosuje? Czy algorytm znajduje zawsze rozwiązanie optymalne? 8. Co to jest relaksacja do problemu programowania liniowego? Po co się ją wykonuje w algorytmie Branch & Bound? Jaka jest relacja pomiędzy optymalnymi wartościami funkcji celu w problemie wyjściowym i zrelaksowanym? 9. Czy do sformułowanego w zadaniu problemu Sudoku da się bezpośrednio zastosować algorytm Interior-Point? Odpowiedź uzasadnij. 10. Dlaczego jeśli zmniejszymy liczbę początkowo wprowadzonych wartości do zbioru I, to czas rozwiązania istotnie się wydłuży? 5