Exemple #1
0
        static void Main(string[] args)
        {
            var lh = new LoggingHelper();

            lh.ClearLogFile();
            Log.Info("=====================================================================");
            var       g0     = ExampleWeightedGraph.GenerateExampleWeightedTwinGraph2();
            TwinGraph g0Star = GenerateG0StarFrom(g0);

            _mAugmentingPath = new LinkedList <Arc>();
            var i = 0;
            var mAugmentingPaths = new LinkedList <LinkedList <Arc> >();

            while (true)
            {
                i++;
                Log.Info("ITERATION " + i + " =============================================");
                var k     = new ABVertexStack();
                var l     = new LinkedList <ABVertex>();
                var mdfsw = new MDFSW(g0Star, k, l);
                MDFSW._step = 0;

                _mAugmentingPath = mdfsw.Run();
                if (_mAugmentingPath == null)
                {
                    //Extension step instead of breaking
                    break;
                }
                mAugmentingPaths.AddLast(_mAugmentingPath);
                g0Star.SymmetricDifferenceWith(_mAugmentingPath);

                g0Star.LogArcsWeighted();
                g0Star.LogVerticesWeighted();
            }
            LogPaths(mAugmentingPaths);
        }