Joanna Berlińska Algorytmika w projektowaniu systemów - ćwiczenia 1 1 Problem 1 prec f max 1 procesor (ich zbiór oznaczamy przez T ) czas wykonania zadania T j wynosi p j z zadaniem T j związana jest niemalejąca funkcja kosztu f j (jeśli zadanie to zakończy się w chwili t, ponosimy koszt f j (t)) dowolne ograniczenia kolejnościowe minimalizujemy maksymalny koszt wykonania zadania Algorytm Lawlera dla problemu 1 prec f max S = uszeregowanie puste while T do p = p j T j T L = podzbiór zadań z T nieposiadających następników wybierz T k L, takie że f k (p) = min T j L {f j(p)} dopisz zadanie T k na początek uszeregowania S T = T \ {T k }
Joanna Berlińska Algorytmika w projektowaniu systemów - ćwiczenia 1 2 Problem P m in-tree, p j = 1 C max m procesorów czas wykonania każdego zadania równy 1 ograniczenia kolejnościowe definiowane przez graf typu in-tree definiujemy poziom zadania w grafie ograniczeń kolejnościowych jako liczbę zadań na ścieżce od tego zadania do korzenia drzewa Algorytm Hu dla problemu P m in-tree, p j = 1 C max oblicz poziomy wszystkich zadań utwórz listę L t składającą się z wszystkich zadań bez poprzedników w chwili t posortuj L t nierosnąco względem poziomów zadań przydziel m pierwszych zadań (lub wszystkie, jeśli jest ich mniej niż m) z listy L t do różnych procesorów w chwili t usuń przydzielone zadania z grafu ograniczeń kolejnościowych i z listy zadań t = t + 1 until wszystkie zadania zostały uszeregowane
Joanna Berlińska Algorytmika w projektowaniu systemów - ćwiczenia 1 3 Problem P 2 p j = 1, prec C max 2 procesory czas wykonania każdego zadania równy 1 dowolne ograniczenia kolejnościowe przez isucc(t j ) oznaczamy zbiór bezpośrednich następników T j Algorytm Coffmana-Grahama dla problemu P 2 p j = 1, prec C max przydziel etykietę 1 do dowolnego zadania T i, dla którego isucc(t i ) = j = 1 utwórz zbiór S wszystkich zadań bez etykiet, których następniki mają etykiety for all T S do utwórz listę L(T ) zawierającą etykiety zadań ze zbioru isucc(t ) posortuj L(T ) malejąco ustaw listy L(T ) w porządku leksykograficznym L(T [1] ) L(T [ S ] ) przydziel etykietę j + 1 do zadania T [1] j = j + 1 until j == n + 1 wywołaj algorytm Hu, używając etykiet zamiast poziomów zadań
Joanna Berlińska Algorytmika w projektowaniu systemów - ćwiczenia 1 4 Problem P m pmtn C max m procesorów czas wykonania zadania T j wynosi p j wykonywanie zadań można przerywać Algorytm McNaughtona dla problemu P m pmtn C max n Cmax p j = max{ j=1 m, max {p j }} j i = 1 j = 1 if t + p j C max then przydziel zadanie T j do procesora P i od momentu t t = t + p j j = j + 1 else zaczynając w chwili t, przydziel T j do procesora P i na czas C max t p j = p j (C max t) i = i + 1 until j == n + 1
Joanna Berlińska Algorytmika w projektowaniu systemów - ćwiczenia 1 5 Zadanie dodatkowe 1 (1 pkt) Napisz program rozwiązujący problem 1 prec f max przy użyciu algorytmu Lawlera. Program powinien wczytać dane z pliku i zapisać do pliku rozwiązanie problemu w postaci uzyskanej wartości kryterium optymalizacji oraz znalezionego uszeregowania. Termin wykonania: 14.03.2017 Zadanie dodatkowe 2 (1 pkt) Napisz program rozwiązujący problem P 2 p j = 1, prec C max przy użyciu algorytmu Coffmana- Grahama. Program powinien wczytać dane z pliku i zapisać do pliku rozwiązanie problemu w postaci uzyskanej wartości kryterium optymalizacji oraz znalezionego uszeregowania. Termin wykonania: 28.03.2017 Uwaga! Do każdego zadania dodatkowego z APS należy dołączyć w plikach tekstowych: opis przyjętego formatu danych wejściowych i wejściowych, przykładowe dane wejściowe, ewentualnie informacje potrzebne do uruchomienia i przetestowania programu. Programy należy przysłać mailem. Jeśli wysyłany projekt zawiera pliki exe, należy go spakować do formatu rar. Poczta UAM odrzuca maile z załącznikami zip lub 7z zawierającymi pliki exe.