Wyższa Szkoła Informatyki I Zarządzania W Bielsku-białej Przemysław Zastawny KONFIGUROWANIE DOPUSZCZALNE I OPTYMALNE Kierunek: Informatyka Specjalność: Systemy Informatyczne Praca inżynierska napisana pod kierunkiem prof. zw. dr hab. inż. A. Niederlińskiego
Spis treści: 1. Blok 1. 1.1 Cel i zakres pracy. 1.2 Opis poszczególnych konfiguracji. 1.3 Poszukiwanie konfiguracji dopuszczalnej. 1.4 Poszukiwanie konfiguracji optymalnej.
C.D. Spisu treści 2. Blok 2. 2.1 Wybór narzędzi informatycznych. 2.2 Etapy rozwiązania problemu. 3. Blok 3. 3.1 Podsumowanie.
1.1 Cel i zakres pracy Celem pracy jest opracowanie programów komputerowych do „Konfigurowania dopuszczalnego i optymalnego” ilu- strujących trzy metody rozwiązanie tego problemu. Programy te powinny, dzięki przyjaznemu interfejsowi, w łatwy i przystępny sposób skonfigurować zestawy dopuszczalne i optymalne. W tym celu należy: utworzyć bazę danych wszystkich elementów, gdzie każdy z nich charakteryzuje się określonymi parametrami, uniemożliwić wybranie elementów niekompatybilnych., umożliwić zapis konfiguracji w celu późniejszej jej weryfikacji,
1.2 Opis poszczególnych konfiguracji Konfigurowaniem nazywamy wybór podsystemów określonego typu składających się na pewien system. Konfigurowaniem dopuszczalnym nazywamy wybór podsystemów spełniających warunki kompatybilności i ewentualne ograniczenia cenowe. Konfigurowaniem optymalnym nazywamy wybór podsystemów spełniających warunki kompatybilności i zapewniających minimalną cenę podsystemu.
C.D. podpunktu 1.2 Konfiguracja dopuszczalna – jest to konfiguracja spełniająca wszystkie ograniczenia (kompaty- bilności elementów konfiguracji oraz ceny do- puszczalnej konfiguracji). Konfiguracja optymalna - jest to taka konfigu- racja dopuszczalna, której cena całkowita jest minimalna .
1.3 Poszukiwanie konfiguracji dopuszczalnej W celu znalezienia konfiguracji dopuszczalnej możemy zastosować którąś z odmian algorytmu nawrotów: przegląd zupełny będący najprostszą odmianą algorytmu nawrotów, algorytm inteligentnych poszukiwań dopuszczalnej konfiguracji.
C.D. podpunktu 1.3 Dla wszystkich odmian algorytmu nawrotów przyjmujemy te same dane, czyli: typ A składa się z elementów (A1, A2, A3), typ B składa się z elementów (B1, B2, B3, B4), typ C składa się z elementów (C1, C2),
Tabela kompatybilności. C.D. podpunktu 1.3 oraz: Tabela kompatybilności. Tabela cen. Element Cena A1 1900 A2 750 A3 900 B1 300 B2 500 B3 450 B4 600 C1 700 C2 850 Element 1 Element 2 A1 B1 B2 B4 C1 C2 A2 B3 A3 B1 C1 C2 B2 B3 B4
Drzewo poszukiwań dopuszczalnej konfiguracji - przegląd zupełny N - niekompatybilność Nawroty K – dopuszczalna konfiguracja D - za duża cena Drzewo poszukiwań dopuszczalnej konfiguracji - przegląd zupełny A2 Poszukiwania w głąb A1 A3 B1 B2 B3 B4 B1 B2 B3 B4 B1 B2 B3 B4 C1 D C2 D C1 D C2 N C1 N C2 N C1 D C2 D C1 N C2 K C1 N C2 N C1 N C2 N C1 N C2 N C1 K C2 K C1 K C2 N C1 N C2 N C1 D C2 D
Drzewo inteligentnych poszukiwań dopuszczalnej konfiguracji N - niekompatybilność Nawroty K - dopuszczalna konfiguracja D - za duża cena Drzewo inteligentnych poszukiwań dopuszczalnej konfiguracji A2 Poszukiwania w głąb A1 A3 B1 D B2 D B3 N B4 D B1 B2 B3 B4 N B1 B2 B3 N B4 C1 N C2 K C1 N C2 N C1 N C2 N C1 K C2 K C1 K C2 N C1 D C2 D
1.4 Poszukiwanie konfiguracji optymalnej W celu znalezienia konfiguracji optymalnej możemy zastosować: algorytm „branch and bound”, Metoda ta jest metodą optymalizacji kombinatory-cznej globalnej, jednakże w konkretnym przypadku bardzo dużej przestrzeni rozwiązań może nie znaleźć w skończonym czasie rozwiązania.
Drzewo poszukiwań optymalnej konfiguracji („branch and bound”) N - niekompatybilność Nawroty Oi - konfiguracja optymalna i-ta Gi - konfiguracja gorsza od Oi Drzewo poszukiwań optymalnej konfiguracji („branch and bound”) O0 = 5000 A2 Poszukiwania w głąb A1 A3 B1 B2 B3 N B4 B1 B2 B3 B4 N B1 B2 B3 N B4 C1 O1 2900 C2 G1 C1 G1 C2 N C1 G1 C2 G1 C1 N C2 O2 1900 C1 N C2 N C1 N C2 N C1 O2 1900 C2 G2 C1 G2 C2 N C1 G2 C2 G2
2.1 Wybór narzędzi informatycznych Praca ta została napisana z wykorzystaniem, jako narzędzia informatycznego, języka deklaratywnego jakim jest Turbo Prolog 2.0.
2.2 Poszczególne etapy rozwiązania problemu Utworzenie baz danych do przechowywania : ceny progowej konfiguracji - programy CPDC_1, CPDC_2 cen elementów, typów elementów oraz ich list, wybranych podsystemów, kompatybilności, dopuszczalnych /optymalnych/ konfiguracji, całkowitej ceny możliwej konfiguracji.
C.D. podpunktu 2.2 Etap 2. Utworzenie odpowiednich predykatów, do zarządzania wcześniej zdefiniowanymi bazami danych, takich jak: sa_elementy, elementy_z_listy, sprawdzanie_ceny, sprawdzanie_kompatybilności, zapisz_podsystemy, suma_listy_cen - tylko program CPDC_1.PRO, zapisz_ konfiguracje.
C.D. podpunktu 2.2 Etap 3. Utworzenie mechanizmu umożliwiającego użytkowni- kowi podgląd baz cen, typów oraz kompatybilności poszczególnych elementów. Etap 4. Utworzenie mechanizmu umożliwiającego użytkowni- kowi edycje wyżej wymienionych baz.
C.D. podpunktu 2.2 Etap 5. Stworzenie odpowiedniego menu. Etap 6. Testowanie poprawności działania stworzonych pro- gramów.
3. Blok 3 3.1 Podsumowanie Omówione powyżej programy do “Konfigurowania dopuszczalnego i optymalnego” spełniają wcześniejsze założenia: - wszystkie dane do wykonywania potrzebnych operacji są ładowane do programów z odpowiednich plików bazodanowych, - została wyeliminowana możliwość wybrania elemen- tów niekompatybilnych, - wszystkie dopuszczalne i optymalne konfiguracje są zapisywane do pliku bazodanowego.