You are on page 1of 5

BOIO instrukcja dla opornych xD

1. Wewntrzna funkcja kary:


a) Przeksztacamy ograniczenia w ten sposb, aby uzyska z nich ktrego x (x = co);
b) Podstawiamy uzyskanego x do funkcji celu i obliczamy;
c) W nastpnym kroku, ograniczenie ktrego nie wykorzystalimy w pierwszym kroku przeksztacamy
tak, aby byo 0 i podstawiamy je do wzoru:
P(x,r) = - , gdzie y to ograniczenie w formie tego, co przed 0 (np. x1 1);
d) (Tutaj robimy funkcje zastpcz F(x,r) Nastpnie odejmujemy otrzymany wzr z podstawionym
ograniczeniem od wczesniej wyliczonego rwnania z funkcji celu, obliczamy z niego pochodn i
caego tego molocha przeksztacamy tak, aby wyznaczy r;
e) Kiedy mamy ju wyznaczone r, wyliczamy z otrzymanego wzoru x1 ;
f) Po wyznaczeniu x1 oraz r podstawiamy otrzymane wzory do funkcji celu i mamy wynik, brawo ty.
2. Lagrange (dla ulotki):
a) Wyznaczamy funkcje celu na podstawie otrzymanego rysunku i ma ona dy do MAX (chyba, e w
treci by byo inaczej ale raczej zawsze jest max);
b) Wyznaczamy ograniczenia na podstawie otrzymanego rysunku i treci, najczciej ograniczeniem w
tych zadaniach bdzie to, e powierzchnia (lub objto) ma by rwna ile tam, wic a*b = ile w
przypadku prostokta (np. ulotka) i analogicznie w innych przypadkach (wzory na pola i objtoci
powtrzy), ograniczeniem moe by te to, e zadane wartoci musz by >0;
c) Nastpnie ukadamy rwnanie ze wszystkimi niewiadomymi i dodajemy *(ograniczenie, wczeniej
przeksztacone do =0), funkcja ma dy do MAX na koncu, na pocztku trzeba Zamienic na MIN,
wyliczyc i na koncu *-1, wymnaamy co si da oprcz *(ograniczenie) ;
d) Liczymy pochodne po wszystkich zmiennych, ktre mamy w tej funkcji (rwnie po ) i
przyrwnujemy otrzymane pochodne do 0;
e) Teraz z tej pochodnej, z ktrej najatwiej wyznaczy wzr na ktr z niewiadomych z tej
wyznaczamy (np. przeksztacamy j tak, eby mie a = co), wyliczamy rwnie drug zmienn,
najczciej ;
f) Pozostae pochodne, ktrych nie uylimy do wyznaczania jednej ze zmiennych, przyrwnujemy do
siebie (pochodna1 = pochodna2) i podstawiamy tam wczeniej uzyskany wzr na jedn ze
zmiennych;
g) Wyliczamy rwnanie i drug ze zmiennych, podstawiamy do wzoru na pierwsz zmienn i kuniec.
3. Lagrange (dla pudeka):
4. Lagrange (dla puszki):
5. Balas:
a) Nie podnieca si, e si dostao Balasa w zestawie bo tu si mona zajebicie atwo jebn nawet
na pocztku i dosta 1 pkt xD
b) Funkcj celu zamieni na MIN (wszystkie znaki w funkcji na odwrotne) jeli nie jest taka podana.
c) Uporzdkowa zmiennie w ograniczeniach (w funkcji celu te mona dla wygody, jeli nie s) po
indeksach (x1.xn), jeli w danym ograniczeniu nie ma ktrej zmiennej to dla wygody mona sobie
napisa np. 0x1;
d) Zapisa sobie, e x1...xn nale do zbioru {0,1};
e) Porzdkujemy zmienne od najwikszej do najmniejszej;
f) Rozpisa tabelk dla 3+1 ogranicze, 4 ograniczenie jest sprawdzane jako warto funkcji celu ->
MIN na pocztku po tym, jak ju wyjdzie nam jaki filtr z pozostaych trzech ogranicze, jeli warto
funkcji dla 4 ograniczenia nie jest mniejsza ni poprzedni filtr to przechodzimy dalej;
g) Jeli dla wszystkich 3 ogranicze jest ok to obliczamy warto funkcji celu dla danego kroku i
zapisujemy to z boku jako macierz transponowan (np. |0001|T) i oznaczamy jako filtr;
h) Zapisujemy najlepszy (najmniejsza warto) w postaci macierzy transponowanej;
i) Zapisujemy po zmianie kolejnoci od x1xn i zapisujemy dan warto tych zmiennych w formie
macierzy transponowanej;

