public static void CreateMaterial(JOB job) { #region BFS로 Routing { /* BFS하기 전에 초기화 */ queue.Clear(); isFound = false; MAXOFMIN = EnumClass.MINNUM; lastRoute = null; } // Start Vertex를 queue에 집어넣는다. queue.Enqueue(new Tuple <String, Route>(job.source, new Route(job.source))); Console.WriteLine("BFS 시작"); Console.WriteLine(""); BFS(job.terminal); #endregion BFS로 Routing #region Routing 결과 Console.WriteLine(""); Console.WriteLine("MaxOfMin(최소유량 중 최대값) = {0}", MAXOFMIN); Console.Write("가장 한가한 경로 : "); lastRoute.printRoute(); #endregion Routing 결과 #region 물류 객체 생성 Material newMaterial; switch (job.MaterialType) { case MATERIAL_TYPE.DEFAULT_MATERIAL: newMaterial = new DefaultMaterial(lastRoute); break; default: newMaterial = new DefaultMaterial(lastRoute); break; } #endregion 물류 객체 생성 #region Routing경로 사용 Console.WriteLine(""); Console.WriteLine("경로 사용.."); try { lastRoute.useRoute(g); } catch (RouteException re) { Console.WriteLine(re.Message); } finally { Console.WriteLine("경로 사용 완료!"); Console.WriteLine("----------------------"); Console.WriteLine("경로 설정된 후의 Graph"); Console.WriteLine(""); g.printGraph(); } #endregion Routing경로 사용 }