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
integer programming (tsz. integer programmings)
- (informatika) egészértékű programozás
A egészértékű programozás (angolul: Integer Programming, röviden IP) az optimalizálási problémák egyik speciális osztálya, amelyben a döntési változóknak egész számoknak kell lenniük. Ez a megszorítás rendkívül fontos olyan valós életbeli problémák modellezéséhez, ahol a változók nem vehetnek fel tört értéket — például darabszámok, 0–1 döntések, gépek száma, stb.
Mivel a változók diszkrét értékeket vehetnek fel, az IP-problémák megoldása jellemzően sokkal nehezebb, mint a folytonos (valós számokon értelmezett) lineáris programozási (LP) problémáké. A legtöbb IP-probléma NP-nehéz, azaz nem ismert polinomiális idejű megoldásuk.
1. Alapfogalom
Egy általános egészértékű programozási feladat formálisan így néz ki:
Cél:
Feltételek:
Ahol:
→ döntési változók (egész számok)
,
,
→ paraméterek
→ célfüggvény (értéke maximalizálandó vagy minimalizálandó)
2. IP típusai
a) Tiszta egészértékű programozás (Pure IP)
Minden változó csak egész szám lehet.
b) Vegyes egészértékű programozás (Mixed Integer Programming – MIP vagy MILP)
Csak néhány változónak kell egész számnak lennie, mások lehetnek valós számok is.
c) Bináris vagy 0–1 programozás
A változók csak 0 vagy 1 értéket vehetnek fel → döntési problémák, logikai modellek.
3. Miért fontos az egészértékűség?
Valóságban sok döntés nem értelmezhető törtszámként:
- Nem gyárthatunk 3.7 autót → csak 3 vagy 4
- Nem lehet 1.2 dolgozónk → csak egész számú személy
- Egy döntés vagy megtörténik (1), vagy nem (0)
4. Példa
Gyártási feladat:
- Termék A egységhozam: 10, időigény: 5 óra
- Termék B egységhozam: 7, időigény: 3 óra
- Összesen 40 munkaóra áll rendelkezésre
Cél: Maximalizálni a nyereséget Feltétel: Ne gyártsunk tört darabszámokat
Modell:
: termék A darabszáma
: termék B darabszáma
Ez egy egészértékű programozási feladat. LP-relaxációval (az egészség elhagyásával) megoldható gyorsan, de az optimális LP-megoldás nem biztos, hogy egész, ezért speciális módszerekre van szükség.
5. Megoldási módszerek
Mivel az IP-problémák nem oldhatók meg közvetlenül a klasszikus lineáris programozási módszerekkel, speciális algoritmusok szükségesek:
a) LP-relaxáció
Elhagyjuk az egészértékűségi korlátokat, és megoldjuk LP-vel. Ez ad egy felső vagy alsó korlátot, de nem biztosít érvényes megoldást.
b) Branch and Bound (B&B)
A megoldási tartományt részekre bontjuk (ágaztatás), és kizárjuk a rosszabb régiókat (becslések alapján). Ez az egyik legelterjedtebb módszer.
c) Cutting Plane Method
Új lineáris egyenlőtlenségeket adunk a modellhez, amelyek kizárják a tört LP-megoldásokat, de az egész megoldásokat nem.
d) Branch and Cut
A B&B és a vágások kombinációja – a legmodernebb módszer.
Közelítő, de gyors megoldások: genetikus algoritmus, tabu search, simulated annealing.
6. Szoftverek
A modern optimalizálási szoftverek hatékonyan kezelik az IP-problémákat:
- CPLEX
- Gurobi
- SCIP
- CBC (COIN-OR)
- GLPK
- Excel Solver (egyszerűbb IP-re is alkalmas)
7. Nehézségek
- NP-nehéz problémák: A számítási idő exponenciálisan nőhet.
- Megoldáskeresés hosszadalmas lehet nagy változószám és sok korlát mellett.
- Optimalitás bizonyítása: Nem elég jó megoldást találni — azt is bizonyítani kell, hogy nincs jobb.
8. IP tipikus alkalmazásai
a) Logisztika és szállítás
- Raktárkiosztás, járműútvonal optimalizálás (pl. TSP)
b) Gyártás
- Gépidő és nyersanyag beosztás
- Ütemezés
c) Hálózattervezés
- Minimális lefedő fa (MST), hálózati áramlás (flow)
d) Döntéshozatal
- Választási problémák, projektkiválasztás
e) Erőforrás-kezelés
- Munkaerő beosztás, létszámoptimalizálás
9. Bináris IP (0–1 programozás)
Speciális eset: a változók csak 0 vagy 1 értéket vehetnek fel.
Például:
: az adott projektet kiválasztjuk
: az adott projektet kihagyjuk
Ez a logikai döntéshozatal erőteljes eszköze.
10. Összefoglalás
Az egészértékű programozás egy nélkülözhetetlen eszköz a valós életben előforduló optimalizálási problémák megoldására, ahol a változók csak egész értékeket vehetnek fel.
Fő jellemzői:
- A változók diszkrétek, nem folytonosak
- A megoldás keresése sokkal nehezebb, mint LP-nél
- Speciális algoritmusok (Branch and Bound, Cutting Plane, Branch and Cut) szükségesek
- Számos iparági alkalmazása van
Bár a megoldás nem triviális, a modern számítógépes szoftverek és algoritmusok révén ma már rendkívül összetett IP-feladatokat is hatékonyan tudunk kezelni.