From 418470ffc8f62fef965d4bedae776202af992afa Mon Sep 17 00:00:00 2001 From: dirk Date: Wed, 25 Apr 2007 10:56:38 +0200 Subject: [PATCH] ADA* added try java -Xmx100M schiebe adastern --- schiebe.java | 297 +++++++++++++++++------------------------------------------ 1 file changed, 84 insertions(+), 213 deletions(-) diff --git a/schiebe.java b/schiebe.java index a5b47cf..e64f7f7 100644 --- a/schiebe.java +++ b/schiebe.java @@ -145,8 +145,8 @@ class schiebe { //System.out.println(argv.length); if( argv.length > 0) { - if( argv[0].equals("tiefensucheexp") ) { - tiefensucheexp(); + if( argv[0].equals("adastern") ) { + adastern(); } else if( argv[0].equals("asternsimpel") ) { asternsimpel(); } else if (argv[0].equals("dfs") ) { @@ -325,226 +325,97 @@ class schiebe { } } - - //deprecated!!! - private static void tiefensucheexp() { - int beste_tiefe = 32786; - int max_tiefe = 0; - - Knoten ka=null, kb=null, kc=null, kd=null, ke=null, - kf=null, kg=null, kh=null, ki=null, kj=null, - kk=null, kl=null, km=null, kn=null, ko=null, - kp=null, kq=null, kr=null; - - LinkedList knotenListeA = new LinkedList(); - LinkedList knotenListeB = new LinkedList(); - LinkedList knotenListeC = new LinkedList(); - LinkedList knotenListeD = new LinkedList(); - LinkedList knotenListeE = new LinkedList(); - LinkedList knotenListeF = new LinkedList(); - LinkedList knotenListeG = new LinkedList(); - LinkedList knotenListeH = new LinkedList(); - LinkedList knotenListeI = new LinkedList(); - LinkedList knotenListeJ = new LinkedList(); - LinkedList knotenListeK = new LinkedList(); - LinkedList knotenListeL = new LinkedList(); - LinkedList knotenListeM = new LinkedList(); - LinkedList knotenListeN = new LinkedList(); - LinkedList knotenListeO = new LinkedList(); - LinkedList knotenListeP = new LinkedList(); - LinkedList knotenListeQ = new LinkedList(); - LinkedList knotenListeR = new LinkedList(); - - - knotenListeA = trs.expandKnoten(start); - System.out.println(knotenListeA.size()); - for (int a=0; a 0) { - ka= knotenListeA.get(a); - if (ka.is(ziel)) - System.out.println("GEFUNDEN A"); - knotenListeB = trs.expandKnoten(ka); - - for (int b=0; b schichtListe= new LinkedList(); + LinkedList pfad; + schichtListe.add(Knoten.getStart()); + Knoten.setHeuristikTyp(Knoten.HEURISTIK_LUFT); + LinkedList expandListe= null; + boolean tiefe8=false; + while (!tiefe8) { + Knoten k = schichtListe.poll(); + expandListe = trs.expandKnoten(k); + pfad = testZiel(expandListe,true); + if (pfad.size()> 0 && pfad.size()-1 < maxTiefe) return pfad.size()-1; + if (expandListe.getFirst().get_tiefe()<8) { - kb=knotenListeB.get(b); - if (kb.is(ziel)) - System.out.println("GEFUNDEN B"); - knotenListeC = trs.expandKnoten(kb); - - for (int c=0; c expand2Liste = (LinkedList)expandListe.clone(); + for (Knoten t:expand2Liste) { - kc=knotenListeC.get(c); - if (kc.is(ziel)) - System.out.println("GEFUNDEN C"); - knotenListeD = trs.expandKnoten(kc); - - for (int d=0; d maxTiefe) { - kd=knotenListeD.get(d); - if (kd.is(ziel)) - System.out.println("GEFUNDEN D"); - knotenListeE = trs.expandKnoten(kd); - - for (int e=0; - e= fortschritt) + { + if (fortschritt%10 == 0) System.out.print("*"); + else System.out.print("."); + fortschritt++; + } + LinkedList knotenListe = new LinkedList(); + knotenListe.addAll(trs.expandKnoten(k)); + Knoten l = null; + while (knotenListe.size()>0 && knotenListe.getFirst().get_tiefe()<15 ){ + l = knotenListe.poll(); + expandListe = trs.expandKnoten(l); + pfad = testZiel(expandListe,true); + if (pfad.size()> 0 && pfad.size()-1 < maxTiefe) return pfad.size()-1; + //knoten löschen die zu weit vom ziel entfernt sind + LinkedList expand2Liste = (LinkedList)expandListe.clone(); + for (Knoten t:expand2Liste) + { + if (t.get_heuristik() > maxTiefe) + { + expandListe.remove(t); + } + } + knotenListe.addAll(expandListe); + Collections.sort(knotenListe); + } + } + return 0; } + + } -- 2.11.4.GIT