public static string[] EvaluateData(DataParser.ProblemSettings mode) { Video[] videos; Endpoint[] endpoints; CacheServer[] cacheServers; RequestDescription[] requestsDescriptions; var progress = new Progress <float>(ProgressHandler); Console.WriteLine("\nParsing Files...\n"); DataParser.ParseFileLines (DataParser.ReadFile(mode).ToArray(), out videos, out endpoints, out cacheServers, out requestsDescriptions, progress); Console.WriteLine("\ndone"); //calculate Heuristik Console.WriteLine("\nCalculate heuristics...\n"); GenerateHeuristic.GenerateHeuristicSteps(videos, cacheServers, progress); Console.WriteLine("\ndone"); //start greedy assigning //1 claculate matrix M VxC with every element beeing: sum_over_all_endpoints(benefit / cacheserver_heuristik / video_size) Console.WriteLine("\nCalculate costs...\n"); GreedyAssign.GenerateHeuristicCosts(videos, cacheServers, progress); Console.WriteLine("\ndone"); //2 while still space on any cache server: find biggest entry in M and assign V to C --> then set enty to 0. As soon as any cacheserver is full: delete column in M Console.WriteLine("\nAssign\n"); Assigner.Assign(cacheServers); return(GetOutput(cacheServers)); }
public void AddRow() { _randomIdx = Random.Range(0, rowTypes.Length); _row = Instantiate(rowTypes[_randomIdx]); Vector3 pos = _row.transform.position; pos.z = _lastZ; _row.transform.position = pos; _row.transform.SetParent(transform); Assigner asgn = _row.GetComponent <Assigner> (); if (asgn != null) { asgn.Assign(); } _lastZ++; }