Package fmg.fmg8.graphVis.graph

Examples of fmg.fmg8.graphVis.graph.Knoten


        LinkedList<Integer> seq = new LinkedList<Integer>();
        ArrayList<Knoten> alleKnot
            = new ArrayList<Knoten>(this.holAdj().values());
        Iterator<Knoten> it1;
        Iterator<Transition> it2;
        Knoten aktKnot;
        ZInfo aktZusatz;
        Integer aktName;
        Integer aktBefehl;
        Integer aktParam;
        Integer aktAlter;
        Transition aktBed;
        String bed;
        Integer folgeZu;
        String token;
        Stack<Character> stk;
        char tokC;
        Character c;
        Integer transAlter;

        // Sorgt daf�r, dass der Startzustand am Beginn der Sequenz steht.
        Collections.sort(alleKnot, new StartZustKomp());

        it1 = alleKnot.iterator();
        while (it1.hasNext()) {
            aktKnot = it1.next();
            aktZusatz = (ZInfo) aktKnot.getInfo();

            aktName = (Integer) aktKnot.holeName();
            aktBefehl = new Integer(aktZusatz.getAktion());
            aktParam = new Integer(aktZusatz.getParam());
            aktAlter = new Integer(aktZusatz.getAlter());

            seq.add(aktName);
View Full Code Here


    public void setStart(final Knoten k) {
        if (k == null) {
            return;
        }
       
        Knoten knot = this.holeKnoten(k.holeName());
       
        if (this.startKnName != null) {
            ((ZInfo)
             this.holeKnoten(this.startKnName).getInfo()).setStartZu(false);
        }

        ((ZInfo) knot.getInfo()).setStartZu(true);
        this.startKnName = (Integer) knot.holeName();
       
        this.sequenz = null;
    }
View Full Code Here

     */
    public ArrayList<Transition> getBedListe() {
        ArrayList<Transition> beds = new ArrayList<Transition>();
        ArrayList<Integer> knoten = this.getKnList();
        Iterator<Integer> it = knoten.iterator();
        Knoten aktKnoten;
       
        while (it.hasNext()) {
            aktKnoten = this.holeKnoten(it.next());
            beds.addAll(((ZInfo) aktKnoten.getInfo()).getBeds());
        }
       
        return beds;
    }
View Full Code Here

     *
     * @return Ob eine Kante von A nach Z existiert.
     */
    public boolean kanteExistiert(final Integer knoten1,
                                  final Integer knoten2) {
        Knoten k1;

        if (knoten1 == null || knoten2 == null) {
            return false;
        }
       
        k1 = this.holeKnoten(knoten1);

        if (k1 == null) {
            return false;
        }
       
        return k1.holeNachfolger().containsKey(knoten2);
    }
View Full Code Here

     * @param l  Ein Zielknotenname.
     *
     * @return  Ob l von k aus erreichbar ist.
     */
    public boolean erreichbar(final Integer k, final Integer l) {
        Knoten start;
        Knoten ziel;
       
        if (k == null) {
            start = this.holeStartzustand();
        } else {
            start = this.holeKnoten(k);
View Full Code Here

        besucht.add(k);
        nachF = new ArrayList<Knoten>(k.holeNachfolger().values());

        it = nachF.iterator();
        while (it.hasNext()) {
            Knoten aktNachf = (Knoten) it.next();
           
            LinkedList<Transition> transs
                = ((ZInfo) k.getInfo()).getTransZuZustand(
                        ((Integer) aktNachf.holeName()).intValue());
            Iterator<Transition> it2 = transs.iterator();
           
            while (it2.hasNext()) {
                Transition trans = (Transition) it2.next();
               
View Full Code Here

                                    final Integer kName2) {
        if (kName1 == null || kName2 == null) {
            return null;
        }

        Knoten k1 = this.holeKnoten(kName1);
        if (k1 == null) {
            return null;
        }
       
        ZInfo z = (ZInfo) k1.getInfo();
        List<Transition> l = z.getTransZuZustand(((Integer) kName2).intValue());
       
        if (l.size() > 0) {
            return ((Transition) l.get(0)).getCond();
        } else {
View Full Code Here

       
        final EndlicherAutomat anderer = (EndlicherAutomat) obj;
       
        HashSet<Integer> s1 = new HashSet<Integer>();
        HashSet<Integer> s2 = new HashSet<Integer>();
        Knoten k2;
       
        s1.addAll(this.getAdjazenzliste().keySet());
        s2.addAll(anderer.getAdjazenzliste().keySet());
       
        // �berpr�fe vorhandene Knotennamen in Automaten.
        if (!s1.equals(s2)) {
            return false;
        }
       
        // �berpr�fe f�r jeden Knoten: Info und Nachfolger der Knoten.
        for (Knoten k : this.getAdjazenzliste().values()) {
            k2 = anderer.holeKnoten(k.holeName());
            s1.clear();
            s2.clear();
            s1.addAll(k.holeNachfolger().keySet());
            s2.addAll(k2.holeNachfolger().keySet());
           
            if (!s1.equals(s2)
                    || !k.getInfo().equals(k2.getInfo())) {
                return false;
            }
        }
       
        return true;
View Full Code Here

        ArrayList<Integer> zustaende;
        boolean vorhandenAll;
        Iterator<Integer> it, it1, it2;
        Integer aktName;
        Knoten[] knotenListe = new Knoten[rob.length];
        Knoten zwischKnoten;
        Integer kn1, kn2;
        Knoten zKnoten;
        Condition zCond;
        int aktion;
        int param;      
        int alt;
        boolean istStart;
        Roboter aktRob;
        Condition[] condListe = new Condition[rob.length];
        int j = -1;
       
        /*
         * Ersetzt alle Vorkommnisse von <code>null</code> im Array rob durch
         * g�ltige im Array weiter vorne stehende Roboter. Dabei wird die
         * Liste der Roboter VOR dem ersten Vorkommnis von <code>null</code>
         * immer wieder �ber das Array gelegt und die null-Werte werden
         * �berschrieben:
         *
         * [1 3 null null null null] => [1 3 1 3 1 3].
         *
         * Wenn nach dem ersten Vorkommnis von <code>null</code> ein g�ltiger
         * Roboter vorkommt (dies ist kein erw�nschter Fall), dann wird er
         * im Array belassen.
         */
        for (int i = 0; i < rob.length; i++) {
            if (rob[i] == null) {
                if (j < 0) {
                    j = i;
                }
                rob[i] = rob[i % j];
            }
        }
       
        for (int i = 0; i < rob.length; i++) {
            if (rob[i].getFitness()[0] > 0) {
                vert.add(new Long(rob[i].getFitness()[0]));
            } else {
                vert.add(new Long(0));
            }
        }

        aktRob = (Roboter) MathMeth.randVerteilung(rob, vert, this.rand);
        zustaende = aktRob.vAuts()[0].getKnList();
        fitness = aktRob.getFitness()[0];
       
        vorhandenAll = true;
       
        it = zustaende.iterator();
        while (it.hasNext()) {
            aktName = (Integer) it.next();
            for (int i = 0; i < rob.length; i++) {
                zwischKnoten = rob[i].vAuts()[0].holeKnoten(aktName);
                if (zwischKnoten != null) {
                    knotenListe[i] = zwischKnoten;
                } else {
                    vorhandenAll = false;
                    break;
                }
            }
           
            if (vorhandenAll) {
                zKnoten = (Knoten) MathMeth.randVerteilung(knotenListe,
                                                           vert,
                                                           this.rand);
            } else {
                zKnoten = aktRob.vAuts()[0].holeKnoten(aktName);
            }
           
            aktion = ((ZInfo) zKnoten.getInfo()).getAktion();
            param = ((ZInfo) zKnoten.getInfo()).getParam();
            alt = ((ZInfo) zKnoten.getInfo()).getAlter();
            istStart = ((ZInfo) zKnoten.getInfo()).istStartZ();
           
            kind.einfuegenKnoten(aktName, aktion, param, alt);
            if (istStart) {
                kind.setStart(kind.holeKnoten(aktName));
            }
View Full Code Here

        int anzRobs;
        int aktName;
        int[] fitness;
        Condition zCond;
        Integer kn1, kn2;
        Knoten zwischKnoten;
        boolean vorhandenAll;
        Iterator<Integer> it;
        Iterator<Integer> it1;
        Iterator<Integer> it2;
        Roboter aktRob = null;
        EndlicherAutomat[] kind;
        ArrayList<Integer> zustaende;
        RobCode[] robC = new RobCode[1];
        Knoten[] knotList = new Knoten[rob.length];
        Condition[] condListe = new Condition[rob.length];
        ArrayList<Long> vert = new ArrayList<Long>(rob.length);
       
        if (rob.length <= 0 || rob[0] == null) {
            SonstMeth.log(SonstMeth.LOG_ERROR,
                          "Kein Roboter zum Rekombinieren �bergeben ("
                          + this + ")",
                          this.pars);
        }
       
        id = rob[0].getId();
        kind = new EndlicherAutomat[rob[0].vAuts().length];
       
        /*
         * Ersetzt alle Vorkommnisse von <code>null</code> im Array rob durch
         * g�ltige im Array weiter vorne stehende Roboter. Dabei wird die
         * Liste der Roboter VOR dem ersten Vorkommnis von <code>null</code>
         * immer wieder �ber das Array gelegt und die null-Werte werden
         * �berschrieben:
         *
         * [1 3 null null null null] => [1 3 1 3 1 3].
         *
         * Wenn nach dem ersten Vorkommnis von <code>null</code> ein g�ltiger
         * Roboter vorkommt (dies ist allerdings kein erw�nschter Fall), dann
         * wird er im Array belassen.
         */
        anzRobs = -1;
        for (int i = 0; i < rob.length; i++) {
            if (rob[i] == null) {
                if (anzRobs < 0) {
                    anzRobs = i;
                }
                rob[i] = rob[i % anzRobs];
            }
        }

        fitness = new int[rob[0].vAuts().length];
       
        for (int i = 0; i < rob[0].vAuts().length; i++) {
            vert.clear();
           
            // Erzeuge Wahrscheinlichkeitsverteilung fitnessproportional.
            for (int j = 0; j < rob.length; j++) {
                if (rob[j].getFitness()[i] > 0) {
                    vert.add(new Long(rob[j].getFitness()[i]));
                } else {
                    vert.add(new Long(0));
                }
            }
           
            aktRob = (Roboter) MathMeth.randVerteilung(rob, vert, this.rand);
            zustaende = aktRob.vAuts()[i].getKnList();
            fitness[i] = aktRob.getFitness()[i];

            kind[i] = new EndlicherAutomat();
            vorhandenAll = true;
           
            // Zust�nde einf�gen.
            it = zustaende.iterator();
            while (it.hasNext()) {
                aktName = it.next();
                for (int j = 0; j < rob.length; j++) {
                    zwischKnoten = rob[j].vAuts()[i].holeKnoten(aktName);
                    if (zwischKnoten != null) {
                        knotList[j] = zwischKnoten;
                    } else {
                        vorhandenAll = false;
                        break;
                    }
                }

                if (vorhandenAll) {
                    zwischKnoten = (Knoten) MathMeth.randVerteilung(knotList,
                                                                    vert,
                                                                    this.rand);
                } else {
                    zwischKnoten = aktRob.vAuts()[i].holeKnoten(aktName);
                }
               
                aktion = ((ZInfo) zwischKnoten.getInfo()).getAktion();
                param = ((ZInfo) zwischKnoten.getInfo()).getParam();
                alt = ((ZInfo) zwischKnoten.getInfo()).getAlter();

                kind[i].einfuegenKnoten(aktName, aktion, param, alt);
            }

            kind[i].setStartBeliebig(); // Setze auf ersten vorh. Knoten.
View Full Code Here

TOP

Related Classes of fmg.fmg8.graphVis.graph.Knoten

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.