Beispiel #1
0
        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));
        }
Beispiel #2
0
    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++;
    }