szó jelentését keresi. A DICTIOUS-ban nem csak a
szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a
szót egyes és többes számban mondani. Minden, amit a
szóról tudni kell, itt található. A
szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. A
és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.
Főnév
simplex algorithm (tsz. simplex algorithms)
- (informatika) szimplex algoritmus
A Simplex algoritmus egy klasszikus iteratív módszer, amit lineáris programozási feladatok (LP feladatok) megoldására használnak. A lineáris programozás célja egy lineáris célfüggvény optimalizálása (maximalizálása vagy minimalizálása), lineáris egyenlőtlenségekkel korlátozott feltételek mellett.
A Simplex algoritmust George Dantzig fejlesztette ki 1947-ben, és azóta is a legszélesebb körben használt módszer a gyakorlatban LP-problémák megoldására.
2. Lineáris programozás (LP) általános alakja
Cél:
Maximalizálni:
Feltételek (korlátok):
Ez geometriailag egy konvex sokszög (polytop), aminek csúcspontjai lehetnek az optimális megoldások.
3. A Simplex algoritmus lényege
A Simplex nem próbál végig minden pontot, hanem a megengedett tartomány (megoldástér) szélein „sétál végig” egy adott irányban. A megoldás mindig egy sarkalatos ponton (vertex) van, ezért csak ezek vizsgálata szükséges.
Ötlet:
- Kezdj egy bázismegoldással (pl. ahol a legtöbb változó nulla)
- Válassz egy javító irányt, amely növeli a célfüggvény értékét
- Haladj ebben az irányban a legközelebbi sarkpontig
- Ismételd, amíg nem lehet tovább javítani
Az egyenlőtlenségeket egyenlőséggé alakítjuk szabad (slack) változók hozzáadásával:
Így kapunk egy egyenletrendszert, amit mátrix alakban írhatunk fel.
5. Simplex tábla (Simplex tableau)
Ez egy táblázat, amely tartalmazza:
- a változók együtthatóit,
- a célfüggvény együtthatóit,
- a megoldás aktuális értékeit.
Példa (egyszerűsített):
Alapváltozó
|
x₁
|
x₂
|
s₁
|
s₂
|
RHS
|
s₁
|
2
|
1
|
1
|
0
|
14
|
s₂
|
4
|
3
|
0
|
1
|
28
|
Z (cél)
|
-3
|
-2
|
0
|
0
|
0
|
6. Iteráció lépései
- Válaszd ki a belépő változót: az a nem-alapváltozó, amelynek legnagyobb negatív együtthatója van a célfüggvény sorában.
- Válaszd ki a kilépő változót: ez az a sor, amelyre a
RHS / belépő oszlop
érték a legkisebb pozitív → pivot sor.
- Pivot művelet: alakítsd át a táblát úgy, hogy a belépő változó együtthatója 1 legyen, és a többieké 0.
- Ismételd, amíg nincs negatív együttható a célfüggvény sorában → elértük az optimumot.
7. Példa feladat
Maximalizáld:
Feltételek:
Átalakítva slack változókkal:
Simplex táblázattal iterálva eljuthatunk a megoldáshoz:
8. Milyen típusú problémák oldhatók meg vele?
- Gyártástervezés (termelési egységek optimalizálása)
- Szállítási problémák (mint a szállítási feladat)
- Költségminimalizálás
- Erőforrás-elosztás
9. Problémák és finomságok
- Degeneráció: ha egy alapszinten több változó is nulla, az algoritmus “beragadhat”.
- Ciklus: elméletileg előfordulhat, de ritka.
- Több optimális megoldás: ha több alapszint adja ugyanazt az optimális értéket.
- Nincs megoldás: ha az LP modell nem korlátos vagy ellentmondásos.
10. Előnyök és hátrányok
✅ Előnyök
- Determinista és pontos
- Átlátható és jól követhető lépésről lépésre
- Gyakorlati LP problémákban nagyon hatékony
❌ Hátrányok
- Elméletben exponenciális idő, de gyakorlatban gyors
- Nagyméretű problémák esetén jobb a belső-pontos (interior point) módszer
11. Alternatívák
- Revised Simplex: memóriában hatékonyabb változat
- Dual Simplex: ha a kezdeti megoldás nem megengedett
- Interior Point: más módszer LP-re, különösen nagy problémák esetén
12. Összefoglalás
A Simplex algoritmus egy megbízható, matematikailag elegáns eszköz, amely:
- LP problémákra optimális megoldást keres,
- Geometriailag a csúcspontok mentén lépked,
- Iteratív táblázatkezeléssel működik,
- Nagyon széles körben használják gazdaságban, iparban és kutatásban.