Simplex algoritmo
Matematikan, simplex algoritmoa programazio linealeko ebazkizunak aztertu eta ebazteko metodo bat da. Programazio linealeko metodoak helburuko funtzio linealak, murrizketa linealekin batera, hobereneratzo erabiltzen dira. Hobezina murrizketek osatzen duten eskualde egingarriko eremuan aurkitu behar denez, simplex metodoak erpin hauetan zehar egiten du soluzioaren bilaketa, ondoko erpin batera aldatzeak helburu funtzioaren balioren hobekuntza dakarren egiaztatuz. Erpinaren aldaketak soluzio hobea ekartzen ez badu, aztertzen ari den erpina hobezina izango da. Simplex metodoa George Dantzig matematikariak garatu zuen 1947 urtean.
Ebazkizuna
Programazio linealeko ebazkizun bat helburuko funtzio bat, zenbait aldagairen mendean, eta aldagai horiek har ditzaketen balioei buruz murrizketa linealak, ezberdintza moduan adierazita. Ohikoak aldagaiei buruzko ez-negatibotasun baldintzak. Murrizketek aldagaiek har ditzaketen balioez osaturiko eskualde egingarri bat definitzen dute. Helburuko funtzioa hoberenatu (maximotu edo minimotu) egiten duten aldagaien balioak edo hobezina eskualde egingarriko erpin batean kokatzen da eskualde egingarria politopo konbexu bat osatzen duenean. Eskualde egingarria bornatua ez denean, baliteke hobezina mugatua ez izatea.
Orohar, horrela planteatzen da ebazkizuna:
- murrizketa hauekin
Simplex algoritmoa garatzeko, alegiazko aldagai izenekoak sortzen dira, zuzenean esanahirik ez dutenak, horiek gehitu edo kenduta murrizketak ezartzen dituzten ezberdintzak berdintza bihurtzeko. Adibidez:
Ebazkizunak minimotzea eskatzen duenean, maximotze-ebazkizun bihurtzen da modu honetan:
Adibidea
Minimotze ebazkizuna baten bihurketa eta alegiazko aldagaien sorrera adibide honetan ikus daitezke:
|
|
Algoritmoa
Simplex algoritmoa taulaz taula garatu ohi da, taula bakoitzean balizko soluzio baten balorazio egin eta taula batetik bestera aldagai bat atera eta beste aldagai bat sartuz. Taula bateko balizko soluzioan parte hartzen duten aldagaien aldagai basiko deritze.
Adibide gisa, programazio linealeko ebazkizun hau planteatzen da:
- murrizketa hauekin
- .
Alegiazko aldagaiak sortuz:
- murrizketa hauekin
Abiapuntu gisa, eskualde egingarriko edozien erpin har daiteke. Kalkulu gehigarririk ez egiteko, eskualde egingarrian izaten den (x1=0, x2=0) puntutik has daiteke. Lehenengo taula honela eratzen da:
cB | B basea | cj | Konstanteak | Ratioak | |||
---|---|---|---|---|---|---|---|
5 | 8 | 0 | 0 | ||||
x1 | x2 | x3 | x4 | ||||
0 | x3 | 1 | 2 | 1 | 0 | 100 | 100/2=50 |
0 | x4 | 4 | 6 | 0 | 1 | 300 | 300/6=50 |
Ekarpenak | 5-1×0-4×0=5 | 8-2×0-6×0=8 | 0-1×0-0×0=0 | 0-0×0-0×0=0 | Z=0 |
Taulan murrizketa adina lerro osatzen dira. Lehenengo cB zutabean, aldagai basikoek helburuko funtzioan dituzten koefizienteak jartzen dira. Koefiziente hauek aldagai guztiak agertzen diren lerroaren gainean ere agertzen dira lagungarri gisa. Bigarren zutabean aldagai basikoak (baloratzen ari den soluzioan agertzen diren aldagaiak) agertzen dira. Ondorengo zutabeetan, murrizketetako koefizienteak agertzen dira aldagai guztietarako. Balio hauek guztiak jarri ondoren, basikoak ez diren aldagaietan sartu beharrekoa zein den erabaki behar da.
Horretarako, aldagai guztiek unitate gehigarri bakoitzeko helburuko funtzioa dakarten ekarpena kalkulatu behar dira, taulan erakutsi bezala, azken lerroan. Ekarpen positibo handiena dakarrena sartzen da basean. Lehenengo taula honetan x2 aldagaia sartu behar da basean.
Hurrengo pausoan, basetik zein aldagai atera behar den erabaki behar da. Horretarako, ratioak izeneko azken zutabea eratu behar da. Zutabe hau konstanteen zutabea zati, murrizketa-matrizean, basera sartu behar den aldagaiaren koefizienteen zutabea eginez kalkulatzen da. Kasu honetan, x2 aldagaia sartu behar denez, murrizketa-matrizeko bigarren zutabeko koefizienteak hartzen dira (2 eta 6). Ratio txikiena duen aldagaia atera behar da: kasu honetan, biek 50eko balio dutenez, edozein erretiratzen da, x4 esaterako.
Artikulu hau hobetzeko lanean ari da wikilari bat. Hori dela eta, beharbada hutsuneren batzuk izango dira edukian edo formatuan. Mesedez, aldaketa handi bat egin baino lehen, eztabaida ezazu haren lankide orrian edo artikuluaren eztabaida orrian, erredakzioa koordinatzeko. |