[viesti Survo-keskustelupalstalla (2001-2013)]
Kirjoittaja: | Seppo Mustonen |
---|---|
Sähköposti: | - |
Päiväys: | 15.12.2011 12:21 |
Survossa on ollut mahdollista ratkaista lineaarisen optimoinnin ongelmia ja kahden hengen nollasummapelejä SIMPLEX-ohjelman ja matriisitulkin avulla tavalla, joka esitetään mm. Survon englanninkielisen käyttöoppaan http://www.survo.fi/books/1992/Survo_Book_1992_with_comments.pdf sivuilla 390-392. Erityisesti näiden juttujen opetusta ajatellen olen laatinut kaksi sukroa, jotka perustuvat ilmaisohjelman lp_solve http://lpsolve.sourceforge.net/5.5/ käyttöön suoraan Survosta. Sukro /LP_SOLVE ratkaisee lineaarisen optimointiongelman ja /ZS_GAME kahden hengen nollasummapelin. Nämä uudet sukrot kuten myös erillinen Survo-ohjelmien päähakemistoon DD <Survo>\U sijoitettava LP_SOLVE.EXE tulevat mukaan versiosta 3.32 lähtien, mutta ne on mahdollista ottaa käyttöön myös Survon verkkosivuilta osoitteista http://www.survo.fi/tmp/lp_solve.exe http://www.survo.fi/tmp//LP_SOLVE.TUT http://www.survo.fi/tmp//ZS_GAME.TUT Tässä esimerkkinä em. oppaan sivulla 392 olevan pelin ratkaiseminen: Kaikki komennon /ZS_GAME A jälkeiset rivit ovat toimituskenttään ilmaantuvaa tulostusta. Siitä näkyy mm., miten tehtävä muunnetaan "selväkieliseksi" LP-ongelmaksi ja miten pelin optimistrategiat (#P ja #Q) on poimittu suoraan lp_solve-ohjelman antamasta ratkaisusta. MATRIX A /// B1 B2 B3 B4 A1 3 6 1 4 A2 5 2 4 2 A3 1 4 3 5 MAT SAVE A /ZS_GAME A Solving zero-sum game A: MAT LOAD A MATRIX A /// B1 B2 B3 B4 A1 3 6 1 4 A2 5 2 4 2 A3 1 4 3 5 MAT DIM A /* rowA 3 colA 4 MAT #A=A / *#A~A 3*4 Add a constant to all elements to make them non-negative: MAT MIN=MIN(MIN(#A)') -MAT_MIN(1) -1 MAT #A1=CON(3,4,0) MAT #A=#A+#A1 / *#A~A+0 3*4 Presenting the problem as an LP program: SAVEP CUR+1,E,zs_game.lp min: v; u1 >= 0; u2 >= 0; u3 >= 0; u4 >= 0; 3 u1 + 6 u2 + 1 u3 + 4 u4 <= v; 5 u1 + 2 u2 + 4 u3 + 2 u4 <= v; 1 u1 + 4 u2 + 3 u3 + 5 u4 <= v; u1 + u2 + u3 + u4 = 1; Solving the problem zs_game.lp by the lp_solve program: >G:\e\u\lp_solve zs_game.lp -S4 >D:\ARK\lpresult.txt LOADP lpresult.txt Value of objective function: 3.25000000 Actual values of the variables: v 3.25 u1 0.0833333 u2 0.416667 u3 0.5 u4 0 Actual values of the constraints: R1 0 R2 0 R3 0 R4 1 Objective function limits: From Till FromValue v 2.220446e-016 1e+030 -1e+030 u1 -0.2307692 1 -1e+030 u2 -3 0.1578947 -1e+030 u3 -0.5 0.1666667 -1e+030 u4 -0.125 1e+030 0.5263158 Dual values with from - till limits: Dual value From Till R1 -0.125 -0.6666667 2 R2 -0.5 -0.5 2.5 R3 -0.375 -2 0.2857143 R4 3.25 6.217249e-015 1e+030 v 0 -1e+030 1e+030 u1 0 -1e+030 1e+030 u2 0 -1e+030 1e+030 u3 0 -1e+030 1e+030 u4 0.125 -0.1538462 0.5263158 Solution of the game A: Value=3.25 Optimal strategies: (MATRIX #P) /// Prob A1 0.125000 A2 0.500000 A3 0.375000 (MATRIX #Q) /// Prob B1 0.083333 B2 0.416667 B3 0.500000 B4 0.000000
Vastaukset: |
---|
Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!