ProjektUnifikacja sprawozdanie unifikacja

Paweł Jakubik, nr indeksu: 214764 5.11.2011

Laboratorium z Teorii i metod optymalizacji – projekt

Opracowanie programu unifikacji

dla indywidualnie przydzielonego zadania.

Opracować program realizujący zadanie ogólne (tzn. opisane w przykładzie 1). Program powinien poprawnie działać także dla dowolnych danych podawanych z zewnętrznego pliku Dane.txt. Wyniki powinny być generowane do pliku zewnętrznego wyniki.txt wraz z komunikatami o wynikach pośrednich (wybory + wartość kosztu). Sprawdzenie poprawności dla danych z przykładu oraz danych zmodyfikowanych w ten sposób, że koszty magazynowania są 50-krotnie większe dla dwóch pierwszych typów transformatorów.  Język dowolny z grupy: C, C++, C#, Java, Pascal, Fortran, Visual Basic, nawet Basic. Niedozwolony: Matlab.

Udało się wykonać następujące punkty:

  1. Dowolne dane obejmują zarówno liczbę obwodów i wymagane obciążenie, jak tez mogą być dowolne transformatory o różnych mocach i różnych kosztach.  

  2. Liczba kolumn tez może być dowolna. 

  3. Pliki danych i wyników to pliki tekstowe. 

  4. Jako wyniki pośrednie maja być wypisane wszystkie macierze, komunikaty tekstowe o wyborze/odrzuceniu transformatora w danym stopniu pośrednim wraz z aktualnym kosztem, a na koniec komunikat o wyborze końcowym i koszt końcowy. 

  5. Program nie musi działać w środowisku graficznym, ale może.

Dane dołączone do zadania mają następującą postać:

Liczba obwodów 3 5 2 4
obciążenie 300 400 600 700
Moc trafo Koszty roczne trafo Rezerwa
400 96 97 188 190
630 97 103 110 200
800 110 114 120 122

Wykonanie zadania:

Program1 został napisany w języku C przy użyciu programu Dec-C++ 4.9.9.2. W pliku dane.txt (lub innym wybranym przez użytkownika) w pierwszym wierszu powinny znajdować się wymiary badanej macierzy. W badanym przykładzie macierz jest wymiarów 5x6, gdzie 5 odpowiada ilości wierszy a 6 ilości kolumn. W kolejnym wierszu pliku powinna znajdować się liczba obwodów dla konkretnego obciążenia. Wartość tego obciążenia wpisujemy wiersz niżej. Następne wiersze to moc transformatora, odpowiadające im koszty roczne transformatora i koszty rezerwy.

W tym miejscu należy napomnieć, iż należy wiersze odpowiadające ilości obwodów i obciążenia uzupełnić odpowiednio o zera, aby dane te znajdowały się w kolumnie odpowiadających im kosztów rocznych.

Dla badanego przykładu poprawnie stworzony plik dane.txt2 powinien wyglądać następująco:

5 6

0 3 5 2 4 0

0 300 400 600 700 0

400 96 97 188 190 15

630 97 103 110 200 60

800 110 114 120 122 80

Dane wynikowe zapisywane są w pliku wynik.txt (lub innym wybranym przez użytkownika). W pliku tym podane są kolejne macierze kosztów (koszty roczne pomnożone przez odpowiednią wartość ilości obwodów), wartości rezerw, macierze D i macierze c wartości odrzucenia. Po każdorazowym wykonaniu obliczeń wyświetlany jest komunikat, która składowa macierzy c jest odrzucana. Po wykonaniu wszystkich kroków podany jest komunikat o wybranych rodzajach transformatorów i koszcie końcowym.

Po wprowadzeniu danych zadania plik wynik.txt zawiera następujące dane:

Macierz 1: wymiary 5x6

Macierz kosztow=

288 485 376 760

291 515 220 800

330 570 240 488

Macierz a=

15

60

80

Koszty utrzymania:1636

Macierz D=

3 30 0 0

0 0 20 0

0 0 0 272

Macierz c=

33

20

272

Wyrzucamy skladowa wektora C:20 dla mocy 630

KOLEJNY KROK:

Macierz kosztow=

288 485 376 760

330 570 240 488

Macierz a=

15

80

Koszty utrzymania:1596

Macierz D=

42 85 0 0

0 0 136 272

Macierz c=

127

408

Obliczenia zakonczone. Wynik koncowy to:

Koszty koncowe: 1596

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 300

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 400

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 600

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 700

Po otrzymaniu powyższych wyników należy sprawdzić poprawność otrzymanych danych poprzez zmodyfikowanie kosztów magazynowania dla pierwszych dwóch typów transformatora były 50 razy większe. Nasz plik wygląda następująco:

5 6

0 3 5 2 4 0

0 300 400 600 700 0

400 96 97 188 190 750

630 97 103 110 200 3000

800 110 114 120 122 80

W rezultacie otrzymujemy wynik (dane pośrednie umieszczone zostały w pliku wynik50.txt dostarczonym do sprawozdania):

Obliczenia zakonczone. Wynik koncowy to:

