Előadó: Dr. Várterész Magdolna
2.3. Probléma-redukciós reprezentáció
Nagyon gyakori a feladat egyszerűsítése, részproblémákra bontása.
p: | a megoldandó probléma. Ezt valahogy le kell írni. Ez akár az állapottérrel | |
is leírható, de most nem az a fontos. Ehhez a problémához hasonló problémákat keresünk. | ||
P: | probléma-halmaz (ebbe gyűjtjük össze őket) | |
p ![]() |
ennek a mi problémánk is eleme lesz | |
e ![]() ![]() |
egy ismert probléma is legyen benne! Ez az egyszerű probléma. | |
e: | 1. meg tudjuk oldani, ismerjük a megoldását | |
2. meg tudjuk mondani, hogy nem megoldható | ||
Az induló problémát addig kellene gyúrni, alakítani, míg csupa egyszerű probléma nem állna elő. | ||
r ![]() |
redukciós operátor |
dom(r) ![]() |
(egy problémaosztálybeli problémát tud egyszerűsíteni) | |
van előfeltétele is! | ||
r: P ![]() |
P részhalmazainak a halmazába képez tehát | |
r(p) = {p1,...,pn} | részproblémákra bont, egyszerű részekre
bont (n ![]() |
|
<P,p,E,R> | ezzel a négyessel tudjuk megadni a probléma probléma-redukciós | |
reprezentációját | ||
Def.:
P1 = {p1,...,pi-1,pi,pi+1,...,pn}
P2 = {p1,...,pi-1,q1,q2,...,qm,pi+1,...,pn}
P1-ből egy lépésben (közvetlenül) redukálható P2, ha van:
r
![]() ![]() |
P1 ![]() |
Def:
A P' problémahalmazból a P'' redukálható, ha van:
Mikor megoldható? Ha a kezdőproblémából (mint 1 elemű problémahalmazból) csupa megoldható egyszerű problémát tartalmazó halmazt redukálhatunk.
Megoldás: az azt megvalósító ri redukciós operátorsorozat.
Megint egy keresési feladattal állunk szemben: egy operátorsorozatot keresünk. Itt is lehet költség, redukciós operátor alkalmazási költsége.
Megoldás költsége: a megoldásban szereplő operátorsorozat alkalmazási költségeinek összege.
Problémánk probléma-redukciós reprezentációját a <P,p,E,R> négyessel tudjuk megadni.
q ![]() |
![]() |
n ![]() |
egy problémát egy csúccsal jelölünk | |
p ![]() |
![]() |
s ![]() |
start -csúcs |
|
e ![]() ![]() |
![]() |
t ![]() ![]() |
terminális csúcsok |
r ![]() |
||
r(q) = {q1,...,qk} | k ![]() |
|
![]() |
||
r'(q) = {z1,z2,...,zl} | ||
1 csúcsból annyi élköteg indul, ahány redukciós operátort alkalmazunk, s egy élköteg annyi élből áll, ahány részprobléma állt elő.
ÉS, AND élköteg | minden részproblémát egy élkötegben kell megoldani |
VAGY, OR élköteg | vagy az egyik redukció segítségével bontom |
részproblémákra, vagy a másikkal | |
<G,s,T> | és/vagy problémaredukciós (reprezentációs) gráf, ahol: |
G: gráf | |
s: |
|
T: terminális csúcs(ok) | |
hiperút: | olyan összefüggő része az és/vagy gráfnak, melyben minden |
csúcsból legfeljebb 1 ÉS-élköteg indul ki. | |
(Ha 1 ÉS-élköteget 1-nek veszünk, akkor az út fogalmához | |
jutunk). |
A hiperút a start
csúcsból indul, s a levelek: csupa megoldható
terminális levelek.
A megoldást egy olyan hiperút szemlélteti, mely a start
csúcsból indul, s levelei csupa megoldható terminális csúcsok. A megoldáskeresés
során egy általánosabb gráfban egy részgráfot keresünk.
k(n, {n1,...,nk}) | redukciós operátor alkalmazási költsége | |
![]() |
,ahol K - csúcshalmaz |
æ
|
0, ha n ![]() |
|
g(n,K) =
|
í
|
|
è
|
![]() |
|
æ
|
c(n) , ha n ![]() |
|
k(n,{}) =
|
í
|
|
è
|
![]() |
Tiszta ÉS-VAGY gráf: olyan gráf, amelyben minden csúcsból csak ÉS vagy csak VAGY élkötegek indulnak ki.
Például adott a következő ÉS-VAGY gráf:
Elérhető, hogy csak ÉS vagy csak VAGY élkötegeket tartalmazzon:
Fiktív csúcsokat kell beiktatni. Annyi kell, ahény VAGY élköteg indul ki. Mellette feltüntetve: melyik redukciós operátorral kaptuk.
Megoldáskereső módszerek: