Package edu.uci.ics.jung.graph.impl

Examples of edu.uci.ics.jung.graph.impl.DirectedSparseEdge


      e.removeUserDatum(JUConstants.LABEL);
      Iterator<String> labelIt = labels.iterator();
      e.addUserDatum(EDGE, labelIt.next(), UserData.SHARED);
      while(labelIt.hasNext())
      {
        DirectedSparseEdge newEdge = new DirectedSparseEdge(e.getSource(),e.getDest());
        newEdge.setUserDatum(EDGE, labelIt.next(), UserData.SHARED);
        newEdges.add(newEdge);
      }
    }
   
    for(Edge e:newEdges)
View Full Code Here


    return new LearnerGraph(machine,conf).paths.reduce();
  }
 
  /** Adds an edge between the supplied vertices and returns true/false if this was successful. */
  protected boolean addEdge(DeterministicVertex v, DeterministicVertex w) {
    machine.addEdge(new DirectedSparseEdge(v,w));return true;
  }
View Full Code Here

    // This one needs to choose vertices at random, not just choose first x/y vertices.
    List<DeterministicVertex> result = new LinkedList<DeterministicVertex>();
    Iterator<DirectedSparseEdge> inIt = ambassador.getInEdges().iterator();
    List<DeterministicVertex> verticesToChooseFrom = new LinkedList<DeterministicVertex>();
    while(inIt.hasNext()){
      DirectedSparseEdge e = inIt.next();
      DeterministicVertex v = (DeterministicVertex) e.getSource();
      if(!visited.contains(v))
        verticesToChooseFrom.add(v);
    }
    if (!verticesToChooseFrom.isEmpty()) result.addAll(selectVertices(verticesToChooseFrom, x));
   
    Iterator<DirectedSparseEdge> outIt = ambassador.getOutEdges().iterator();
    verticesToChooseFrom = new LinkedList<DeterministicVertex>();
    while(outIt.hasNext()){
      DirectedSparseEdge e = outIt.next();
      DeterministicVertex v = (DeterministicVertex) e.getDest();
      if(!visited.contains(v))
        verticesToChooseFrom.add(v);
    }
   
    if (!verticesToChooseFrom.isEmpty()) result.addAll(selectVertices(verticesToChooseFrom, y));
View Full Code Here

    {
      Vertex v = vertexIt.next();
      outLabels.clear();
      Iterator<DirectedSparseEdge>outEdgeIt = v.getOutEdges().iterator();
      while(outEdgeIt.hasNext()){
        DirectedSparseEdge outEdge = outEdgeIt.next();
        outLabels.addAll( (Set<Label>)outEdge.getUserDatum(JUConstants.LABEL) );
      }
      transitionsToBeAdded = !alphabet.equals(outLabels);
    }
   
    if (transitionsToBeAdded)
    {
      // third pass - adding transitions
      g.addVertex(rejectVertex);
      vertexIt = (Iterator<Vertex>)g.getVertices().iterator();
      while(vertexIt.hasNext())
      {
        Vertex v = vertexIt.next();
        if (v != rejectVertex)
        {// no transitions should start from the reject vertex
          Set<Label> outgoingLabels = new TreeSet<Label>();outgoingLabels.addAll(alphabet);
         
          Iterator<DirectedSparseEdge>outEdgeIt = v.getOutEdges().iterator();
          while(outEdgeIt.hasNext()){
            DirectedSparseEdge outEdge = outEdgeIt.next();
            outgoingLabels.removeAll( (Set<Label>)outEdge.getUserDatum(JUConstants.LABEL) );
          }
          if (!outgoingLabels.isEmpty())
          {
            // add a transition
            DirectedSparseEdge edge = new DirectedSparseEdge(v,rejectVertex);
            edge.addUserDatum(JUConstants.LABEL, outgoingLabels, UserData.CLONE);
            g.addEdge(edge);
          }
        }
      }
    }
View Full Code Here

    Map<VertexID,DeterministicVertex> newVertices = new TreeMap<VertexID,DeterministicVertex>();
    for(DirectedSparseEdge e:(Set<DirectedSparseEdge>)g.getEdges())
    {
      DeterministicVertex newSrc = DeterministicDirectedSparseGraph.copyVertex(newVertices,result,e.getSource()),
        newDst = DeterministicDirectedSparseGraph.copyVertex(newVertices, result, e.getDest());
      DirectedSparseEdge newEdge = new DirectedSparseEdge(newSrc,newDst);
      Set<Label> origLabels = (Set<Label>)e.getUserDatum(JUConstants.LABEL);
      TreeSet<Label> copiedLabels = new TreeSet<Label>();copiedLabels.addAll(origLabels);
      newEdge.addUserDatum(JUConstants.LABEL, copiedLabels, UserData.SHARED);
      result.addEdge(newEdge);
    }
    return result;
  }
