Package fmg.fmg8.graphVis.graph

Examples of fmg.fmg8.graphVis.graph.Knoten


     * @param ea  Der zu mutierende Automat.
     * @return  Ob ein Zustand gel�scht wurde.
     */
    public final boolean mutationZustandRem1(final EndlicherAutomat ea) {
        ArrayList<Integer> knListe = ea.getKnList();
        Knoten zufallsKnoten1;
        int zufallsIndex;

        while (knListe.size() > 0) {
            zufallsIndex = this.rand.nextInt(knListe.size());
            zufallsKnoten1 = (Knoten) ea.holeKnoten(knListe.get(zufallsIndex));
            if (!ea.istStartZ(zufallsKnoten1)
                && zufallsKnoten1.holeVorgaenger().size() == 0) {
               
                ea.entferneKnoten(knListe.get(zufallsIndex));
                return true;
            }
            knListe.remove(zufallsIndex);
View Full Code Here


     * @param ea  Der zu mutierende Automat.
     * @return  Ob ein Zustand gel�scht wurde.
     */
    public final boolean mutationZustandRem2(final EndlicherAutomat ea) {
        ArrayList<Integer> knListe = ea.getKnList();
        Knoten zufallsKnoten1;
        int zufallsIndex;

        while (knListe.size() > 0) {
            zufallsIndex = this.rand.nextInt(knListe.size());
            zufallsKnoten1 = (Knoten) ea.holeKnoten(knListe.get(zufallsIndex));
            if (((ZInfo) zufallsKnoten1.getInfo()).getAktion()
                    == Konstanten.IDLE_BEFEHL
                && zufallsKnoten1.holeNachfolger().size() == 0
                && !ea.istStartZ(zufallsKnoten1)) {
               
                ea.entferneKnoten(knListe.get(zufallsIndex));
                return true;
            }
View Full Code Here

        ArrayList<Integer> knot;
        ArrayList<Integer> knot1;
        Iterator<Integer> it, it1;
        Iterator<Transition> it3;
        Integer aktKnNum;
        Knoten aktKn;
        ZInfo info;
        Knoten zielKn;
        Integer zielKnNum;
        Condition aktBed;
        Condition neuBed = null;
        Condition zwischBed;
        int numOrig1, numOrig2;
        int idlBefehl;
        EndlicherAutomat[] eas = new EndlicherAutomat[endAuts.length];
        LinkedList<Transition> trans;
        Transition tran;
        String[] args = {"log 4"};
       
        if (endAuts == null
                || conds == null
                || endAuts.length != conds.length
                || endAuts.length == 0) {
            SonstMeth.log(SonstMeth.LOG_ERROR,
                          "Gesamtautomat konnte nicht erzeugt werden.",
                          new Parametersatz(args));
        }
       
        for (int i = 0; i < eas.length; i++) {
            eas[i] = new EndlicherAutomat();
            eas[i].erzeugeAusSequenz(
                    endAuts[i].erzeugeStringSeq(),
                    fmg.fmg8.endlAutomat.translator.Konstanten.STD_TRANSL_BE,
                    false);
           
            if (eas[i].istLeer()) {
                eas[i].einfuegenKnoten(Integer.MAX_VALUE,
                        SonstMeth.posSuch(
                                fmg.fmg8.umgebung2D.Konstanten.BEF,
                                "stp"),
                        1,
                        1);
               
                eas[i].setStart(eas[i].holeKnoten(Integer.MAX_VALUE));
            }
        }
       
        // Neue Knoten zuordnen.
        for (int i = 0; i < eas.length; i++) {
            knotZuord[i] = new HashMap<Integer, Integer>();
           
            knot = new ArrayList<Integer>(eas[i].holAdj().keySet());
            it = knot.iterator();

            while (it.hasNext()) {
                aktKnNum = it.next();
                aktKn = eas[i].holeKnoten(aktKnNum);
                info = aktKn.getInfo();
                neu.einfuegenKnoten(lfdNr,
                                    info.getAktion(),
                                    info.getParam(),
                                    info.getAlter());
               
                knotZuord[i].put(aktKnNum, lfdNr);
                lfdNr++;
            }
        }
       
        // Neue Kanten INTER Automaten zuordnen.
        for (int i = 0; i < eas.length; i++) {
            zielKn = eas[i].holeStartzustand();
           
            if (zielKn != null) {
                zielKnNum = (Integer) knotZuord[i].get(zielKn.holeName());
                neuBed = SonstMeth.ausFormatBed(conds[i].formatted());
                for (int j = 0; j < i; j++) {
                    zwischBed = SonstMeth.ausFormatBed(conds[j].formatted());
                    zwischBed.negiere();
                    neuBed = new InnerNode(neuBed,
                                           zwischBed,
                                           fmg.fmg8.endlAutomat.Konstanten.UND);
                }
               
                for (int j = 0; j < eas.length; j++) {
                    if (j != i) {
                        knot = new ArrayList<Integer>(
                                eas[j].holAdj().keySet());
                        it = knot.iterator();
                       
                        while (it.hasNext()) {
                            aktKnNum = (Integer) knotZuord[j].get(it.next());
                            neu.einfuegKante(aktKnNum, zielKnNum, neuBed, 1);
                        }
                    }
                }
            }
        }

        // Neue Kanten INTRA Automaten zuordnen.
        for (int i = 0; i < eas.length; i++) {
            knot1 = new ArrayList<Integer>(eas[i].holAdj().keySet());
            it1 = knot1.iterator();
           
            while (it1.hasNext()) {
                numOrig1 = it1.next();
                aktKnNum = (Integer) knotZuord[i].get(numOrig1);
                aktKn = eas[i].holeKnoten(numOrig1);
               
                if (aktKn.getInfo() != null
                        && aktKn.getInfo().getBedingungen() != null) {
                    trans = aktKn.getInfo().getBedingungen();
                    it3 = trans.iterator();
                   
                    while (it3.hasNext()) {
                        tran = it3.next();
                        numOrig2 = tran.getFolgezustand();
                        zielKnNum = (Integer) knotZuord[i].get(numOrig2);
                        aktBed = tran.getCond();
                       
                        if (aktBed != null) {
                            neu.einfuegKante(aktKnNum, zielKnNum, aktBed, 1);
                        }
                    }
                }
            }
        }

        // true - Kanten zu den einzelnen Startknoten einf�gen.
        for (int i = 0; i < eas.length; i++) {
            zielKn = eas[i].holeStartzustand();
           
            if (zielKn != null) {
                zielKnNum = (Integer) knotZuord[i].get(zielKn.holeName());
               
                knot = new ArrayList<Integer>(eas[i].holAdj().keySet());
                it = knot.iterator();
               
                while (it.hasNext()) {
View Full Code Here

     * @param ea  Der zu mutierende Automat.
     * @return  Ob ein Zustand mutiert wurde.
     */
    public final boolean mutationZustand(final EndlicherAutomat ea) {
        ArrayList<Integer> knListe = ea.getKnList();
        Knoten zufallsKnoten1;
        int veraenderung;
        int neuParam;
        int altParam;
        int neuBefehl;
        int zufallsIndex;
       
        if (knListe.size() == 0) {
            return false;
        } else {
            zufallsIndex = this.rand.nextInt(knListe.size());
            zufallsKnoten1 = (Knoten) ea.holeKnoten(knListe.get(zufallsIndex));
            veraenderung = this.rand.nextInt(2 * this.k) - this.k;
            altParam = ((ZInfo)
                    zufallsKnoten1.getInfo()).getParam();
            if (veraenderung + altParam > 0) {
                neuParam = altParam + veraenderung;
                neuBefehl = ((ZInfo)
                        zufallsKnoten1.getInfo()).getAktion();
            } else if (veraenderung + altParam < 0) {
                neuParam = (veraenderung + altParam) * -1;
                neuBefehl = SonstMeth.glVertZwischen(
                        SonstMeth.minBef(this.modus),
                        SonstMeth.maxBef(this.modus),
                        this.rand);
               
            } else { // veraenderung + altparam == 0
                neuParam = 1;
                neuBefehl = ((ZInfo)
                        zufallsKnoten1.getInfo()).getAktion();
            }
               
           
            ((ZInfo) zufallsKnoten1.getInfo()).setAkt(neuBefehl);
            ((ZInfo) zufallsKnoten1.getInfo()).setPar(neuParam);
           
            return true;
        }
    }
View Full Code Here

       
        this.addWindowListener(new WindHideAdapt());
       
        this.zwischenablage = new Zwischenablage();

        this.zeichenArt = new PfeilMaster(this.pars);
        this.gewKnot = null;

        this.setLayout(new BorderLayout());
       
        JPanel editPanel = new JPanel();
View Full Code Here

        this.removeAll();
       
        this.addWindowListener(new WindHideAdapt());
       
        this.zwischenablage = new Zwischenablage();

        this.zeichenArt = new PfeilMaster(this.pars);
        this.gewKnot = null;

        this.setLayout(new BorderLayout());
View Full Code Here

     * Startet einen Zeitablauf mit Simulation ohne GUI.
     *
     * @param args  Die Parameter.
     */
    public static void main(final String[] args) {
        Parametersatz params = new Parametersatz(args);
        params.ergaenze();
        params.setGraphisch(false);
       
        if (params.getGraphisch().booleanValue()) {
            throw new RuntimeException("Nur Kommandozeilenmodus erlaubt.");
        }
       
        SonstMeth.log(1, params.toString(), params, "plain", null);
        SimulationsZeit simT = new SimulationsZeit(params, null, null);
       
        simT.zeitStarten();
    }
View Full Code Here

            v = new Vektor2D(-2.3, -1.7);
            a.add(v);
        }

        if (nummer == 6) {
            Parametersatz params = new Parametersatz(new String[0]);
            params.ergaenze();
            PfeilMaster zeichnen = new PfeilMaster(params);

            ArrayList<Double> dicken = new ArrayList<Double>();
            Polygon2D bez = new Polygon2D();
View Full Code Here

     * Main-Methode.
     *
     * @param args  Argumente.
     */
    public static void main(final String[] args) {
        Parametersatz params = new Parametersatz(args);
        params.ergaenze();
        PfeilMaster zeichnen = new PfeilMaster(params);
        List<Object> l = new ArrayList<Object>();
        Polygon2D bez2 = new Polygon2D();

        bez2 = Geometrie2D.bezierKurve(
                new Vektor2D(0, 0),
                new Vektor2D(50, 0),
                new Vektor2D(50, -20),
                new Vektor2D(100, -20),
                0.0001);
       
        bez2 = bez2.normalisiere();

        Polygon2D seg = zeichnen.segmentPfeilPol2D(
                bez2,
                null,
                PfeilMaster.DOPPELSPITZES_ENDE,
                PfeilMaster.EINFACHE_SPITZE_1,
                new Vektor2D(1, 1),
                new Vektor2D(1, 1));

        l.add(seg.toPol(5, Vektor2D.NULL_VEKTOR));
        l.add(0, new AusgMerkm(Color.black, Color.yellow, true, true));
        params.setStdPfad(
          "C:\\Eig\\Forschung\\Paper_Vortraege\\Paper_4_AAMAS_accept\\Poster");
       
        Geometrie2D.saveObjectsToFile(l, "luke", "png", params);
    }
View Full Code Here

        Iterator<Integer> it2;
        Iterator<Transition> it3;
        Knoten knot;
        Knoten knot1;
        Knoten knot2;
        Vektor2D koord1;
        Vektor2D koord2;

        if (!g.istLeer()) {
            final ArrayList<Knoten> knotenListe
                = new ArrayList<Knoten>(g.holAdj().values());
            int knAnzahl = knotenListe.size();
           
            if (knAnzahl < 2) {
                knAnzahl = 2;
            }
           
            int gitterX = Math.abs(this.rechts - this.links)
                          / (int) ((Math.ceil(Math.sqrt(knAnzahl))) - 1);
            int gitterY = Math.abs(this.unten - this.oben)
                          / (int) ((Math.ceil(Math.sqrt(knAnzahl))) - 1);

            int koordX = this.links;
            int koordY = this.oben;
           
            int kX;
            int kY;
            Transition bed;
            int folgeZustand;
            String bedingung;
            int xAusgleich;
            int zaehler = 0;
           
            // Knoten
            it = knotenListe.iterator();
            while (it.hasNext()) {
                knot = it.next();

                if (this.gesetzteKn.containsKey(knot.holeName())) {
                    kX = (int) this.gesetzteKn.get(knot.holeName()).x;
                    kY = (int) this.gesetzteKn.get(knot.holeName()).y;
                    this.setzeKnoten(knot,
                                     darstellung,
                                     kX,
                                     kY,
                                     (Knoten) ausgKn);

                    if (g.istStartZ(knot)) {
                        darstellung.hinzuPfeil(kX - 60,
                                               kY - 60,
                                               kX - 45,
                                               kY - 45,
                                               0.5,
                                               false);
                    }
                } else {
                    this.setzeKnoten(knot,
                                     darstellung,
                                     koordX,
                                     koordY,
                                     (Knoten) ausgKn);

                    this.gesetzteKn.put(knot.holeName(),
                                        new Vektor2D(koordX, koordY));

                    if (g.istStartZ(knot)) {
                        darstellung.hinzuPfeil(koordX - 60,
                                               koordY - 60,
                                               koordX - 45,
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.