Koszty koncowe: 1708

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 300

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 400

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 600

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 700

Widać, że program działa poprawnie dla tego przypadku, gdyż tylko ten transformator spełnia założenia nieodrzucenia.

Kolejnym krokiem jest sprawdzenie poprawności działania naszego programu dla przykładu 5.1 umieszczonego w książce „Podstawy i metody optymalizacji”. Wynik końcowy to (pełny umieszczony został w pliku wynik_przykład.txt):

Obliczenia zakonczone. Wynik koncowy to:

Koszty koncowe: 1616

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 300

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 400

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 600

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 700

Zgadza się to z wynikami uzyskanymi w książce.

Dla kosztów magazynowania 50 razy większych dla dwóch pierwszych typów transformatora (plik wynik_przyklad50.txt):

Obliczenia zakonczone. Wynik koncowy to:

Koszty koncowe: 1718

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 300

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 400

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 600

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 700

Wykonane próby dodatkowe:

5 6

0 2 5 3 4 0

0 300 400 600 700 0

400 94 97 188 190 150

630 97 103 110 200 600

800 110 114 120 122 800

Otrzymujemy wynik (wynik_przyklad52.txt):

Koszty koncowe: 2147

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 300

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 400

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 600

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 700

6 6

0 3 5 2 4 0

0 300 400 600 700 0

400 96 97 188 190 15

630 97 103 110 200 60

800 110 114 120 122 80

900 250 72 140 150 100

Otrzymujemy wynik końcowy (wynik_1.txt):

Obliczenia zakonczone. Wynik koncowy to:

Koszty koncowe: 1571

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 300

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 600

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 700

Nalezy wybrac transformator o mocy 900 kVA dla obciazenia 400

6 6

0 3 5 2 4 0

0 300 400 600 700 0

400 96 97 188 190 15

630 97 103 110 200 60

800 110 114 120 122 80

900 110 72 140 150 100

W wyniku takiej operacji otrzymujemy wynik uwzględniający wszystkie obciążenia:

Obliczenia zakonczone. Wynik koncowy to:

Koszty koncowe: 1571

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 300

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 600

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 700

Nalezy wybrac transformator o mocy 900 kVA dla obciazenia 400

5 7

0 3 5 2 4 3 0

0 300 400 600 700 800 0

400 96 97 188 190 210 15

630 97 103 110 200 220 60

800 110 114 120 122 180 80

Otrzymany wynik:

Obliczenia zakonczone. Wynik koncowy to:

Koszty koncowe: 2136

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 300

Nalezy wybrac transformator o mocy 400 kVA dla obciazenia 400

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 600

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 700

Nalezy wybrac transformator o mocy 800 kVA dla obciazenia 800

Niestety w obecnych próbach nie udało nam się otrzymać wzrostu kosztów w kolejnym kroku. Jednak program został tak skonstruowany, aby w takim przypadku wypisać odpowiedni komunikat oraz za wynik końcowy podać dane z poprzedniego kroku.
Wnioski:

Stworzony program wyrzuca poprawne wyniki dla danych otrzymanych wraz z treścią zadania, jak i dla danych z przykładu umieszczonej w książce „Podstawy metod optymalizacji” – oba zostały również zmodyfikowane o wartości dwóch pierwszych kosztów rezerw.

Dodatkowo została wykonana próba dla przykładu 5.2, która dała nam pomyślny wynik.

Poprawność działa została także sprawdzona dla przypadków o zwiększonej ilości kolumn i wierszy.

W momencie otrzymania w procesie unifikacji wartości kosztów zostaną zwiększone względem otrzymanych poprzednich, program wyrzuca odpowiedni komunikat i za wynik końcowy podaje wartość wybranych transformatorów dla poprzedniego kroku.


  1. Program wraz z kodem źródłowym znajduje się w program.zip.

  2. Pliki danych wejściowych i wyjściowych znajdują się w paczce dane_wyniki.zip dostarczonych wraz ze sprawozdaniem.


Wyszukiwarka

Podobne podstrony:
ProjektUnifikacja sprawozdanie Nieznany
projekt sprawozdanie
Projekt sprawozdanie
Informatyczne Podstawy Projektowania sprawozdanie
Projekt-sprawozdanie
Projekt-sprawozdanie
Projekt-sprawozdanie
Projekt 1 Sprawozdanie
CUR projekt? SPRAWOZDANIE
Projekt sprawozdanie id 399569 Nieznany
Projekt+Sprawozdanie, WZMACNIACZ TRANZYSTOROWY, PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU
plyny tunele, Sprawozdania i projekty, Sprawozdania
projekt1, SPRAWOZDANIA czyjeś
GTG projekt 3 - sprawozdania polroczna i kwartalne, FIR UE Katowice, SEMESTR VI, gieldy, gieldy 1, G
bd2 projekt SprawozdanieAndrzej
Projekt1, sprawozdanie, Politechnika Radomska
Projekt sprawozdanie
ProjektUnifikacja sprawozdanie Nieznany
Projekt sprawozdanie Śledzik Łukasz(1)

więcej podobnych podstron