6. Newton (dla zadania bez podanego epsilona w ktrym wystarczy obliczy ile iteracji):
a) Obliczamy pochodn 1 i 2 rzdu z funkcji celu;
b) Iteracja 1 podstawiamy za x punkt startowy podany w zadaniu i obliczamy warto zarwno
pochodnej 1 jak i 2 rzdu;
c) Obliczamy xm1 = x0 - ;
d) Iteracja 2 podstawiamy x0 = xm1 i liczymy dokadnie to samo co w 1 iteracji, w miejsce;
e) Obliczamy xm2 = x1 - ;
f) Iteracja 3 podstawiamy x0 = xm2
g) i liczymy dokadnie to samo co w 2 iteracji;
h) Obliczamy xm3 = x2 - ;
i) Kuniec (chyba);
7. Newton (z epsilonem):
8. Fibonacci (zadanie z pudekiem z prostokta):
a) Zapisujemy wzr na objto pudeka (a*b*h), podstawiamy, wymnaamy i zapisujemy gotow
funkcj celu -> MIN;
b) Wyznaczamy ograniczenie i z niego wyliczamy przedzia nieokrelonoci (najmniejsza i najwiksza
liczba jakie mona podstawi za x w ograniczeniu aby nadal byo prawdziwe, np. dla ograniczenia 2x
<3, przedziaem nieokrelonoci bdzie przedzia <0;1.5>);
c) Rozpisujemy z boku kilka kolejnych wartoci z cigu fibonacciego od F 2 (F0 i F1 s rwne 1);
d) Wyliczamy ilo krokw Fk ze wzoru: , przeksztacamy wzr tak aby wysza liczba Fk i
nastpnie sprawdzamy, jaka jest kolejna warto cigu fibonacciego wiksza od tej liczby (np. dla
liczby 10, kolejn wiksz od niej wartoci cigu fibonacciego jest F6 = 13);
e) Zapisujemy liczb krokw Fk jako indeks wartoci z cigu fibonacciego i liczb (np. F6 = 13) oraz, e k
indeks danej wartoci z cigu fibonacciego (np. k 6);
f) Obliczamy 2 = ;
g) Obliczamy x1 = a + 20 oraz x2 = b 20, 0= b-a;
h) Sprawdzamy wartoci Q(x1) oraz Q(x2), jeeli Q(x1) Q(x2) to w kolejnym kroku za b podstawiamy
otrzymane x2, jeeli Q(x2)< Q(x1) to w kolejnym kroku za a podstawiamy otrzymane x1;
i) W kolejnym kroku liczymy inaczej, n = ;
j) Wykonujemy wczeniej wyliczon liczb krokw, kocowo rnica midzy x1n a x2n powinna by
mniejsza lub rwna epsilon;
9. Zoty podzia:
a) Postpujemy tak samo jak w algorytmie Fibonacciego (zaczynamy od pkt. g) ) z tak rnic, e nie
obliczamy iloci krokw (jest ona nieznana) a = = 0,382 jest to staa, przedzia nieokrelonoci
mamy podany w treci;
10. Gomory:
a) Zamieniamy funkcje na MIN;
b) Z ogranicze z liczbami tworzymy rwnania i dopisujemy dodatkowe zmienne (2 rwnania = 2
dodatkowe zmienne), jeli to dodajemy zmienne a jeli jest to odejmujemy dodatkowe zmienne;
c) Z rwna wybieramy jedno z ktrego atwiej wyznaczy ktrego x ktry jest od pocztku (nie
dodatkowego) i go wyznaczamy;
d) Do rwnania ktrego NIE uylimy w poprzednim kroku podstawiamy zmienn wyznaczon w
poprzednim kroku, wyliczamy i przyrwnujemy do 0;
e) Nastpnie za stworzone dodatkowe zmiennie x, podstawiamy nowe dodatkowe zmienne y (np.
y1=x3);
f) Z otrzymanego wczesniej rwnania wyznaczamy x1 i za zmiennie dodatkowe x podstawiamy
wczesniej przypisane zmienne dodatkowe y, rwnanie na x1 w formie a b c;
g) Tworzymy tabelk z wartociami do podstawienia, 3 kolumna musi by <0;1> a 2 cakowita;

