// graphModelParams[0] is nodeCount // graphModelParams[1] is meanDegree public static void WriteData(SimRecord[] simRecords, SimRecord.DataSet dataSet, string fileName, VRInterfaceModel model) { // var fileDir = Application.dataPath + "/Data/Simulation/" + dataSet.ToString(); var fileDir = "/media/GDrive/ToyamaLab/VRInterface/Assets" + "/Data/Simulation/SelectVisibleGoal" + (model.pSelectVisibleGoal * 100) + "/" + dataSet.ToString(); switch (dataSet) { case SimRecord.DataSet.BarabasiAlbert: fileDir += "_m" + (model.meanDegree / 2).ToString("F0"); fileDir += "_n" + (model.allNodeCount).ToString("F0"); break; case SimRecord.DataSet.WattsStrogatz: fileDir += "_k" + (model.meanDegree).ToString("F0"); fileDir += "_n" + (model.allNodeCount).ToString("F0"); break; } Directory.CreateDirectory(fileDir); var filePath = fileDir + "/" + fileName; StreamWriter sw = new StreamWriter(filePath, false, Encoding.GetEncoding("Shift_JIS")); sw.WriteLine("DataSet,NodeCount,GoalCount,GraphDensity,UserModel(lambda),Distance,ProbSelectUnknown,ProbReturnFirst,ProbSelectVisibleGoal,OperationCount"); foreach (var record in simRecords) { var str = record.dataSet.ToString(); str += "," + record.nodeCount; str += "," + record.goalCount; str += "," + record.graphDensity.ToString("F5"); str += "," + record.lambda.ToString("F1"); str += "," + record.distance; str += "," + record.pSelectUnknown; str += "," + record.pReturnFirst; str += "," + record.pSelectVisibleGoal; str += "," + record.opCount; sw.WriteLine(str); } sw.Close(); }
private async Task SimulateAll() { var tasks = new List <Task>(); // BarabasiAlbertのm2~m6までをシミュレート for (int m = 2; m <= 6; m++) { Debug.Log("m = " + m); dataSet = SimRecord.DataSet.BarabasiAlbert; meanDegree = m * 2; await StartSimulation(); // tasks.Add(StartSimulation()); } await Task.WhenAll(tasks); tasks.Clear(); // WattsStrogatzのk4 ~ k12までをシミュレート for (int k = 4; k <= 12; k += 2) { Debug.Log("k = " + k); dataSet = SimRecord.DataSet.WattsStrogatz; meanDegree = k; await StartSimulation(); // tasks.Add(StartSimulation()); } // await Task.WhenAll(tasks); // tasks.Clear(); // Treeをシミュレート dataSet = SimRecord.DataSet.Tree; await StartSimulation(); // tasks.Add(StartSimulation()); // await Task.WhenAll(tasks); }