Ugrás a tartalomhoz

cutting-plane method

A Wikiszótárból, a nyitott szótárból


Főnév

cutting-plane method (tsz. cutting-plane methods)

  1. (informatika) A cutting-plane módszer egy klasszikus iteratív eljárás, amelyet egészértékű (integer) vagy vegyes egészértékű (mixed-integer) lineáris programozási feladatok megoldására használnak. Alapötlete az, hogy először megoldjuk a feladat relaxált (egészértékűségi feltételek nélküli) változatát lineáris programozással (LP), majd fokozatosan olyan síkokat („vágásokat”) adunk a megoldáshoz, amelyek kizárják a nem egész értékű megoldásokat, de az összes egész megoldást megtartják. Ezáltal szűkítjük a megoldási tartományt, amíg el nem érünk egy egészértékű optimális megoldást.



🧮 A módszer matematikai alapja

Legyen adott az alábbi lineáris program:

Ahol:

  • : az ismeretlenek nemnegatív egészek,
  • egy valós mátrix,
  • , .

A relaxált változat:



📐 Lépések – Hogyan működik a Cutting-Plane módszer?

  1. LP relaxáció megoldása: Megoldjuk az LP-t egész számok megkötése nélkül.
  2. Megvizsgáljuk, hogy az optimális megoldás egész szám-e:
    • Ha igen → vége.
    • Ha nem → megyünk tovább.
  3. Vágás (cut) generálása: Olyan lineáris egyenlőtlenséget konstruálunk, amelyet az aktuális nem egészértékű megoldás nem elégít ki, de az összes lehetséges egész megoldás igen.
  4. Egyenlőtlenség hozzáadása a korlátozásokhoz: Az új korlátozással új LP-t kapunk.
  5. Ismétlés: A fenti lépéseket ismételjük, amíg egész megoldást nem kapunk.



📏 Mi az a vágás?

A vágás olyan egyenlőtlenség, amely:

  • Kizárja a nem kívánt (nem egész) LP-megoldást.
  • Megőrzi az eredeti egész megoldásokat.
  • Formálisan: ha , és , akkor egy vágás olyan egyenlőtlenség, amely , de minden egész esetén teljesül.



🧠 A legismertebb vágások: Gomory vágások

A Gomory-féle cutting-plane módszer az egyik legismertebb algoritmus. A simplex tábla alapján generál vágásokat, mikor a nem egész változók értékei frakciókat tartalmaznak.

Gomory-féle frakcionális vágás:

  1. Megkeressük azt a sort a simplex táblában, ahol a jobboldali érték (bázismegoldás) nem egész.
  2. Az ebből a sorból származtatott egyenlőtlenség kizárja az aktuális frakcionális megoldást.
  3. Hozzáadjuk ezt az egyenlőtlenséget a korlátozásokhoz.



🛠️ Példa

Tegyük fel, hogy megoldottuk az LP-t, és a megoldás:

Ez nem elfogadható, mert nem egész. A Gomory-vágás a simplex tábla alapján előállít egy olyan új feltételt (pl. ), amely kizárja ezt az aktuális megoldást.



📚 Előnyök

  • Pontos módszer: ha végtelen számú vágás hozzáadását engednénk meg, az egész számú megoldáshoz konvergál.
  • LP-algoritmusokkal kompatibilis: a vágások után ismét LP-t oldunk meg.
  • Szemléletes geometria: a feasible régiót fokozatosan „levágjuk”.



🧱 Hátrányok

  • Numerikus instabilitás: frakcionális együtthatók miatt.
  • Lassú konvergencia: sok vágás szükséges lehet.
  • Nagy LP-táblák: minden új vágás új sor a mátrixban → nő a számítási idő.



🧮 Összevetés más módszerekkel

Módszer Jellemzők
Cutting-plane Geometriai levágások, LP újraszámítás
Branch and Bound Teljes fa bejárás, részproblémák felosztása
Branch and Cut Cutting-plane + Branch and Bound kombinációja
Heurisztikus módszerek Gyors, de nem garantáltan optimális



🔧 Cutting-plane programozási megoldásban

A vágások számítása általában LP-szoftverekre (pl. CPLEX, Gurobi) van bízva. De manuálisan is kiszámolhatóak a frakcionális részek alapján.

# Egyszerű példa egy Gomory-vágásra
x1 = 2.5
vagas = x1 - int(x1)  # 0.5 → ez alapján készítjük a vágást

🧾 Összefoglalás

A cutting-plane módszer egy hatékony és elméletileg megalapozott technika az egészértékű programozásban. Bár a modern megoldók gyakran kombinálják más módszerekkel, például Branch and Bound-dal, a vágások szerepe továbbra is központi az optimalizálásban. A módszer lépésről lépésre pontosítja az LP-megoldást az egész megoldás felé, mindig megőrizve a lehetséges integer megoldásokat.