130 likes | 269 Vues
Lösungshinweise zu Blatt 8 und Blatt 9. GIN2-SS04. Der Baum zum Zustandsgraphen. GE. K0. OB. E. K1. K2. D. GE. DUI. GE. MH. K3. K4. K5. K6. K7. DUI. D. MH. OB. E. E. DUI. E. OB. E. OB. K8. K9. K10. K11. K12. K13. K14. K15. K16. K17. K18. DUI. E. DUI. E.
E N D
Lösungshinweise zu Blatt 8 und Blatt 9 GIN2-SS04
Der Baum zum Zustandsgraphen GE K0 OB E K1 K2 D GE DUI GE MH K3 K4 K5 K6 K7 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH K40 K28 K34
Tiefensuche mit Wiederholungen GE K0 OB E K1 K2 D GE DUI GE MH K3 K4 K5 K6 K7 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH K40 K28 K34 Tiefensuche (mit Wiederholungen, alle Lösungen): K0,K1,K3,K8,K9,K21,K22,K10,K23,K24,K4,K11,K25,K26,K12,K27,K28, K29,K2,K5,K6,K15,K36,K37,K38,K16,K39,K40,K41,K7,K17,K42,K43,K18,K44,K45,K46 Anmerkungen: Achtung, Knoten mit Zustand D werden nicht expandiert, also folgt nach K8 K9 und nach K5 K6.
Breitensuche mit Wiederholungen GE K0 OB E K1 K2 D GE DUI GE MH K3 K4 K5 K6 K7 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH K40 K28 K34 Breitensuche (mit Wiederholungen, alle Lösungen): K0,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K15,K16,K17,K18,K21,K22,K23,K24,K25,K26,K27,K28,K29,K36,K37,K38,K39,K40,K41,K42,K43,K44,K45,K46 Anmerkungen: Achtung, Knoten mit Zustand D werden nicht expandiert, also fehlen K19,K20,K13,K14,K30-K35
Tiefensuche ohne Wiederholungen GE K0 OB E K1 K2 D GE DUI GE MH K3 K4 K5 K6 K7 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH K40 K28 K34 Tiefensuche ohne Wiederholungen, Variante 2: K0,K1,K3,K8,K9,K21 (Variante 2: Erst aufrufen, dann kontrollieren),K22, K10 (nicht K23-K24),K4,K2 -- Variante 2 macht für Tiefensuche nicht wirklich Sinn Tiefensuche ohne Wiederholungen, Variante 1 (also vorm Aufruf kontrollieren): K0,K1,K3,K8,K9, (nicht K21) K22 Beide Verfahren finden immer eine Lösung, sinnvoller ist Variante 1 (weil wir ja ohnehin alles gleich anschauen)
Tiefensuche ohne Wiederholungen, pfadweise Betrachtung GE K0 OB E K1 K2 D GE DUI GE MH K3 K4 K5 K6 K7 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH K40 K28 K34 Wenn man alle Lösungen finden will, dann taugen die beiden bisherigen Varianten nicht. Man muss sich dann auf das Vermeiden von Wiederholungen in dem Pfad, den man grade betrachtet, konzentrieren, d.h. ein Aufruf für ein Kind erfolgt dann nicht, wenn es den gleichen Zustand repräsentiert, wie ein Vorgängerknoten. Implementieren kann man das, in dem man den bisherigen Pfad als Parameter beim Aufruf von Tiefensuche mit übergibt. Das ist auch nützlich, wenn man die Wege zu den gefundenen Zielknoten ausgeben will. Tiefensuche ohne Wiederholungen, pfadweise Betrachtung: K0,K1,K3,K8,K9,K22,K2,K5,K6,K15,K36,K38
Breitensuche ohne Wiederholungen GE GE GE K0 OB OB OB E E E K1 K2 D D D GE GE GE DUI DUI DUI DUI GE GE GE MH MH MH K3 K4 K5 K6 K7 DUI D D D MH MH MH OB E E DUI DUI DUI E E E OB E OB OB OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH K40 K28 K34 Breitensuche (ohne Wiederholungen, Variante 2): K0,K1,K2,K3,K4 (aber nicht expandieren!),K5,K6,K7 (nicht expandieren),K8,K9,K10 (K9,K10 nicht expandieren, K8 natürlich auch nicht, ist Ziel), (nicht K11,K12!), K15,K16 (beide nicht expandieren) Ende.
Der Baum zum Zustandsgraphen mit Wegkosten GE K0 0 OB E K1 20 K2 15 D GE DUI GE MH 27 50 40 K3 30 K4 K5 K6 K7 30 44 43 40 60 55 58 85 40 39 50 45 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH 55 50 55 56 53 54 50 K40 K28 K34 74 54 51 Einige der später nicht benutzten Kosteninformationen auf der letzten Ebene habe ich ausgelassen.
Best-First mit Wegkosten GE K0 0 OB E K1 20 K2 15 D GE DUI GE MH 27 50 40 K3 30 K4 K5 K6 K7 30 44 43 40 60 55 58 85 40 39 50 45 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH 55 50 55 56 53 54 50 K40 K28 K34 74 54 51 Best-First (= Uniform Cost), achten auf Wiederholungen mit Variante 2: K0,K2,K1,K6,K7 (nicht expandieren), K3 (oder K3,K7),K16 (nicht expandieren),K4 (nicht expandieren),K10 (nicht expandieren), K15 (nicht expandieren)(oder K15,K10,K4 oder...), K9 (nicht expandieren), K8 Es kann für sie leichter sein, jeweils die Knoten in der Priorityliste und in der Closed-Liste mit aufzuschreiben, das vermeidet Flüchtigkeitsfehler (gilt auf für andere Verfahren, die Wiederholungen vermeiden)
Greedy mit Backtracking und ohne Wiederholungen (Variante 1) GE K0 0 OB E K1 20 K2 15 D GE DUI GE MH 27 50 40 K3 30 K4 K5 K6 K7 30 44 43 40 60 55 58 85 40 39 50 45 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH 55 50 55 56 53 54 50 K40 K28 K34 74 54 51 Greedy (Schrittkosten): K0,K2,K6,(nicht K16, weil Wiederholung),K15,K38 (von dort würde es ohnehinnicht weitergehen, auch wenn der Baum größer wäre), (nicht K37), K36 (Ziel) Variante 2 macht hier keinen Sinn (weil es keine Warteschlange gibt, analog zu Tiefensuche)
Iterative Deepening mit Wiederholungen GE K0 OB E K1 K2 D GE DUI GE MH K3 K4 K5 K6 K7 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH K40 K28 K34 Iterative Deepening Search (IDS): K0;K0,K1,K2;K0,K1,K3,K4,K2,K5 Es kann Sinn machen, Wiederholungen in einem Pfad zu vermeiden (s. Tiefensuche), dann wäre die Knoten- folge: K0;K0,K1,K2;K0,K1,K3, (nicht K4, weil Wiederholung auf dem Pfad GE>OB>GE),K2,K5
A* GE K0 0+30 OB E K1 20+24 K2 15+20 D GE DUI GE MH 27+16 50+0 40+30 K3 30+14 K4 K5 K6 K7 30+30 44+0 43+16 40+24 60 55 58 85 40+14 39+20 50 45 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH 55 50 55 56 53 54 50 K40 K28 K34 74 54 Einige der später nicht benutzten Kosteninformationen und heuristischen Information habe ich weggelassen. A* mit Wiederholungen: K0,K2,K6,K1,K3,K8 (Ziel mit Wert 44 = Optimum gefunden) A* ohne Wiederholungen: K0,K2,K6,K1,K3,K8 (identisch in diesem Fall. Da Variante 2 gewollt war, wäre hier sogardie PQueue identisch, also wäre z.B. K16 enthalten – nicht aber bei Variante 1!) 51
Greedy mit heuristischen Infos und Backtracking GE K0 0+30 OB E K1 20+24 K2 15+20 D GE DUI GE MH 27+16 50+0 40+30 K3 30+14 K4 K5 K6 K7 30+30 44+0 43+16 40+24 60 55 58 85 40+14 39+20 50 45 DUI D MH OB E E DUI E OB E OB K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 DUI E DUI E DUI GE D MH OB MH OB DUI GE D GE D GE D GE D DUI GE D MH GE K26 K36 K38 K22 K27 K35 K37 K39 K23 K24 K25 K19 K20 K21 K31 K44 K46 K29 K32 K33 K41 K42 K43 K45 K30 MH MH MH 55 50 55 56 53 54 50 K40 K28 K34 74 54 Einige der später nicht benutzten Kosteninformationen und heuristischen Information habe ich weggelassen. Greedy (Verwendet nur h): K0,K2,K5 (Ziel mit Wert 50 gefunden) Greedy (Verwendet h+g = f): K0,K2,K6,K15,K38 (von dort ginge es nicht so oder so nicht weiter), (K37 nicht weil Wiederhokung), K36 (Ziel mit Wert 54 gefunden) 51