VZOREK - SAMPL
Paradigma | multi-paradigma: deklarativní, rozkazovací způsob |
---|---|
Navrhl | Gautam Mitra, Enza Messina, Valente Patrick |
Poprvé se objevil | 2001 |
Stabilní uvolnění | 20120523 / 23. května 2013 |
OS | Cross-platform (více platforem) |
Licence | Proprietární |
Přípony názvu souboru | .mod .dat .run .sampl |
webová stránka | www |
Ovlivněno | |
AMPL |
VZOREK, což znamená „Stochastický AMPL ", je jazyk algebraického modelování výsledkem je rozšíření známého jazyka AMPL s rozšířenou syntaxí a klíčovými slovy. Je navržen speciálně pro reprezentaci stochastické programování problémy[1] a prostřednictvím nedávných rozšíření problémy s omezeními náhody, integrovanými omezeními náhody a robustní optimalizace problémy. Může generovat deterministickou ekvivalentní verzi instancí pomocí všech řešení, ke kterým se AMPL připojuje,[2] nebo vygenerovat SMPS reprezentace a použití specializovaných řešitelů založených na rozkladu, jako FortSP.
Jazykové funkce
SAMPL sdílí všechny jazykové funkce s AMPL a přidává některé konstrukce speciálně navržené pro vyjádření scénáře stochastické programování a robustní optimalizace.
Stochastické programovací funkce a konstrukce
Chcete-li vyjádřit problémy SP založené na scénáři, další konstrukce popisují stromovou strukturu a seskupují rozhodovací proměnnou do fází. Kromě toho je možné určit, který parametr ukládá pravděpodobnosti pro každou větev stromu a která sada představuje sadu scénářů. K dispozici jsou také další konstrukce pro snadnou definici omezení náhody a integrované omezení náhody v problému SP. Použití těchto jazykových konstruktů umožňuje zachovat strukturu problému, a proto jej zpřístupnit řešitelům, kteří by jej mohli využít pomocí specializovaných metod rozkladu, jako je Bendersův rozklad k urychlení řešení.
Robustní optimalizační konstrukce
SAMPL podporuje konstrukce popisující tři typy robustních optimalizačních formulací:
Dostupnost
SAMPL je v současné době k dispozici jako součást softwaru AMPLDev (distribuovaný společností www.optirisk-systems.com ). Podporuje mnoho populárních 32- a 64bitových platforem včetně Okna, Linux a Mac OS X. K dispozici je bezplatná zkušební verze s omezenou funkčností.[6]
Vzorový model stochastického programování
Následuje ukázka verze jednoduchého problému (Dakota[7]), pro zobrazení konstruktů souvisejících s SP. Nezahrnuje datový soubor, který dodržuje běžnou syntaxi AMPL (viz příklad uvedené na stránce Wikipedie AMPL pro další použití).
soubor Prod;
soubor Zdroj;
# Scénáře (budoucí možné realizace)
scénář Scéna;# Definice problému jako dvoustupňového problému
strom Strom: = dvoustupňové;# Poptávka po každém produktu v každém scénáři
náhodný parametr Poptávka {Prodat, Scéna};# Pravděpodobnost každého scénáře
pravděpodobnost P {Scéna};# Náklady na každou jednotku zdroje
param Náklady{Zdroj};
# Požadavek z hlediska zdrojových jednotek na výrobu jedné jednotky každého produktu
param ProdReq{Zdroj,Prod};
# Prodejní cena každého produktu
param Cena{Prod};
# Počáteční rozpočet
param Rozpočet;
# Množství zdrojů k nákupu
var Koupit{rvZdroj}>=0,
fáze přípony 1;# Množství každého produktu k výrobě
var amountprod{strvProd,svScéna}>=0,
fáze přípony 2;# Množství každého produktu k prodeji
var množství{strvProd,svScéna}>=0,
fáze přípony 2;# Celkové konečné bohatství, jak se očekávalo, celkový příjem z prodeje po odečtení nákladů na zdroje
maximalizovat bohatství:součet{svScéna}P[s]*
(součet{strvProd}Cena[str]*množství[str,s]-součet{rvZdroj}Náklady[r]*Koupit[r]);
předmětna
# Ujistěte se, že máte dostatek zdrojů k výrobě toho, co máme v úmyslu
Zůstatek{rvZdroj,svScéna}:
Koupit[r]>=součet{strvProd}ProdReq[r,str]*amountprod[str,s];
# Ujistěte se, že neprodáváme to, co jsme nevyrobili
Výroba{strvProd,svScéna}:množství[str,s]<=amountprod[str,s];
# Ujistěte se, že neprodáváme více než poptávka na trhu
odbyt{strvProd,svScéna}:množství[str,s]<=Poptávka[str,s];
# Respektujte původní rozpočet
budgetres:součet{rvZdroj}Náklady[r]*Koupit[r]<=Rozpočet;
Konektivita řešitelů
Formát na úrovni instance SAMPL pro problémy SP je SMPS, a proto může být problém vyřešen jakýmkoli řešičem, který tento standard podporuje. Jeden z těchto řešičů (FortSP) je součástí standardní distribuce SAMPL. Pokud jde o robustní optimalizační problémy, potřebný řešič závisí na konkrétní použité formulaci, protože formulace Ben-Tal a Nemirovski potřebují kužel druhého řádu schopný řešitel.
Viz také
- Jazyk algebraického modelování
- CÍLE
- AMPL
- FortSP
- HRY - Obecný systém algebraického modelování
- GLPK - bezplatný systém s otevřeným zdrojovým kódem založený na podmnožině AMPL
- MPS (formát)
- Robustní optimalizace
- Stochastické programování
Reference
- ^ Christian Valente, Gautam Mitra, Mustapha Sadki a Robert Fourer (2009). „Rozšíření algebraických modelovacích jazyků pro stochastické programování“. INFORMS Journal o práci na počítači. 21 (1): 107–122. doi:10.1287 / ijoc.1080.0282.CS1 maint: více jmen: seznam autorů (odkaz)
- ^ http://www.ampl.com/solvers.html
- ^ Allen L Soyster (1974). „Technická poznámka - konvexní programování s omezenými omezeními a aplikacemi pro nepřesné lineární programování“. Operační výzkum. 21 (5): 1154–1157. doi:10.1287 / opre.21.5.1154.
- ^ Bertsimas, Dimitris; Sim, Melvyn (2004). „Cena robustnosti“. Operační výzkum. 52 (1): 35–53. doi:10.1287 / opre.1030.0065.
- ^ Aharon Ben-Tal a Arkadi Nemirovski (1998). "Robustní konvexní optimalizace". Matematika operačního výzkumu. 23 (4): 769–805. CiteSeerX 10.1.1.135.798. doi:10,1287 / bř. 23.4.769.
- ^ http://optirisk-systems.com/products_ampldevSP.asp
- ^ Higle, Julia L, Wallace, Stein W (2003). "Analýza citlivosti a nejistota v lineárním programování" (PDF). Rozhraní. 33 (4): 53–60. doi:10,1287 / inte.33.4.53.16370.CS1 maint: více jmen: seznam autorů (odkaz)