//   Copyright (c) 1996, 1997, 1998 Bruno R. Preiss, P.Eng.

//   $Author: brpreiss $
//   $Date: 1998/12/14 02:57:41 $
//   $RCSfile: Application11.java,v $
//   $Revision: 3.5 $

package Opus5;

/**
* Application program that demonstrates critical-path analysis.
* @see Algorithms#criticalPathAnalysis
* @author Bruno R. Preiss, P.Eng.
* @version $Id: Application11.java,v 3.5 1998/12/14 02:57:41 brpreiss Exp $
**/
public class Application11
{
//[
    final String copyright =
	"@(#) Copyright (c) 1998 by Bruno R. Preiss, P.Eng.";
//]
    /**
    * Creates a directed graph and invokes the critical-path analysis method.
    * @param args The command-line arguments. Ignored.
    **/
    public static void main (String[] args)
    {
	Digraph g = new DigraphAsMatrix (10);
	for (int v = 0; v < 10; ++v)
	    g.addVertex (v);
	g.addEdge (0, 1, new Int (3));
	g.addEdge (1, 2, new Int (1));
	g.addEdge (1, 3, new Int (4));
	g.addEdge (2, 4, new Int (0));
	g.addEdge (3, 4, new Int (0));
	g.addEdge (4, 5, new Int (1));
	g.addEdge (5, 6, new Int (9));
	g.addEdge (5, 7, new Int (5));
	g.addEdge (6, 8, new Int (0));
	g.addEdge (7, 8, new Int (0));
	g.addEdge (8, 9, new Int (2));
	Terminal.out.println (g);
	g = Algorithms.criticalPathAnalysis (g);
	Terminal.out.println (g);
    }
}
