コード例 #1
0
        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.
        }
コード例 #2
0
        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);
        }