/// <summary>
        ///
        /// </summary>
        /// <param name="g"></param>
        public void DisplayAssGraph(IVertexAndEdgeListGraph g)
        {
            foreach (IVertex v in g.Vertices)
            {
                Console.Write("{0}{1}: ",
                              v.IncomingEdge.ID, v.Vertex.ID
                              );
                if (v.IncomingEdge.Target == v.Target)                  // at L
                {
                    Console.Write("xi_-^{0}(L) -> ", v.IncomingEdge.ID);
                }
                else
                {
                    Console.Write("xi_+^{0}(L) -> ", v.IncomingEdge.ID);
                }

                foreach (CharacteristicEdge e in g.SelectOutEdges(v, new NegativeCharacteristicEdgePredicate()))
                {
                    Console.Write("xi_-^{0}(0) ", e.Edge.ID);
                }
                foreach (CharacteristicEdge e in g.SelectOutEdges(v, new PositiveCharacteristicEdgePredicate()))
                {
                    Console.Write("xi_+^{0}(L) ", e.Edge.ID);
                }
                Console.WriteLine(")");
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="g"></param>
        public void DisplayAssGraph(IVertexAndEdgeListGraph g)
        {
            foreach(IVertex v in g.Vertices)
            {
                Console.Write("{0}{1}: ",
                    v.IncomingEdge.ID,v.Vertex.ID
                    );
                if (v.IncomingEdge.Target == v.Target ) // at L
                    Console.Write("xi_-^{0}(L) -> ", v.IncomingEdge.ID);
                else
                    Console.Write("xi_+^{0}(L) -> ", v.IncomingEdge.ID);

                foreach(CharacteristicEdge e in g.SelectOutEdges(v, new NegativeCharacteristicEdgePredicate()) )
                    Console.Write("xi_-^{0}(0) ",e.Edge.ID);
                foreach(CharacteristicEdge e in g.SelectOutEdges(v, new PositiveCharacteristicEdgePredicate()) )
                    Console.Write("xi_+^{0}(L) ",e.Edge.ID);
                Console.WriteLine(")");
            }
        }