View Full Code Here

  }
 
  public static Edge findEdge(Vertex from, Vertex to){
    Iterator<DirectedSparseEdge> edgesOut = from.getOutEdges().iterator();
    while(edgesOut.hasNext()){
      DirectedSparseEdge current = edgesOut.next();
      if(current.getDest().equals(to))
        return current;
    }
    return null;
  }
View Full Code Here

    Set<Vertex> blues = new HashSet<Vertex>();
    for(Vertex v: DeterministicDirectedSparseGraph.findVertices(JUConstants.COLOUR, JUConstants.RED, model))
    {
      Iterator<DirectedSparseEdge>neighbourIt = v.getOutEdges().iterator();
      while(neighbourIt.hasNext()){
        DirectedSparseEdge next = neighbourIt.next();
        Vertex neighbour = next.getDest();
        JUConstants neighbourColour = (JUConstants)neighbour.getUserDatum(JUConstants.COLOUR);
        if(neighbourColour!=null){
          if(neighbourColour == JUConstants.RED)
            continue;
        }
View Full Code Here

  }
 
  public static boolean hasAcceptedNeighbours(Vertex v){
    Iterator<DirectedSparseEdge> neighbourIt = v.getOutEdges().iterator();
    while (neighbourIt.hasNext()){
      DirectedSparseEdge e = neighbourIt.next();
      Vertex to = e.getDest();
      if(DeterministicDirectedSparseGraph.isAccept(to))
        return true;
    }
    return false;
  }
View Full Code Here

    Vertex q = pair.getQ();
    Vertex qDash = pair.getR();
    Iterator<DirectedSparseEdge> inEdges = q.getInEdges().iterator();
    Set<DirectedSparseEdge> removeEdges = new HashSet<DirectedSparseEdge>();
    while(inEdges.hasNext()){
      DirectedSparseEdge e = inEdges.next();
      DirectedSparseEdge eDash = new DirectedSparseEdge(e.getSource(), qDash);
      eDash.addUserDatum(JUConstants.LABEL, e.getUserDatum(JUConstants.LABEL), UserData.CLONE);
      if(!e.getSource().getSuccessors().contains(qDash))
        model.addEdge(eDash);
      else{
        Edge existing = findEdge(e.getSource(), qDash);
        Set<Label> labels = (Set<Label>)existing.getUserDatum(JUConstants.LABEL);// KIRR: if you use UserData.SHARED, you do not need to copy the result back using put
        labels.addAll((Set<Label>)e.getUserDatum(JUConstants.LABEL));
        existing.setUserDatum(JUConstants.LABEL, labels, UserData.CLONE);
      }
      removeEdges.add(e);
    }
    Iterator<DirectedSparseEdge> outEdges = q.getOutEdges().iterator();
    while(outEdges.hasNext()){
      DirectedSparseEdge e = outEdges.next();
      DirectedSparseEdge eDash = new DirectedSparseEdge(qDash, e.getDest());
      eDash.addUserDatum(JUConstants.LABEL, e.getUserDatum(JUConstants.LABEL), UserData.CLONE);
      if(!qDash.getSuccessors().contains(e.getDest()))
        model.addEdge(eDash);
      else{
        Edge existing = findEdge(qDash, e.getDest());
        Set<Label> labels = (Set<Label>)existing.getUserDatum(JUConstants.LABEL);
View Full Code Here

      Vertex v = queueIt.next();
      Set<DirectedSparseEdge> edges = v.getOutEdges();
      Iterator<DirectedSparseEdge> edgeIt = edges.iterator();
      Map<Label,DirectedSparseEdge> doneLabels = new HashMap<Label,DirectedSparseEdge>();
      while(edgeIt.hasNext()){
        DirectedSparseEdge e = edgeIt.next();
        Set<Label> labels = (Set<Label>)e.getUserDatum(JUConstants.LABEL);
        Iterator<Label> labelIt = labels.iterator();
        while(labelIt.hasNext()){
          Label label = labelIt.next();
          if(doneLabels.get(label)==null)
            doneLabels.put(label, e);
          else {
            DirectedSparseEdge eDash = doneLabels.get(label);
            OrigStatePair p = null;
            if(DeterministicDirectedSparseGraph.isInitial(eDash.getDest()))
              p = new OrigStatePair(e.getDest(), eDash.getDest());
            else
              p = new OrigStatePair(eDash.getDest(),e.getDest());
            if(!different(p)) // KIRR: strange - the two should never be different if the original pair to choose was selected properly
              return p;
          }
        }
      }
View Full Code Here

TOP

Related Classes of edu.uci.ics.jung.graph.impl.DirectedSparseEdge

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.