Exemplo n.º 1
0
        public void CreateGraphInput(Constants.SimulationType simulationType)
        {
            ExcelManipulation excelGraph = new ExcelManipulation();

            excelGraph.CreateExcelFile();
            int grrow = 1;
            int grcol = 1;

            excelGraph.createHeaders(grrow, grcol, "Run No", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Simulation Type", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Total Budget", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Average Budget", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Average Reputation", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Min Reputation", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Max Reputation", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Growth Factor ws5", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Growth Factor ws10", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Growth Factor ws15", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Comp prob ws5", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Comp prob ws10", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Comp prob ws15", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Coop prob ws6", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Coop prob ws11", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Coop prob ws16", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Reward Chance ws5", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Reward Chance ws10", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Reward Chance ws15", "A", "B", 2, true, 10, "n");

            for (int i = 0; i < avgBudget.Count; i++)
            {
                grrow++;
                grcol = 1;
                excelGraph.InsertData(grrow, grcol, i.ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, simulationType.ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, totalBudget[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, avgBudget[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, avgReputation[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, minReputation[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, maxReputation[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, growthFactor5[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, growthFactor10[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, growthFactor15[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, compProb5[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, compProb10[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, compProb15[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, coopProb6[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, coopProb11[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, coopProb16[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, rewardChance5[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, rewardChance10[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, rewardChance15[i].ToString(), "", "", "");
            }

            long ticks = DateTime.Now.Ticks;

            excelGraph.SaveDocument("coopetitionGraph_" + simulationType + "_" + ticks + ".xls");
        }
Exemplo n.º 2
0
        public void CreateGraphInput(Constants.SimulationType simulationType)
        {
            ExcelManipulation excelGraph = new ExcelManipulation();
            excelGraph.CreateExcelFile();
            int grrow = 1;
            int grcol = 1;
            excelGraph.createHeaders(grrow, grcol, "Run No", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Simulation Type", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Total Budget", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Average Budget", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Average Reputation", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Min Reputation", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Max Reputation", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Growth Factor ws5", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Growth Factor ws10", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Growth Factor ws15", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Comp prob ws5", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Comp prob ws10", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Comp prob ws15", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Coop prob ws6", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Coop prob ws11", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Coop prob ws16", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Reward Chance ws5", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Reward Chance ws10", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Reward Chance ws15", "A", "B", 2, true, 10, "n");

            for (int i = 0; i < avgBudget.Count; i++)
            {
                grrow++;
                grcol = 1;
                excelGraph.InsertData(grrow, grcol, i.ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, simulationType.ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, totalBudget[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, avgBudget[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, avgReputation[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, minReputation[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, maxReputation[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, growthFactor5[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, growthFactor10[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, growthFactor15[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, compProb5[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, compProb10[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, compProb15[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, coopProb6[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, coopProb11[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, coopProb16[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, rewardChance5[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, rewardChance10[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, rewardChance15[i].ToString(), "", "", "");
            }

            long ticks = DateTime.Now.Ticks;
            excelGraph.SaveDocument("coopetitionGraph_" + simulationType + "_" + ticks + ".xls");
        }
Exemplo n.º 3
0
        public void Run(Constants.SimulationType simulationType)
        {
            if (dtWsInitialValues.Rows.Count == 0)
            {
                Initialization(simulationType);
            }
            else
            {
                InitializeUsingDataTables(simulationType);
            }

            long start = DateTime.Now.Ticks;

            for (int i = 0; i < Constants.NumberOfRuns; i++)
            {
                outputLog.AppendText("Iteration #" + i + "...\n");
                outputLog.ScrollToCaret();
                excel.CreateExcelFile();
                row = 1;
                col = 1;
                Simulation(i + 1);
                long ticks = DateTime.Now.Ticks;
                excel.SaveDocument("coopetition_" + i.ToString() + "_" + ticks + ".xls");

                double totBudget = 0;
                double totRep    = 0;
                double maxRep    = 0;
                double minRep    = 1;
                for (int j = 0; j < Communities[0].Members.Count; j++)
                {
                    totBudget += Communities[0].Members[j].Webservice.Budget;
                    totRep    += Communities[0].Members[j].Webservice.Reputation;
                    if (Communities[0].Members[j].Webservice.Reputation > maxRep)
                    {
                        maxRep = Communities[0].Members[j].Webservice.Reputation;
                    }
                    if (Communities[0].Members[j].Webservice.Reputation < minRep)
                    {
                        minRep = Communities[0].Members[j].Webservice.Reputation;
                    }
                }

                for (int j = 0; j < Communities[0].Members.Count; j++)
                {
                    totBudget += Communities[0].Members[j].Webservice.Budget;
                    totRep    += Communities[0].Members[j].Webservice.Reputation;
                    if (Communities[0].Members[j].Webservice.Reputation > maxRep)
                    {
                        maxRep = Communities[0].Members[j].Webservice.Reputation;
                    }
                    if (Communities[0].Members[j].Webservice.Reputation < minRep)
                    {
                        minRep = Communities[0].Members[j].Webservice.Reputation;
                    }
                }

                int    numberOfTasksDone = 0;
                double totalQoSDone      = 0;
                int    totalSatisfied    = 0;
                for (int j = 0; j < TaskPool.Count; j++)
                {
                    if (TaskPool[j].PerformedQoS > 0)
                    {
                        numberOfTasksDone++;
                        totalQoSDone += TaskPool[j].PerformedQoS;

                        if (TaskPool[j].PerformedQoS > TaskPool[j].QoS + 0.2)
                        {
                            totalSatisfied++;
                        }
                    }
                }

                avgBudget.Add((double)totBudget / Communities[0].Members.Count);
                totalBudget.Add(totBudget);
                avgReputation.Add((double)totRep / Communities[0].Members.Count);
                minReputation.Add(minRep);
                maxReputation.Add(maxRep);
                growthFactor5.Add(Communities[0].Members[5].Webservice.GrowthFactor);
                growthFactor10.Add(Communities[0].Members[10].Webservice.GrowthFactor);
                growthFactor15.Add(Communities[0].Members[15].Webservice.GrowthFactor);
                compProb5.Add(Communities[0].Members[5].Webservice.CompetedProbability);
                compProb10.Add(Communities[0].Members[10].Webservice.CompetedProbability);
                compProb15.Add(Communities[0].Members[15].Webservice.CompetedProbability);
                coopProb6.Add(1 - Communities[0].Members[6].Webservice.CompetedProbability);
                coopProb11.Add(1 - Communities[0].Members[11].Webservice.CompetedProbability);
                coopProb16.Add(1 - Communities[0].Members[16].Webservice.CompetedProbability);
                rewardChance5.Add((double)Communities[0].Members[5].Webservice.NumberOfRewarded / (i + 1));
                rewardChance10.Add((double)Communities[0].Members[10].Webservice.NumberOfRewarded / (i + 1));
                rewardChance15.Add((double)Communities[0].Members[15].Webservice.NumberOfRewarded / (i + 1));

                totalRunTaskQoS.Add((double)totalQoSDone);
                totalRunTaskNumber.Add((double)numberOfTasksDone);
                avergaeProvidedTaskQoS.Add((double)totalQoSDone / numberOfTasksDone);
                numberOfTaskSatisfied.Add((double)totalSatisfied);
                ratioOfTaskSatisfied.Add((double)totalSatisfied / numberOfTasksDone);

                ReleaseTasks();
            }
            long end = DateTime.Now.Ticks;

            outputLog.AppendText("Simulation took: " + (int)((end - start) / 10000) + " ms\n");
            outputLog.AppendText("Done!\n");
            outputLog.ScrollToCaret();
            CreateGraphInput(simulationType);

            avgBudget.Clear();
            totalBudget.Clear();
            avgReputation.Clear();
            maxReputation.Clear();
            minReputation.Clear();
            growthFactor5.Clear();
            growthFactor10.Clear();
            growthFactor15.Clear();
            compProb5.Clear();
            compProb10.Clear();
            compProb15.Clear();
            coopProb6.Clear();
            coopProb11.Clear();
            coopProb16.Clear();
            totalRunTaskQoS.Clear();
            totalRunTaskNumber.Clear();
            avergaeProvidedTaskQoS.Clear();
            numberOfTaskSatisfied.Clear();
            ratioOfTaskSatisfied.Clear();

            MessageBox.Show("Done!");
        }