Esempio 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");
            excelGraph.createHeaders(grrow, ++grcol, "1", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "1", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "1", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Satisfied Talk", "A", "B", 2, true, 10, "n");
            excelGraph.createHeaders(grrow, ++grcol, "Satisfied Ratio", "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(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, totalRunTaskNumber[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, totalRunTaskQoS[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, avergaeProvidedTaskQoS[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, numberOfTaskSatisfied[i].ToString(), "", "", "");
                excelGraph.InsertData(grrow, ++grcol, ratioOfTaskSatisfied[i].ToString(), "", "", "");
            }

            long ticks = DateTime.Now.Ticks;

            excelGraph.SaveDocument("coopetitionGraph_" + simulationType + "_" + ticks + ".xls");
        }
Esempio 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");
        }
Esempio n. 3
0
        public void Simulation(int numberOfRun)
        {
            excel.createHeaders(row, col, "cmId", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsId", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsNetwork", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsQoS", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsType", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsGrowthFactor", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsReputation", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsNTD", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsBudget", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsTotalIncome", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsCompeted", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsHasCollaborated", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsIsCollaborated", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsTaskQoS", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsTaskFee", "A", "B", 2, true, 10, "n");
            excel.createHeaders(row, ++col, "wsProvidedQoS", "A", "B", 2, true, 10, "n");

            for (int j = 0; j < Communities.Count; j++)
            {
                Community cm = Communities[j];
                col = 1;
                int currentrow = row;
                int currentcol = col;

                for (int i = 0; i < cm.Members.Count; i++)
                {
                    Community.WebServiceInfo wsInfo = cm.Members[i];

                    wsInfo.Webservice.Budget -= Constants.MembershipFee;
                    if (wsInfo.Webservice.Budget < 0)
                    {
                        wsInfo.Webservice.Budget = 0;
                    }

                    // Checking growth factor by web services
                    wsInfo.Webservice.CoopetitionDecision(wsInfo.NumberOfTasksDone, numberOfRun);
                    // Insert CommunityId to the excel file
                    excel.InsertData(row + 1, col, cm.Id.ToString(), "", "", "");
                    // Insert Webservice data to the excel file
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.Id.ToString(), "", "", "");
                    String strNetworkMembers = "";
                    if (wsInfo.Webservice.NetworkId != -1)
                    {
                        CollaborationNetwork net = cm.IntraNetworks.Find(delegate(CollaborationNetwork nw) { return(nw.Id == wsInfo.Webservice.NetworkId); });
                        foreach (int memberid in net.MembersIds)
                        {
                            strNetworkMembers += memberid + ", ";
                        }
                    }
                    char[] charsToRemove = ", ".ToCharArray();
                    strNetworkMembers = strNetworkMembers.TrimEnd(charsToRemove);
                    excel.InsertData(row + 1, ++col, strNetworkMembers, "", "", "");
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.QoS.ToString(), "", "", "");
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.Type.ToString(), "", "", "");
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.GrowthFactor.ToString(), "", "", "");
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.Reputation.ToString(), "", "", "");
                    row++;
                    currentcol = col;
                    col        = 1;
                }

                // Task allocation to competitive web services
                cm.OfferTaskToWebservice();

                row = currentrow;
                col = currentcol;
                for (int i = 0; i < cm.Members.Count; i++)
                {
                    Community.WebServiceInfo wsInfo = cm.Members[i];
                    // Doing the tasks by web services
                    wsInfo.Webservice.StartDoingTask(wsInfo.CurrentAssignedTask, cm);
                    // Insert Webservice data to the excel file
                    excel.InsertData(row + 1, ++col, wsInfo.NumberOfTasksDone.ToString(), "", "", "");
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.Budget.ToString(), "", "", "");
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.TotalIncome.ToString(), "", "", "");
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.ReadyToCompete.ToString(), "", "", "");
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.HasCollaborated.ToString(), "", "", "");
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.IsCollaborated.ToString(), "", "", "");
                    if (wsInfo.CurrentAssignedTask != null)
                    {
                        excel.InsertData(row + 1, ++col, wsInfo.CurrentAssignedTask.QoS.ToString(), "", "", "");
                        excel.InsertData(row + 1, ++col, wsInfo.CurrentAssignedTask.Fee.ToString(), "", "", "");
                    }
                    else
                    {
                        excel.InsertData(row + 1, ++col, "", "", "", "");
                        excel.InsertData(row + 1, ++col, "", "", "", "");
                    }
                    excel.InsertData(row + 1, ++col, wsInfo.Webservice.ProvidedQoS.ToString(), "", "", "");
                    row++;
                    col = currentcol;
                }

                // Service evaluation and reputation update by Master web service
                cm.UpdateMemberReputation();
            }
        }