= wyraz wolny (a) b1* = cz caoci w a 1 = cz reszty z a


= warto y1 (b) a11*= cz caoci w b 11 = cz reszty z b
= warto y2 (c) a12*= cz caoci w c 12 = cz reszty z c

h) Po wyliczeniu tabelki z wartociami, podstawiamy je do wczeniej wyliczonego wzoru na x1 i


tworzc nierwno dopisujemy 0;
i) Z ogranicze z ktrych w kroku b) wyznaczalimy jakiego x, wyznaczamy wzory na dodatkowe
zmienne x i przyrwnujemy je do odpowiednich zmiennych y;
j) Podstawiamy wyznaczone w poprzednim kroku wzory na y do wyznaczonej w kroku g) nierwnoci;
k) Wyliczamy nierwno i po jej wyliczeniu dopisujemy dodatkow zmienn xn eby uzyska
rwnanie;

11. Symplex:

12. Sieczne:
a) Obliczamy pochodn 1 rzdu z Q(x);
b) Iteracja 1 za x10 przyjmujemy pocztek przedziau a za x20 koniec przedziau;
c) Obliczamy Q(x10) i Q(x20);
d) Obliczamy xm0 =
e) Obliczamy Q(xm);
f) Jeli Q(xm)* Q(x20) 0 to w kolejnej iteracji podstawiamy wyliczone xm za x2 a jeli Q(xm)* Q(x20)
0 to podstawiamy wyliczone xm za x1 w kolejnej iteracji;
g) Iteracja 2 postpujemy dokadnie tak samo tylko patrz poprzedni punkt;
h) Obliczenia koczymy jeli Q(xmn) ;
13. Powell:
e10 = |1 0|T (1) x10 = x00 + 0e20 Q(x10) -> MIN
0 T 0 0 0
e2 = |0 1| (2) x2 = x1 + 1e1 Q(x20) -> MIN
i = 2,1,2 (3) x30 = x20 + 2e20 Q(x30) -> MIN

a) Obliczamy x10 = x00 + 0e20 i z tego wycigamy x1 i x2 ;


