Optymalna alokacja zasobów przy użyciu metody programowania dynamicznego. Problem znalezienia najdłuższego podciągu rosnącego: mając dany ciąg, musisz znaleźć najdłuższy podciąg rosnący
Podajmy matematyczne sformułowanie zasady optymalności. Dla uproszczenia założymy, że dane są początkowe stany x 0 i końcowe x T układu. Oznaczmy przez z 1 (x 0 , u 1) wartość funkcji celu w pierwszym etapie przy stanie początkowym układu x 0 i przy sterowaniu u 1 , przez z 2 (x 1 , u 2) odpowiednią wartość funkcji celu dopiero na drugim etapie, ..., do
z i (х i -1,u i) – wł i-ty etap, ..., poprzez z N (x N -1 , u N) -on N-ty etap. To oczywiste
Musimy znaleźć optymalną kontrolę u*= (; ;...;), taką, która zapewni ekstremum funkcja celu(1) z zastrzeżeniem ograniczeń.
Aby rozwiązać ten problem, zanurzamy go w rodzinie podobnych. Wprowadźmy pewną notację. Niech będą odpowiednio obszarami
definicje podobnych problemów na ostatnim etapie, dwóch ostatnich itp.;
- domena oryginalny problem. Oznaczmy odpowiednio przez F 1 (x N -1), F 2 (x N -2), ..., F k (x N -k), ..., F N (x 0), odpowiednio, warunkowo optymalne wartości funkcji celu na ostatnim etapie, dwa ostatnie itd., na k ostatnich itd., na wszystkich N etapach.
Zacznijmy ostatni etap. Niech x N-1 będą możliwymi stanami układu na początku N-tego etapu. Znaleźliśmy:
F 1 (x N -1) = z N (x N -1, u N). (2)
Dla dwóch ostatnich etapów otrzymujemy
F 2 (x N -2) = (Z N -1 (x N -2, u N -1) + F 1 (x N -1)). (3)
Podobnie:
F 3 (x N -3) = (Z N -2 (x N -3, u N -2) + F 2 (x N -2)). (4)
………………………………………………….
F k (x N -k) = (z N-k +1 (x N -k, u N-k +1) + F k- 1 (x N-k +1)). (5)
…………………………………………………..
F N (x 0) = (z 1 (x 0, u 1) + F N -1 (x 1)). (6)
Wyrażenie (6) jest matematyczną reprezentacją zasady optymalności. Wyrażenie (5) – ogólny kształt rejestrowanie warunkowo optymalnej wartości funkcji celu dla k pozostałych etapów. Wyrażenia (2) – (6) nazywane są funkcjonalnymi równaniami Bellmana. Wyraźnie widać ich rekurencyjny (rekurencyjny) charakter, tzn. aby znaleźć optymalną kontrolę w N krokach, trzeba znać warunkowo optymalną kontrolę w poprzednich N – 1 etapach itp. Dlatego często równania funkcyjne nazywane są rekurencyjnymi (rekurencyjnymi) Relacje Bellmana.
- Cechy zadań Programowanie dynamiczne
Na podstawie powyższego możemy wyróżnić następujące cechy problemów programowania dynamicznego.
- Rozważamy układ, którego stan na każdym etapie jest określony przez wektor x t. Dalsze zmiany w jej stanie zależą tylko od ten stan x t i nie zależy od tego, w jaki sposób system doszedł do tego stanu. Takie procesy nazywane są procesami bez następstw.
- Na każdym etapie wybierane jest jedno rozwiązanie u t, pod wpływem którego system wychodzi Poprzedni stan x t -1 do nowego x t . Ten nowy stan jest funkcją stanu na początku przedziału x t -1 oraz decyzji u t podjętej na początku przedziału, czyli x t = x t (x t -1,u t).
- Działanie na każdym etapie wiąże się z określonym zyskiem (przychodem, zyskiem) lub stratą (kosztami), które zależą od stanu na początku kroku (etapu) i podjętej decyzji.
- Ograniczenia można nałożyć na wektory stanu i sterowania, których kombinacja tworzy obszar możliwych rozwiązań.
- Należy znaleźć taką dopuszczalną kontrolę u t dla każdego stopnia t, aby otrzymać ekstremalną wartość funkcji celu dla wszystkich T kroków.
Dowolna prawidłowa sekwencja działań dla każdego kroku, która przenosi system ze stanu początkowego do stanu końcowego, nazywana jest strategią sterowania. Strategię sterowania, która skutkuje ekstremalną wartością funkcji celu, nazywamy optymalną.
Interpretacja geometryczna problemu programowania dynamicznego jest następująca. Niech n będzie wymiarem przestrzeni stanów. W każdym momencie współrzędne układu mają bardzo określoną wartość. Wraz ze zmianą czasu t wartości współrzędnych wektora stanu mogą się zmieniać. Przejście układu z jednego stanu do drugiego nazwijmy trajektorią jego ruchu w przestrzeni stanów. Takie przejście odbywa się poprzez wpływ na współrzędne stanu. Przestrzeń, w której stany układu służą jako współrzędne, nazywa się przestrzenią fazową. Problem programowania dynamicznego można zinterpretować szczególnie wyraźnie, jeśli przestrzeń stanów jest dwuwymiarowa. Obszar możliwych stanów w tym przypadku zostanie przedstawiony pewną figurą, stany początkowy i końcowy układu - punktami x 0 (ryc. 1). Sterowanie to wpływ, który przenosi system ze stanu początkowego do stanu końcowego. W przypadku wielu problemów ekonomicznych nie jest znany stan początkowy lub końcowy, ale znany jest obszar X 0 lub X T, do którego należą te punkty.
Obrazek 1
Następnie dopuszczalne punkty kontrolne przenoszą punkty z obszaru X 0 do X T . Problem programowania dynamicznego można geometrycznie sformułować następująco: znaleźć trajektorię fazową rozpoczynającą się w obszarze X 0 i kończącą się w obszarze X T, dla której funkcja celu osiąga wartość ekstremalną. Jeśli znany jest stan początkowy i końcowy problemu programowania dynamicznego, wówczas mówimy o problemie o ustalonych końcach. Jeśli znane są obszary początkowe i końcowe, mówimy o problemie z wolnymi końcami.
- PROBLEM DYSTRYBUCJI ZASOBÓW
2.1 Ogólne określenie problemu
Rozważmy zastosowanie metody programowania dynamicznego na przykładzie podziału środków pomiędzy sześć obiektów rekonstrukcyjnych przedsiębiorstwa wodociągowego:
1. Centralna stacja pompowo-filtracyjna;
2. Wschodnia przepompownia i filtracja;
3. Przepompownia wody;
4. Centralna stacja napowietrzania;
5. Stacja napowietrzania wschodniego;
6. Stacja napowietrzania wiejskiego.
Łączna kwota środków przeznaczonych na rozwój to nie więcej niż 195 tysięcy hrywien. Na podstawie obliczeń techniczno-ekonomicznych ustalono, że w wyniku przebudowy, w zależności od wielkości wydanych środków, obiekty będą charakteryzowały się wydajnością przedstawioną w tabeli 1.1. Konieczne jest określenie optymalnego podziału środków pomiędzy obiektami rekonstrukcyjnymi, który zapewni maksymalny wzrost produktywności tych obiektów. Zatem w zadaniu tym zastosowano kryterium optymalizacyjne – całkowitą produktywność przedsiębiorstw obiektów rekonstrukcyjnych.
Tabela 1.1 Dane wejściowe dotyczące produktywności obiektów rekonstrukcyjnych
Numer seryjny obiektu |
Wolumen środków przeznaczonych na rozwój obiektów (tys. UAH) |
|||||||||||||
Produktywność obiektów w wyniku zagospodarowania (tys. m3) |
||||||||||||||
- Schemat blokowy programu
Rysunek 1. Program główny
QtObj – liczba obiektów
QtRes – liczba zasobów
effMatrix - macierz wydajności obiektu,
distVector – wektor przydzielonych zasobów
Krok 1: Optymalizacja warunkowa
Krok 2. Optymalizacja bezwarunkowa
I = QtObj-1.0 z wyniku wektorowego
Rysunek 2. Wprowadzanie danych
distVector – wektor odległości, effMatrix = macierz wydajności
jeśli zostaną wprowadzone wszystkie elementy macierzy
jeśli wektor wydajności nie jest
negatywny
Rysunek 3. Optymalizacja warunkowa,
tworzymy macierz wyjściową (maksimum funkcji celu)
outMatrix – maksymalna macierz docelowa
QtObj – liczba obiektów
QtRes – liczba zasobów
Matryca – macierz wydajności
distVect – wektor odległości (wektor zasobu)
nie tak Jeśli pierwsze przedsiębiorstwo
Znalezienie maksimum
tak maxItem = temp; outMatrix[i][j] = maxItem
- Struktura algorytmu programu
- Wprowadzanie danych – klasa DataDlg.
Zmienni członkowie klasy.
//wektor do przechowywania ilości zasobów
std::wektor
//macierz wydajności obiektu
int** effMatrix;
//funkcja konwertująca ciąg znaków na liczbę
int StringToInt(CString);
//funkcja sprawdzająca poprawność wprowadzonych danych
BOOLWypełnijMacierz();
//funkcja czyszczenia zasobów po zamknięciu okna
wirtualny BOOL DestroyWindow();
//funkcja inicjowania dialogu
wirtualny BOOL OnInitDialog();
- Obliczanie wyników - główna klasa programu CourseWorkDlg
Zmienni członkowie klasy
wartość całkowita; //wartość wydajności
intMaxIndex;// maksymalny indeks w wektorze zasobów
int Obiekt;//przedsiębiorstwo
int Recource;//dedykowany zasób
Pozycja ** outMatrix; //maksymalna macierz docelowa
std::wektor
void BuildOutMatrix(int**,std::vector
afx_msg void OnBnClickedButton1(); // moduł obsługi kliknięcia przycisku „Oblicz”, który rozpoczyna proces obliczeń.
virtual BOOL DestroyWindow();//czyszczenie zasobów programu
- Wyprowadzanie raportu klasy wyników
Celem tej klasy jest wyświetlenie wektora wynikowego w formie tabelarycznej.
2.4 Wyniki programu
Wstępne wprowadzanie danych
- Wprowadzanie danych o produktywności obiektów rekonstrukcyjnych
- Jeżeli nie wszystkie pola są wypełnione
- Jeżeli wprowadzono nieprawidłowy znak
Poprawne wprowadzanie danych
Pokaż rezultat
- Wprowadzanie danych
Wynik programu
Wstępne wprowadzanie danych
Wprowadzanie produktywności obiektu
Aplikacja.
Lista programów
int DataDlg::StringToInt(CString str)
const wchar_t* s = T2CW(str);
int val = _wtoi(s);
// czy wszystkie pola są wypełnione?
BOOL DataDlg::FillMatrix()
flaga bool = prawda;
for (int i = 0; tj< Cells.GetSize(); i ++){
for (int j = 0 ; j< Cells.GetAt(i)->Edytuje.GetSize(); j++)(
CEdit * temp = Cells.GetAt(i)->Edits.GetAt(j) ;
if (temp->m_hWnd != NULL)(
temp->GetWindowText(str);
if (str.IsEmpty())(
MessageBox(L"Musisz wypełnić wszystkie pola", L"Błąd", MB_ICONERROR | MB_OK);
Opis pracy
Celem pracy jest zaimplementowanie na komputerze rozwiązania problemu optymalnej alokacji środków na rozwój produkcji.
Cele zajęć:
Rozważać aspekty teoretyczne rozwiązywanie problemów programowania dynamicznego; powtarzalny charakter zadań tego typu; Zasady optymalności Bellmana.
Opracowanie algorytmu. Schematy blokowe. Struktura algorytmu.
Implementacja komputerowa opracowanego algorytmu w wybranym języku programowania.
Treść
WSTĘP………………………………………………………2
Programowanie dynamiczne
Podstawowe pojęcia…………………4
Zasady programowania dynamicznego. Równania funkcyjne Bellmana………………….5
Cechy problemów programowania dynamicznego…………….10
Problem alokacji zasobów………………………12
Ogólne przedstawienie problemu……………………….13
Schemat blokowy programu
Struktura algorytmu programu
Wynik programu
Wniosek
Bibliografia
Wyślij swoją dobrą pracę do bazy wiedzy jest prosta. Skorzystaj z poniższego formularza
Studenci, doktoranci, młodzi naukowcy, którzy wykorzystują bazę wiedzy w swoich studiach i pracy, będą Państwu bardzo wdzięczni.
Wysłany dnia http://www.allbest.ru/
Problem alokacji zasobów metodą programowania dynamicznego
Aby zwiększyć moce produkcyjne trzech przedsiębiorstw A, B i C, przydzielana jest określona liczba jednostek dodatkowej energii elektrycznej w ilości x 0 = 8 jednostek. Energię elektryczną można wypuścić w postaci 1, 2, 3, 4, 5, 6, 7 i 8 jednostek. Inwestując x i jednostek energii elektrycznej w rozwój i-tego przedsiębiorstwa, możesz uzyskać dochód z i jednostek w tym przedsiębiorstwie. Istnieć różne warianty x i k) przydział dodatkowej energii elektrycznej. Przynoszą dochód do i (k), k=1,n. Możliwe opcje rozwój przedsiębiorstw przedstawiono w tabeli 1. Całkowity dochód dla wszystkich przedsiębiorstw powinien być maksymalny, tj. y=? y i (k)>max
Tabela 1. Możliwości rozwoju przedsiębiorstwa
Opcja k |
Przedsiębiorstwo A |
Przedsiębiorstwo B |
Przedsiębiorstwo C |
||||
Matematyczny inscenizacja zadania:
ty=? Na I (k)> maks
?X I (k)?x 0
Rozwiązanie:
Rozważanie sposobu rozwiązania problemu zacznijmy od ostatniego (3 kroki) etapu (tabela 2), w którym przydzielane są inwestycje przedsiębiorstwu C. Jako rozwiązanie równania poszukiwane jest warunkowe optymalne sterowanie na trzecim etapie
sol do (S 2)=max k f do , x C (k)?S 2 , k=1,2,3,4
Tabela 2. Rozwiązania warunkowo optymalne (krok 3)
Państwo |
Kontrola |
|||||||
Istnieją cztery możliwości inwestowania środków - kontrola czteroetapowa x C (1) = 0 jednostek, x C (2) = 1 jednostka, x C (3) = 2 jednostki, x C (4) = 3 jednostki. oraz dziewięć teoretycznie możliwych stanów układu S 2 poprzedzających przydział środków przedsiębiorstwu C – wolumeny inwestycji nieprzydzielonych do III etapu: 0,1,2,3,4,5,6,7,8.
Załóżmy, że układ znajdował się w stanie S 2 = 2. Wtedy dla regulacji skokowej x C (2) = 1 dochód C (2) będzie równy 3 jednostkom. (Tabela 3), a sterowanie krokowe x C (3) = 2 będzie optymalne dla tego stanu, dając warunkowo maksymalne wzmocnienie g c (S 2) = 5. Jeżeli system był w stanie S 2 =3, to dozwolone są wszystkie regulacje krokowe: x C (1) = 0 jednostek, x C (2) = 1 jednostka, x C (3) = 2 jednostki, x C (4) = 3 jednostki. , a optymalna kontrola będzie wynosić x C (4) = 3, co zapewnia warunkowo maksymalne wzmocnienie g c (S 2) = 6.
Tabela 3. Dystrybucja inwestycji w programowaniu dynamicznym
W podobny sposób wypełniane są wszystkie możliwe stany poprzedzające etap 3. Optymalne wartości wskaźników zaznaczono w tabelach pogrubioną czcionką.
Następnie w ten sam sposób rozpatrywany jest drugi etap (tabela 4), który polega na przydzieleniu inwestycji przedsiębiorstwu A. W drugim etapie całkowity zysk jest sumą wygranych otrzymanych w trzecim i drugim etapie i jest podawany według stosunku:
g A (S 1)=max k f A +g c], x A (k)?S 1, k=1,2,3,4
Zatem dla stanu S 1 =3 przy sterowaniu krokowym x A (2) = 1 otrzymujemy:
sol ZA (S 1)=max k fa ZA + sol do ]
Max k 4+g c =4+5=9, gdzie znajdujemy z tabeli 1, a g c z tabeli 3. Wszystkie stany wypełniamy w podobny sposób.
Tabela 4. Rozwiązania warunkowo optymalne (krok 2)
Państwo |
fa + g do |
Kontrola |
||||||
Powstają tu sytuacje, w których rozwiązanie optymalne nie będzie rozwiązaniem jedynym, zatem w stanie S 1 = 3 sterowanie krokowe x A (2) = 1 i x A (3) = 2 będzie warunkowo optymalne, dając to samo zysk g A (S 1) = 9
Tabela 5. Rozwiązania bezwarunkowo optymalne (krok 1)
Na pierwszym etapie (tabela 5) – przyporządkowaniu inwestycji przedsiębiorstwu B – występuje tylko jeden stan poprzedni systemu, odpowiadający stanowi początkowemu S 0 =8. Bezwarunkowo optymalne wzmocnienie jest określone przez wyrażenie:
y * = g B (S 0)= max k (f A +g A) x in (k)?S 0 =x 0, k=1,2,3,4,5
Bezwarunkowo optymalne kontrole zapewniające maksymalny dochód mogą być różne.
Schemat odnalezienia wszystkich optymalne opcje rozkład inwestycji pomiędzy przedsiębiorstwami (tabela 6) przedstawia rysunek 1.
Tabela 6. Optymalny rozkład inwestycji.
Rysunek 1. Schemat optymalnego podziału inwestycji pomiędzy przedsiębiorstwa
Wniosek: po rozważeniu problemu alokacji zasobów metodą programowania dynamicznego zidentyfikowano dwie możliwości optymalnej alokacji zasobów.
Opublikowano na Allbest.ru
...Podobne dokumenty
ogólna charakterystyka oraz wskaźniki wyników ekonomicznych trzech badanych przedsiębiorstw. Rozwiązanie problemu planowania produkcji i podziału inwestycji z wykorzystaniem programowania liniowego i dynamicznego. Analiza porównawcza wyników.
praca na kursie, dodano 25.04.2015
Procesy wieloetapowe w zadania dynamiczne. Zasada optymalności i relacje powtarzalności. Metoda programowania dynamicznego. Problemy optymalnej alokacji środków na rozwój produkcji i planowanie programu produkcyjnego.
praca na kursie, dodano 30.12.2010
Metoda programowania dynamicznego i jej główne etapy. Optymalna strategia wymiany sprzętu. Minimalizacja kosztów budowy i funkcjonowania przedsiębiorstw. Optymalny podział zasobów w STROYKROVLYA LLC i inwestycje w PKT Khimvolokno.
praca na kursie, dodano 01.08.2015
Matematyczny model planowania produkcji. Opracowanie optymalnego planu działalności produkcyjnej przedsiębiorstwa metodą Programowanie liniowe. Odkrycie Najlepszym sposobem dystrybucja zasobów pieniężnych w okresie planowania.
praca magisterska, dodana 08.07.2013
Obliczanie kosztów transportu metodą minimalne koszty. Znajdowanie warunkowej optymalnej równości w procesie programowania dynamicznego. Liniowy równanie algebraiczne Kołmogorow dla średniego czasu bezproblemowa praca system redundantny.
praca na kursie, dodano 14.01.2011
Metoda graficzna rozwiązywanie problemu optymalizacji procesów produkcyjnych. Zastosowanie algorytmu simplex do rozwiązania ekonomicznie zoptymalizowanego problemu zarządzania produkcją. Metoda programowania dynamicznego do wyboru optymalnego profilu ścieżki.
test, dodano 15.10.2010
Optymalny plan podział środków pomiędzy przedsiębiorstwami. Opracowanie planu dla każdego przedsiębiorstwa, w którym będzie zwrot z inwestycji najwyższa wartość. Stosowanie metod programowania liniowego i dynamicznego.
praca na kursie, dodano 16.12.2013
Charakterystyczne cechy problemów programowania liniowego. Ogólne sformułowanie problemu planowania produkcji. Budowa modelu matematycznego podziału zasobów przedsiębiorstwa. Analiza wrażliwości rozwiązania optymalnego. Sporządzanie raportu zrównoważonego rozwoju.
prezentacja, dodano 12.02.2014
Znalezienie optymalnego portfela papierów wartościowych. Przegląd metod rozwiązania problemu. Budowa modelu matematycznego. Problem z programowaniem stożka. Zależność wektora podziału kapitału początkowego od jednego z parametrów początkowych.
praca magisterska, dodana 02.11.2017
Dynamiczny model programowania. Zasada optymalności i równanie Bellmana. Opis procesu modelowania i konstruowania schematu obliczeniowego programowania dynamicznego. Problem minimalizacji kosztów budowy i funkcjonowania przedsiębiorstw.
Plan lekcji
Dyscyplina akademicka METODY I MODELE MATEMATYCZNE W EKONOMII
Temat lekcji Rozwiązanie różnych problemy praktyczne DP przy użyciu metod matematycznych.
Cele Lekcji
Rozwijanie umiejętności rozwiązywania problemów programowania dynamicznego.
Rozwój jakości umysłu, uwagi i umiejętności pracy akademickiej uczniów.
Zaszczepianie w uczniach dyscypliny i determinacji.
Sprzęt do lekcji Notatki z wykładów, wiceprezes Agaltsov „Metody matematyczne w programowaniu”.
Podczas zajęć:
Czas organizacji:
sprawdzanie nieobecności, uzupełnianie dziennika.
Aktualizacja wiedzy referencyjnej: odpowiedzi na pytania zabezpieczające
Jakie zadania nazywane są wieloetapowymi?
Jakiego aparatu matematycznego używa się do rozwiązywania problemów wieloetapowych?
Jaka jest optymalna kontrola u*?
Jaki jest algorytm metody kolejne przybliżenia w dwóch kręgach?
Podaj przykłady problemów optymalnej alokacji zasobów.
Nauka nowego materiału:
Klasyczne problemy programowania dynamicznego
Problem z najdłuższym wspólnym podciągiem: Mając dwa ciągi, musisz znaleźć najdłuższy wspólny podciąg.
Problem znalezienia najdłuższego podciągu rosnącego: mając dany ciąg, należy znaleźć najdłuższy podciąg rosnący.
Problem odległości redakcyjnej (odległość Levenshteina): mając dwa ciągi znaków, należy znaleźć minimalną liczbę wymazań, zamian i dodań znaków, które przekształcają jeden ciąg w drugi.
Problem obliczania liczb Fibonacciego
Problem kolejności mnożenia macierzy: mając dane macierze, ..., przy ich mnożeniu należy minimalizować liczbę operacji skalarnych.
Problem z wyborem trajektorii
Problem sekwencyjnego podejmowania decyzji
Problem wykorzystania pracy
Problem z zarządzaniem zapasami
Problem plecakowy: z nieograniczonego zbioru obiektów o właściwościach „koszt” i „waga” należy wybrać określoną liczbę obiektów w taki sposób, aby przy ograniczonej wadze całkowitej uzyskać maksymalny koszt całkowity.
Algorytm Floyda-Warshalla: znajdź najkrótsze odległości pomiędzy wszystkimi wierzchołkami ważonego grafu skierowanego.
Algorytm Bellmana-Forda: znajdź najkrótszą ścieżkę w grafie ważonym pomiędzy dwoma danymi wierzchołkami.
Maksymalny niezależny zbiór wierzchołków w drzewie: mając drzewo, znajdź maksymalny zbiór wierzchołków taki, aby żadne dwa z nich nie były połączone krawędzią.
Przykład: Optymalna alokacja zasobów
Kapitał 40 milionów rubli. inwestor musi zainwestować w cztery projekty inwestycyjne, aby uzyskać maksymalny dochód. Rentowność projektów podano w tabeli (inwestycje są wielokrotnościami 8 milionów rubli)
ty
Zysk z wdrożenia
f4(u)
f3(u)
f2(u)
f1(u)
55
39
120
115
10 0
120
135
134
14 0
145
158
147
Rozwiązanie:
Jest to problem programowania dynamicznego. Rozwiązanie składa się z dwóch etapów. W pierwszym etapie (od końca do początku) szukamy warunkowego rozwiązania optymalnego, w drugim (od początku do końca) szukamy optymalnego rozwiązania problemu.
Scena 1.
Rozdzielamy kapitał pomiędzy cztery projekty i obliczamy uzyskany zysk L (I ), I = 8,16,24,32,40.
1 krok: Gotówka inwestują w czwarty projekt.
L(8)= 55
L(16)=58
L(24)=90
L(32)=100
L(40)=140
Krok 2: Fundusze są inwestowane w czwarty i trzeci projekt.
ty
Zysk z wdrożenia
1 krok
f3(u)
55
39
10 0
120
14 0
145
Krok 3: Fundusze są inwestowane w projekt czwarty, trzeci (krok 2) i drugi.
ty
Zysk z wdrożenia
Krok 2
fa 2(u)
94
108
120
135
135
175
158
175
134
214
147
Etap 2:
W czwartym kroku wybieramy maksimum uzyskanych wartości zysku L (40) = 214.
I powrót do Odwrotna kolejność Z tabeli do tabeli (od 4 kroków do 1) wybieramy takie wartości dochodu, przy których uzyskuje się wartość 214.
Maksymalny dochód 214 milionów rubli. z zainwestowanych środków można otrzymać przy następującym podziale środków:
1 projekt – 0 milionów rubli.
2 projekt – 24 miliony rubli.
Trzeci projekt – 8 milionów rubli.
4 projekt – 8 milionów rubli.
Konsolidacja nowego materiału:
5. Podsumowanie lekcji: wnioski, oceny, Praca domowa:
(2) ust. 5.1
Ср12: tworzenie i przyswajanie treści materiału teoretycznego
Podpis nauczyciela
Dostępny określona ilość zasoby s 0, które należy rozdzielić pomiędzy n podmiotów gospodarczych na bieżącą działalność w badanym okresie (miesiąc, kwartał, półrocze, rok itp.), aby uzyskać sumę maksymalny zysk. Wielkość inwestycji zasobów x i (;) w działalność każdego podmiotu gospodarczego jest wielokrotnością pewnej wartości h. Wiadomo, że każdy podmiot gospodarczy, w zależności od wielkości wykorzystanych środków x i w badanym okresie, generuje zysk w wysokości f i (x i) (nie jest uzależniony od inwestowania zasobów w inne podmioty gospodarcze).
Wyobraźmy sobie proces podziału zasobów pomiędzy podmiotami gospodarczymi jako n-etapowy proces zarządzania (liczba kroków pokrywa się z numer warunkowy podmiot gospodarczy). Niech s k() będzie parametrem stanu, tj. ilość środków dostępnych po k-tym kroku do podziału pomiędzy pozostałe (n - k) podmioty gospodarcze. Wówczas równania stanu można zapisać w postaci:
![](https://i1.wp.com/studbooks.net/imag_/43/236981/image028.png)
![](https://i2.wp.com/studbooks.net/imag_/43/236981/image029.png)
Wprowadźmy pod uwagę funkcję - warunkowo optymalny zysk całkowity uzyskany od k-tego, (k+1) - tego, ..., n-tego podmiotu gospodarczego, jeżeli zasoby w wysokości s k-1 () były optymalnie rozłożone pomiędzy nimi. Wiele możliwych decyzje zarządcze względem wielkości rozproszonych zasobów na k-tym kroku można przedstawić następująco: .
Następnie powtarzające się równania R.E. Bellman (odwrócony diagram) będzie wyglądał następująco:
![](https://i0.wp.com/studbooks.net/imag_/43/236981/image030.png)
Przykład. Istnieje pewna ilość zasobów s 0 =100, która musi zostać rozdzielona pomiędzy n=4 podmiotów gospodarczych na bieżącą działalność w badanym okresie (miesiącu), aby uzyskać łączny maksymalny zysk. Wielkość zaangażowania zasobów x i (;) w działalność każdego podmiotu gospodarczego jest wielokrotnością wartości h = 20 i jest określona wektorem Q. Wiadomo, że każdy podmiot gospodarczy w zależności od wielkości wykorzystanych środków x i za badany okres przynosi zysk w wysokości f i (x i) () (nie jest zależny od inwestycji zasobów w inne podmioty gospodarcze):
![](https://i2.wp.com/studbooks.net/imag_/43/236981/image034.png)
Należy określić, ile zasobów należy przeznaczyć na każde przedsiębiorstwo, aby łączny zysk był jak największy.
Rozwiązanie. Utwórzmy powtarzające się równania Bellmana (schemat odwrotny):
![](https://i2.wp.com/studbooks.net/imag_/43/236981/image035.png)
Wyznaczmy maksima warunkowe zgodnie z (13), a wyniki obliczeń przedstawiono w tabeli 1.
Tabela 1. Obliczanie optimów warunkowych
22+20=42 |
|||||||||||
22+33=55 |
17+42=59 |
||||||||||
22+46=68 |
17+55=72 |
14+59=73 |
|||||||||
67+20=87 |
|||||||||||
Według wyników optymalizacja warunkowa Ustalmy optymalną alokację zasobów:
![](https://i0.wp.com/studbooks.net/imag_/43/236981/image037.png)
Zatem optymalna alokacja zasobów to:
co zapewni największy zysk w ilości 87 jednostek konwencjonalnych. legowisko. jednostki
![](https://i0.wp.com/studbooks.net/imag_/43/236981/image039.png)
Odpowiedź: optymalna alokacja zasobów: która zapewnia największy zysk spośród 87 jednostek konwencjonalnych. legowisko. jednostki
Wniosek
Programowanie dynamiczne to dziedzina programowanie matematyczne, w tym zestaw technik i środków do znalezienia optymalnego rozwiązania, a także optymalizacji każdego kroku w systemie i opracowania strategii zarządzania, to znaczy proces zarządzania można przedstawić jako proces wieloetapowy. Programowanie dynamiczne, wykorzystujące planowanie krok po kroku, pozwala nie tylko uprościć rozwiązanie problemu, ale także rozwiązać te problemy, dla których nie można zastosować metod Analiza matematyczna. Uproszczenie rozwiązania osiąga się poprzez znaczne zmniejszenie liczby badanych opcji, ponieważ zamiast jednorazowo rozwiązywać złożony problem wielowymiarowy, metoda planowania krok po kroku obejmuje wiele rozwiązań dotyczących proste zadania. Planując proces krok po kroku, wychodzimy od interesów całego procesu jako całości, tj. Podejmując decyzję na danym etapie, zawsze należy mieć na uwadze ostateczny cel. Programowanie dynamiczne ma jednak również swoje wady. W przeciwieństwie do programowania liniowego, w którym metoda simplex jest uniwersalna, nie ma takiej metody w programowaniu dynamicznym. Każde zadanie ma swoje własne trudności i w każdym przypadku konieczne jest znalezienie najbardziej odpowiedniej metody rozwiązania. Wadą programowania dynamicznego jest także złożoność rozwiązywania problemów wielowymiarowych. Problem programowania dynamicznego musi spełniać dwa warunki. Pierwszy warunek nazywany jest zwykle warunkiem braku następstw, a drugi warunkiem addytywności funkcji celu problemu. W praktyce występują problemy planistyczne, w których znaczącą rolę odgrywają czynniki losowe, wpływające zarówno na stan systemu, jak i na zysk. Istnieje różnica między deterministycznymi i stochastycznymi problemami programowania dynamicznego. W problemie deterministycznym optymalne sterowanie jest unikalne i jest określone z góry jako trudny program działania. W problemie stochastycznym optymalne sterowanie jest losowe i wybierane jest w trakcie samego procesu, w zależności od losowej sytuacji. W schemacie deterministycznym, przechodząc proces etapami od końca do początku, jest to również na każdym etapie cała linia warunkowe optymalne kontrole, ale ze wszystkich tych kontroli ostatecznie wdrożono tylko jedną. Nie ma to miejsca w schemacie stochastycznym. Każda z warunkowych optymalnych kontroli może faktycznie zostać wdrożona w przypadku poprzedniego ruchu proces losowy doprowadzi system do odpowiedniego stanu. Zasada optymalności jest podstawą krok po kroku rozwiązywania problemów programowania dynamicznego. Typowymi przedstawicielami problemów ekonomicznych programowania dynamicznego są tzw. problemy produkcji i magazynowania, problemy podziału inwestycji kapitałowych, problemy kalendarza planowanie produkcji i inni. Problemy programowania dynamicznego wykorzystuje się przy planowaniu działalności przedsiębiorstwa, uwzględniając zmiany zapotrzebowania na produkty w czasie. W optymalnym podziale zasobów pomiędzy przedsiębiorstwami pod względem kierunku lub czasu. Opis cech programowania dynamicznego i rodzajów problemów, które można w jego ramach sformułować, musi z konieczności być bardzo ogólny i nieco niejasny, ponieważ istnieje ogromna różnorodność różne zadania, wpasowując się w schemat programowania dynamicznego. Tylko nauka duża liczba przykłady zapewniają jasne zrozumienie struktury programowania dynamicznego.
1. Podstawowe pojęcia
1.1. Dynamiczny model programowania
1.2. Zasada optymalności. Równanie Bellmana
2. Optymalna alokacja zasobów
2.1 Opis problemu
2.2 Dwuwymiarowy model alokacji zasobów
2.3 Dyskretny model dynamiczny optymalna alokacja zasobów
2.4 Uwzględnienie następstw w problematyce optymalnej alokacji zasobów
Wniosek
Lista wykorzystanych źródeł
Załącznik 1. Lista programów rozwiązujących problem optymalnej alokacji zasobów przy zadanych parametrach. Wyniki programu
Wstęp
W całej historii ludzie uciekali się do skomplikowanych rytuałów, gdy musieli podjąć decyzję. Odprawiali uroczyste ceremonie, składali ofiary ze zwierząt, przepowiadali przyszłość za pomocą gwiazd i obserwowali lot ptaków. Opierali się na ludowych przesądach i starali się kierować prymitywnymi zasadami, które ułatwiały im trudne zadanie podejmowania decyzji. Obecnie do podejmowania decyzji wykorzystuje się nowy i, najwyraźniej, bardziej naukowy „rytuał”, oparty na wykorzystaniu komputera elektronicznego. Bez nowoczesnych środki techniczne Umysł ludzki prawdopodobnie nie jest w stanie uwzględnić wielu różnorodnych czynników, jakie napotykają przy prowadzeniu biznesu, projektowaniu rakiety czy regulowaniu ruchu drogowego. Obecnie istnieje ich wiele metody matematyczne optymalizacje są już dość rozwinięte, co pozwala efektywnie wykorzystać możliwości rozwiązań cyfrowych i hybrydowych komputery. Jedną z tych metod jest programowanie matematyczne, które obejmuje obie metody szczególny przypadek Programowanie dynamiczne.
Większość praktycznych problemów ma kilka (a niektóre być może nawet nieskończona liczba) rozwiązania. Celem optymalizacji jest znalezienie najlepszym rozwiązaniem spośród wielu potencjalnie możliwych zgodnie z pewnym kryterium wydajności lub jakości. Problem, który pozwala tylko na jedno rozwiązanie, nie wymaga optymalizacji. Optymalizację można osiągnąć za pomocą wielu strategii, począwszy od bardzo złożonych procedur analitycznych i numerycznych matematycznych po inteligentne wykorzystanie prostej arytmetyki.
Programowanie dynamiczne jest metodą optymalizacyjną dostosowaną do operacji, w której proces decyzyjny można rozbić na odrębne etapy (kroki). Takie operacje nazywane są wieloetapowy.
Jako gałąź programowania matematycznego, programowanie dynamiczne (DP) zaczęło się rozwijać w latach 50. XX wieku. dzięki pracy R. Bellmana i jego współpracowników. Po raz pierwszy za pomocą tej metody rozwiązano problemy optymalnego zarządzania zapasami, następnie klasa problemów znacznie się rozszerzyła. Jak metoda praktyczna optymalizacji metoda programowania dynamicznego stała się możliwa dopiero przy zastosowaniu nowoczesnej technologii komputerowej.
Metoda programowania dynamicznego opiera się na zasadzie optymalności sformułowanej przez Bellmana. Zasada ta oraz idea włączenia konkretnego problemu optymalizacyjnego do rodziny podobnych problemów wieloetapowych prowadzą do relacji rekurencyjnych – równań funkcjonalnych – względem optymalna wartość funkcja docelowa. Ich rozwiązanie pozwala nam konsekwentnie uzyskać optymalną kontrolę nad pierwotnym problemem optymalizacyjnym.
1. Podstawowe pojęcia
1.1 Dynamiczny model programowania
Dajmy ogólny opis dynamiczne modele programowania.
Rozważany kontrolowany system, który pod wpływem kontroli przechodzi od stanu początkowego
do stanu końcowego. Załóżmy, że proces zarządzania systemem można podzielić na P kroki. Niech , ,…, będą stanami układu po pierwszym, drugim,..., P-ty krok. Pokazano to schematycznie na rys. 1.![](https://i2.wp.com/mirznanii.com/images/45/43/8284345.png)
Obrazek 1
Państwo
systemy po kth krok ( k = 1,2 …,N) charakteryzuje się parametrami , ,…, które nazywane są współrzędne fazy. Stan można przedstawić za pomocą punktu w przestrzeni s-wymiarowej zwanego przestrzeń fazowa. Konsekwentną transformację systemu (krok po kroku) osiąga się za pomocą określonych działań , ,…, , które stanowią zarządzanie systemem![](https://i0.wp.com/mirznanii.com/images/53/43/8284353.png)
Zakładamy odtąd, że stan układu jest końcowy kth krok zależy tylko od poprzedniego stanu systemu
i zarządzanie dalej ten krok(ryc. 1). Ta właściwość nazywa się żadnych następstw. Oznaczmy tę zależność jako![](https://i2.wp.com/mirznanii.com/images/57/43/8284357.png)
Nazywa się równością (1.1). równania stanów. Funkcje
zakładamy, że dane.Zmienna kontrola U , uzyskamy różne „efektywności” procesu, które będziemy oceniać ilościowo za pomocą funkcji celu Z , w zależności od stanu początkowego systemu
i z wybranej kontrolki U : . (1.2)Wskaźnik wydajności kth etap procesu kontroli, który zależy od stanu
na początku tego kroku, a sterowanie wybrane na tym etapie będzie oznaczone rozważanym problemem optymalizacja krok po kroku funkcja celu (1.2) musi być addytywna, tj.![](https://i2.wp.com/mirznanii.com/images/61/43/8284361.png)
Jeżeli właściwość addytywności funkcji celu Z nie jest spełniona, to czasami można to osiągnąć poprzez pewne przekształcenia funkcji. Na przykład, jeśli Z jest funkcją multiplikatywną podaną jako
![](https://i2.wp.com/mirznanii.com/images/62/43/8284362.png)
Zazwyczaj warunki procesu są kontrolowane na każdym etapie
obowiązują pewne ograniczenia. Kontrole spełniające te ograniczenia nazywane są dopuszczalnymi .Problem optymalizacji krok po kroku można sformułować w następujący sposób: określić zbiór możliwych kontroli