private static void TestWrapper() { //Funzione per testare e capire il wrapper... Console.WriteLine("TEST wrapper: funzionamento e verifica del suo funzionamento."); PMed3 pmed3; try { pmed3 = new PMed3(Console.Write, 2, "TestWrap", true, false); } catch (Exception e) { Console.WriteLine("exception: {0}", e.Message); Console.WriteLine("{0}", Directory.GetCurrentDirectory()); return; } #if DEBUG //if (!pmed3.LoadTest(@"\\polocesena\polocesena\UtentiScienze\STUDENTI\raffaello.bertini\Desktop\AAA\Problems\pmedtest_verysmall.txt")) if (!pmed3.LoadTest(@"..\..\..\pmedtest_verysmall.txt")) { Console.WriteLine("ERROR LOAD FILE!!!"); return; } pmed3.ComputeSolutions(false, false); //pmed3.InitProblem(); #endif //if (!pmed3.Load(@"C:\Users\Raffaello\Documents\Uni\AAA\Proj_Exam\Problems\pmed1.txt")) //{ // Console.WriteLine("ERROR LOAD FILE!!!"); // return; //} //pmed3.ComputeSolutions(true, false); //if (!pmed3.InitProblem()) //{ // Console.WriteLine("init failed!! stop!"); // return; //} //pmed3.ShowTableau(); // DA FARE TESTARE UN SEMPLICE PROBLEMA pmed3 per il wrapper ed il formato // della matrice. // quindi fare un progetto che usa il wrapper e risolve il sistema lineare. }
private static void TestPMedWrapper3CCS() { //Problema da testare : //ora proviamo con costo cluster... //Sol0 = {4,2} ; {1,0,3} //Sol1 = {3,1} ; {4,2,0} //C(Sol0) = {0,16}=16 ; {0,15,40}=55 = 71 //C(Sol1) = {0,40}=40 ; {0,16,24}=40 = 80 //min z = 16*S0c0 + 55*S0c1+ 40*s1c0 + 40*s1c1 //s.t. // s0c0 s0c1 s1c0 s1c1 //z 16 55 40 40 //0 0 1 0 1 //1 0 1 1 0 //2 1 0 0 1 //3 0 1 1 0 //4 1 0 0 1 PMed3 pmed3; uint nsol = 2; try { pmed3 = new PMed3(Console.Write, nsol, "TestWrap", true, false); } catch (Exception e) { Console.WriteLine("exception: {0}", e.Message); Console.WriteLine("{0}", Directory.GetCurrentDirectory()); return; } #if DEBUG //if (!pmed3.LoadTest(@"\\polocesena\polocesena\UtentiScienze\STUDENTI\raffaello.bertini\Desktop\AAA\Problems\pmedtest_verysmall.txt")) if (!pmed3.LoadTest(@"..\..\..\pmedtest_verysmall.txt")) { Console.WriteLine("ERROR LOAD FILE!!!"); return; } pmed3.ComputeSolutions(false, false); //pmed3.InitProblem(); #endif //ora modifico le soluzioni a piacimento... pmed3.SolutionsClusters[0][0].Clear(); pmed3.SolutionsClusters[0][0].Add(4); pmed3.SolutionsClusters[0][0].Add(2); pmed3.SolutionsClusters[0][1].Clear(); pmed3.SolutionsClusters[0][1].Add(1); pmed3.SolutionsClusters[0][1].Add(0); pmed3.SolutionsClusters[0][1].Add(3); pmed3.SolutionsClusters[1][0].Clear(); pmed3.SolutionsClusters[1][0].Add(3); pmed3.SolutionsClusters[1][0].Add(1); pmed3.SolutionsClusters[1][1].Clear(); pmed3.SolutionsClusters[1][1].Add(4); pmed3.SolutionsClusters[1][1].Add(2); pmed3.SolutionsClusters[1][1].Add(0); //da rendere publici per testare... //pmed3.InitProblem(); //pmed3.BuildSolutionFromWrapper(); pmed3.ShowWrapperSolution(Console.Write); //double obj = w.getObjectValue(prob); //double[] solvars = new double[4]; //Vettore deputato a contenere i valori della soluzione //w.getSolutionValues(prob, solvars, null, null, null); //for (int i = 0; i < solvars.Length; i++) // Console.WriteLine("{0} solvar {1}", solvars[i], i); //Console.WriteLine("VALORE OTTIMO TROVATO : {0} ", obj); }