b) Obliczamy Q(x10);
c) Wyliczamy pochodn 1 stopnia z Q(x10);
d) Z wyliczonej pochodnej wyznaczamy 0;
e) Ponownie podstawiamy do wzoru x10 = x00 + 0e20 i podstawiamy wyliczone w poprzednim kroku 0;
f) Wyliczamy i zapisujemy x10 w formie macierzy ;
g) W kolejnej iteracji postpujemy tak samo, tylko za punkt startowy x20 bierzemy x10 wyliczone w
poprzednim kroku i korzystamy z wzoru (2) z tabelki;
h) Po wykonaniu 3 iteracji, korzystamy ze wzoru e03= obliczamy pierwszy kierunek sprzony,
d tego wzoru dziaa tak, e bierzemy gdzie a i c to elementy macierzy x10 =
obliczonego w 1 iteracji, natomiast b i d to elementy macierzy x30 = obliczonego w 3 iteracji;
14. Najszybszy spadek:
a) Obliczamy pochodne z Q po x1 i x2;
b) Podstawiamy do otrzymanych pochodnych wartoci x1 i x2 z punktu startowego (np. [0 0]T) i
obliczamy ich wartoci;
c) Z otrzymanych wartoci a i b tworzymy gradient V(x) = i mnoymy go *(-1) aby uzyska d0 = -V(x)
= ;
d) Nastpnie wyliczamy x10= x0+0d0 i liczymy Q(x0+0d0) podstawiajc uzyskane z x10 wartoci x1 i x2;
e) Liczymy pochodn po 0 z otrzymanego w poprzednim kroku rwnania;
f) Z otrzymanej pochodnej wyznaczamy 0;
g) Otrzyman warto 0 podstawiamy do wzoru x0+0d0 i obliczamy x11 czyli kierunek najszybszego
spadku;
15. Fletcher- Reeves:
a) Robimy najszybszy spadek;
b) Liczymy gradient dla x11;
c) Po otrzymaniu x00 i x11 obliczamy wzr = (obliczamy normalnie funkcje celu ze srodka od
x1 i x0, kwadrat si skraca z pierwiastkiem);
d) Obliczamy d1 = -VQ(x1) + 1d0;
e) Obliczamy warto funkcji celu dla x11;
f) Obliczamy pochodn z tego co wyszo w poprzednim kroku, przyrwnujemy do 0 i wyznaczamy 1;
g) Obliczamy x21= x11+1d1;
16. Ekstremum (sioda):
a) Obliczamy pochodne pierwszego rzdu po x1 i x2 z funkcji celu;
b) Przyrwnujemy pochodne do 0 i tworzymy ukad rwna, z ukadu rwna liczymy delte (chyba, ze
nie trzeba) i otrzymujemy pierwszy zestaw zmiennych;
c) Otrzymane w poprzednim punkcie zmienne podstawiamy do pocztkowo wyliczonej pochodnej
(obojetnie ktrej) i wyliczamy drugi zestaw zmiennych;
d) Porzdkujemy wyliczone zmienne;
e) Tworzymy Hesjany (4 zmienne = 4 hesjany itp), na zasadzie Hn= (x11 ; x22) itd.;
f) Liczymy pochodne drugiego rzdu po x1 i x2;
g) Tworzymy Hesjany (takie te macierze) z wynikw pochodnych drugiego rzdu: ;
h) Wyliczamy Hesjany: (x1x1*x2x2)-(x2x1*x1x2);
i) Jeli Hesjan <0 to w tym miejscu mamy siodo, jeli Hesjan = 0 to mamy nierozwizane a jeli Hesjan
>0 to mamy lokalne ekstremum;
j) Jeli x1x1 w Hesjanie ktry nam wyszedl >0 jest >0 to w tym punkcie jest minimum lokalne, jeli jest
<0 to jest tam maximum lokalne;
17. Model Matematyczny:
a) Tworzymy tabelk z iloci optymalnych kombinacji i oznaczamy je jako x1xn;
X X1 X2 X3
Pierwsza wymagana a b c Wymagana ilo j
wielko ->Ograniczenie 1
Druga Wymagana d e f Wymagana ilo k
wielko ->Ograniczenie 2
Odpad g h i ->Funkcja celu
b) Tabelk wypeniamy kombinacjami ci, w przypadku zadania z drutem. Ilo xn jest tu podana
przykadowo, moe by wicej lub mniej;
c) Tworzymy model matematyczny (zadanie prymalne) w taki sposb, e funkcj celu bdzie wiersz z
odpadem (g+h+i ->MIN), ograniczeniem pierwszym bdzie a+b+cj, a ograniczenie drugie to
d+e+fk;
d) Musimy rwnie zapisa, e zmienne x1xn 0;
e) Oznaczamy Q( ) jako funkcj celu optymaln;
f) Nastpnie tworzymy zadanie dualne jako funkcj celu zadania dualnego P( ) = bierzemy wartoci
j i k i dopisujemy do nich odpowiednio y1 i y2;
g) Jako ograniczenie 1 bierzemy wartoci a + d g (znak mniejszoci/wikszoci zawsze odwrotnie ni
w zadaniu prymarnym). Ograniczenie 2 podobnie b+e h, Ograniczenie 3 = c+fi;
h) Do wszystkich ogranicze dopisujemy rwnie kolejne wartoci y1yn analogicznie jak przy funkcji
celu;
i) Zapisujemy rwnie, e y1yn 0 tutaj znak nie zmienia si na przeciwny;
j) Po zapisaniu zadania dualnego, zapisujemy jeszcze posta kanoniczn [N]*[ + [B]*[ = ;

k) Przykad dla zadania z drutem: * + * = ;

18. Kuchn Tucker:


19. Funkcja kary zewntrzna:

You might also like