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
assignment problem (tsz. assignment problems)
- (informatika) hozzárendelési feladat
A hozzárendelési probléma egy klasszikus optimalizálási probléma, amelyben adott két halmaz (pl. munkások és feladatok), és célunk az, hogy egyetlen hozzárendelést végezzünk a két halmaz elemei között oly módon, hogy a hozzárendelés teljes költsége minimális legyen (vagy értéke maximális).
Matematikailag a hozzárendelési probléma egy n × n-es mátrixon értelmezhető, ahol minden cella azt mutatja meg, hogy egy adott “személy–feladat” páros költsége mennyi. Ezt a mátrixot költségmátrixnak nevezzük.
Adott:
- Egy n × n-es költségmátrix:
, ahol
: munkás sorszáma
: feladat sorszáma
: az
-edik munkás
-edik feladathoz történő hozzárendelésének költsége
Cél:
- Hozzárendelni minden munkához pontosan egy feladatot, és minden feladathoz pontosan egy munkást, úgy hogy az összköltség
minimális legyen, ahol
a hozzárendelést jelentő permutáció.
3. Példák a valós életből
- Gyártás: gépkezelők hozzárendelése gyártósorokhoz
- Szállítmányozás: járművek hozzárendelése útvonalakhoz
- Személyzetmenedzsment: dolgozók kiosztása műszakokra
- Kép-felismerés: objektumok párosítása két képkocka között
- Sportversenyek: játékosok párosítása
4. Megoldási módszerek
✅ 1. Hungarian algoritmus
- A legismertebb és leghatékonyabb módszer négyzetes hozzárendelési problémákra
- Polinomiális időben fut: O(n³)
- Sor- és oszlopnormalizálással, valamint nullák lefedésével működik
✅ 2. Lineáris programozás
- Az LP modellben minden hozzárendelés egy bináris változó
- A célfüggvény minimalizálja az összköltséget
✅ 3. Brute-force keresés
- Minden lehetséges permutáció kipróbálása – O(n!), csak kis méretű problémákra
✅ 4. Greedy algoritmus
- Minden lépésben a legkisebb költségű hozzárendelést választja
- Nem garantálja az optimális megoldást
5. Hungarian algoritmus röviden
- Soronként kivonjuk a legkisebb elemet minden sorból.
- Oszloponként kivonjuk a legkisebb elemet.
- Lefedjük a nullákat a lehető legkevesebb vonallal.
- Ha az összes nullát le tudtuk fedni n vonallal, akkor kész vagyunk.
- Ha nem, akkor a legkisebb nem fedett értéket kivonjuk a nem lefedett elemekből, és hozzáadjuk a kétszeresen fedettekhez.
Ez új nullákat hoz létre, és ismételhetjük az eljárást, amíg nem találunk teljes hozzárendelést.
6. A hozzárendelési probléma LP alakja
A változók:
Célfüggvény:
Mellékfeltételek:
7. Nem négyzetes hozzárendelési probléma
Mi történik, ha a munkások és feladatok száma nem egyenlő?
- Adjunk hozzá „dummy” sorokat vagy oszlopokat nulla költséggel
- Így egy négyzetes mátrixot kapunk, amit a Hungarian algoritmus is kezel
8. Maximális értékű hozzárendelés
Ha nem költséget minimalizálunk, hanem hasznot maximalizálunk, például:
- Melyik dolgozó végezne el egy feladatot a leghatékonyabban
- Melyik ajánlott film a legjobban illik egy nézőhöz
Ekkor a mátrixból minden értéket negálni vagy normalizálni kell, hogy a maximális probléma átalakítható legyen minimálisra.
9. Speciális esetek
- Több munkás egy feladatra: általánosítás (Generalized Assignment Problem)
- Munkásoknak korlátozásaik vannak: tilos bizonyos feladatokat végezni → ezeket nagyon nagy (∞) költséggel adjuk meg
- Időalapú hozzárendelés: feladatok különböző időpontban kezdődnek
- Dinamikus hozzárendelés: valós időben kell dönteni (pl. online rendelés kiszállítás)
10. Komplexitás és skálázás
- A hozzárendelési probléma NP-teljes általános esetben (pl. kapacitáskorlátokkal, időzítéssel), de az alapeset (n×n mátrix) polinomiális időben megoldható
- Nagy dimenziójú esetekre specializált implementációk szükségesek (pl. GPU, párhuzamosítás)
11. Példa
Tegyük fel, hogy a költségmátrix a következő:
|
Feladat 1
|
Feladat 2
|
Feladat 3
|
Dolgozó 1
|
9
|
2
|
7
|
Dolgozó 2
|
6
|
4
|
3
|
Dolgozó 3
|
5
|
8
|
1
|
A cél: minden dolgozót úgy hozzárendelni egy feladathoz, hogy az összköltség minimális legyen.
Lehetséges megoldás:
- Dolgozó 1 → Feladat 2 (2)
- Dolgozó 2 → Feladat 1 (6)
- Dolgozó 3 → Feladat 3 (1) Összköltség = 2 + 6 + 1 = 9
12. Összefoglalás
A hozzárendelési probléma a gyakorlatban gyakori, formálható és hatékonyan megoldható optimalizálási probléma, amely:
- Egy párosítás a minimális (vagy maximális) összköltség elérése érdekében
- Négyzetes mátrixra épül, de kiterjeszthető általánosabb esetekre is
- A Hungarian algoritmus segítségével gyorsan és pontosan megoldható
- A lineáris programozás módszertanában is kiemelt helyet kap