Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Random r = new Random();
            int[,] s =
            {
                {7,4,2},
                {1,6,0},
                {5,3,8}
            };
            int[,] f =
            {
                {7,6,4},
                {0,3,2},
                {1,5,8}
            };
            int[,] f2 =
            {
                {8,6,4},
                {7,0,2},
                {1,5,3}
            };
            state xs = new state(s);
            state xf = new state(f2);

            node n = new node();
            node.initArray();
            n.setFinal(xf);
            n.setStart(xs);

            n.comparare(r);

            Console.Read();
        }
Exemplo n.º 2
0
 public void afisTrace(String s)
 {
     Console.WriteLine(s+"\n");
     state temp = new state(start);
     for (int i = 0; i < s.Length; i++)
     {
         if (s[i] == 'u')
         {
             temp.mutasus();
             temp.afis();
             Console.WriteLine("------------");
         }
         if (s[i] == 'j')
         {
             temp.mutajos();
             temp.afis();
             Console.WriteLine("------------");
         }
         if (s[i] == 's')
         {
             temp.mutast();
             temp.afis();
             Console.WriteLine("------------");
         }
         if (s[i] == 'd')
         {
             temp.mutadr();
             temp.afis();
             Console.WriteLine("------------");
         }
     }
 }
Exemplo n.º 3
0
 public state(state x)
 {
     a = new int[3, 3];
     for (int l = 0; l < 3; l++)
         for (int c = 0; c < 3; c++)
             a[l, c] = x.a[l, c];
     pozl = x.pozl;
     pozc = x.pozc;
     ltrace = x.ltrace;
 }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            Random r = new Random();
            int[,] s =
            {
                {0,2,3},
                {7,1,6},
                {5,4,8}
            };
            int[,] fe =
            {
                {7,2,0},
                {5,6,3},
                {4,1,8}
            };
            int[,] f =
            {
                {7,6,4},
                {0,3,2},
                {1,5,8}
            };
            int[,] f2 =
            {
                {1,2,3},
                {4,0,5},
                {6,7,8}
            };
            state xs = new state(s);
            state xf = new state(fe);

            node n = new node();
            node.initArray();
            n.setFinal(xf);
            n.setStart(xs);
            //n.comparare(r);

            n.executeHC();
            //n.executeA();
            //n.executeBF4();

            Console.Read();
        }
Exemplo n.º 5
0
 public node(int[,] x)
 {
     val = new state(x);
 }
Exemplo n.º 6
0
 public node(state x)
 {
     val = new state(x);
 }
Exemplo n.º 7
0
 public node()
 {
     val = new state();
 }
Exemplo n.º 8
0
        public bool executeA()
        {
            DateTime dt = DateTime.Now;
            state temp;
            devisA.Add(start,calcDist(start));

            while (devisA.Count != 0 && cnt < 3000)
            {

                val = devisA.First().Key;
                devisA.Remove(val);
                Console.WriteLine("PAS:"******"OMG SUCCESS!!!");
                    trace = val.rettr();
                    //Console.WriteLine(trace);
                         afisTrace(trace);
                    //     Thread.Sleep(5000);
                    return true;
                }

                vis.Add(val);

                //       Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutasus())
                    if (isVisited(temp) == false)
                        if (!devisA.ContainsKey(temp))
                            devisA.Add(temp, calcA(temp));
                        else
                            if(calcA(temp)<devisA[temp])
                            {
                                devisA.Remove(temp);
                                devisA.Add(temp, calcA(temp));
                            }
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //       Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutajos())
                    if (isVisited(temp) == false)
                        if (!devisA.ContainsKey(temp))
                            devisA.Add(temp, calcA(temp));
                        else
                            if(calcA(temp)<devisA[temp])
                            {
                                devisA.Remove(temp);
                                devisA.Add(temp,calcA(temp));
                            }
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //      Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutast())
                    if (isVisited(temp) == false)
                        if (!devisA.ContainsKey(temp))
                            devisA.Add(temp, calcA(temp));
                        else
                            if(calcA(temp)<devisA[temp])
                            {
                                devisA.Remove(temp);
                                devisA.Add(temp,calcA(temp));
                            }
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //    Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutadr())
                    if (isVisited(temp) == false)
                        if (!devisA.ContainsKey(temp))
                            devisA.Add(temp, calcA(temp));
                        else
                            if(calcA(temp)<devisA[temp])
                            {
                                devisA.Remove(temp);
                                devisA.Add(temp,calcA(temp));
                            }
                    else
                        Console.WriteLine("Stare deja vizitata!");

                var v = devisA.OrderBy(k => k.Value);
                devisA = new Dictionary<state, int>();
                foreach (var item in v)
                    devisA.Add(item.Key, item.Value);
            }

            ts = DateTime.Now - dt;
            Console.WriteLine("NU S-A GASIT SOLUTIE!!!");
            return false;
        }
Exemplo n.º 9
0
        public bool executeBF2()
        {
            DateTime dt=DateTime.Now;
            state temp;

            while (true)
            {
                cnt++;
                Console.WriteLine("APELARI:" + cnt);
                if (val == fin)
                {
                    ts=DateTime.Now-dt;
                    Console.WriteLine("OMG SUCCESS!:");
                  //  Thread.Sleep(2000);
                    Console.Clear();
                    afisTrace(trace);
                  //  Thread.Sleep(20000);
                    return true;
                }
                state min = new state();

                //       Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutasus())
                    if (isVisited(temp) == false)
                    {
                        temp.afis();
                        vis.Add(temp);
                        min = new state(temp);
                    }
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //       Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutajos())
                    if (isVisited(temp) == false)
                    {
                        temp.afis();
                        vis.Add(temp);
                        if (calcDiff(temp) < calcDiff(min))
                            min = new state(temp);
                    }
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //      Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutast())
                    if (isVisited(temp) == false)
                    {
                        temp.afis();
                        vis.Add(temp);
                        if (calcDiff(temp) < calcDiff(min))
                            min = new state(temp);
                    }
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //    Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutadr())
                    if (isVisited(temp) == false)
                    {
                        temp.afis();
                        vis.Add(temp);
                        if (calcDiff(temp) < calcDiff(min))
                            min = new state(temp);
                    }
                    else
                        Console.WriteLine("Stare deja vizitata!");

                val = new state(min);
                setTrace(trace + val.rettr());

                if (val == new state())
                {
                    ts = DateTime.Now - dt;
                    Console.WriteLine("NU EXISTA SOLUTIE!");
                  //  Thread.Sleep(20000);
                    return false;
                }

            }
        }
Exemplo n.º 10
0
 public void setStart(state x)
 {
     val = new state(x);
     start = new state(x);
     trace = "";
 }
Exemplo n.º 11
0
 public node()
 {
     val = new state();
 }
Exemplo n.º 12
0
        public void executeBKT()
        {
            cnt++;
            Console.WriteLine("APELARI:"+cnt);

            if(cnt>4600)
            {
                Console.WriteLine("NU EXISTA SOLUTIE!");
                Thread.Sleep(20000);
                Environment.Exit(0);
            }

            if (val == fin)
            {
                Console.WriteLine("OMG SUCCESS!:");
                Thread.Sleep(2000);
                Console.Clear();
                afisTrace(trace);
                Thread.Sleep(20000);
                Environment.Exit(1);
            }

            state temp = new state(val);

             //       Thread.Sleep(500);
               if (temp.mutasus())
               {
                   if (isVisited(temp) == false)
                   {
                       temp.afis();
                       vis.Add(temp);
                       msus = new node(temp);
                       msus.setTrace(trace + 'u');
                   }
                   else
                       Console.WriteLine("Stare deja vizitata!");
               }
             //        Thread.Sleep(500);
               temp = new state(val);
               if (temp.mutajos())
               {
                   if (isVisited(temp) == false)
                   {
                       temp.afis();
                       vis.Add(temp);
                       mjos = new node(temp);
                       mjos.setTrace(trace + 'j');
                   }
                   else
                       Console.WriteLine("Stare deja vizitata!");
               }
               //      Thread.Sleep(500);
               temp = new state(val);
               if (temp.mutast())
               {
                   if (isVisited(temp) == false)
                   {
                       temp.afis();
                       vis.Add(temp);
                       mst = new node(temp);
                       mst.setTrace(trace + 's');
                   }
                   else
                       Console.WriteLine("Stare deja vizitata!");
               }

            //     Thread.Sleep(500);
               temp = new state(val);
               if (temp.mutadr())
               {
                   if (isVisited(temp) == false)
                   {
                       temp.afis();
                       vis.Add(temp);
                       mdr = new node(temp);
                       mdr.setTrace(trace + 'd');
                   }
                   else
                       Console.WriteLine("Stare deja vizitata!");
               }
             //       Thread.Sleep(500);
             /*       state[] xtest = (state [])vis.ToArray(typeof(state));
            Console.WriteLine("---------------------------");
            for (int c = 0; c < xtest.Length; c++)
                xtest[c].afis();
            Console.WriteLine("---------------------------");   */

            if (msus != null)
                msus.executeBKT();
            if (mjos != null)
                mjos.executeBKT();
            if(mst!=null)
                mst.executeBKT();
            if(mdr!=null)
                mdr.executeBKT();
        }
Exemplo n.º 13
0
 public int calcA(state x)
 {
     return(calcDist(x) + x.rettr().Length);
 }
Exemplo n.º 14
0
 public node(int[,] x)
 {
     val = new state(x);
 }
Exemplo n.º 15
0
        }       //dfs diff

        public bool executeBF3()
        {
            DateTime dt = DateTime.Now;
            state    temp;

            devisC.Enqueue(start);

            var distCalc = new Dictionary <state, int>();

            while (devisC.Count != 0 && cnt < 3000)
            {
                val      = devisC.Dequeue();
                distCalc = new Dictionary <state, int>();
                Console.WriteLine("PAS:"******"OMG SUCCESS!!!");
                    trace = val.rettr();
                    Console.WriteLine(trace);
                    //    afisTrace(trace);
                    //    Thread.Sleep(5000);
                    return(true);
                }

                vis.Add(val);

                //       Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutasus())
                {
                    if (isVisited(temp) == false)
                    {
                        distCalc.Add(temp, calcDist(temp));
                    }
                    else
                    {
                        Console.WriteLine("Stare deja vizitata!");
                    }
                }

                //       Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutajos())
                {
                    if (isVisited(temp) == false)
                    {
                        distCalc.Add(temp, calcDist(temp));
                    }
                    else
                    {
                        Console.WriteLine("Stare deja vizitata!");
                    }
                }

                //      Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutast())
                {
                    if (isVisited(temp) == false)
                    {
                        distCalc.Add(temp, calcDist(temp));
                    }
                    else
                    {
                        Console.WriteLine("Stare deja vizitata!");
                    }
                }

                //    Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutadr())
                {
                    if (isVisited(temp) == false)
                    {
                        distCalc.Add(temp, calcDist(temp));
                    }
                    else
                    {
                        Console.WriteLine("Stare deja vizitata!");
                    }
                }

                var q = distCalc.OrderBy(k => k.Value);
                foreach (var item in q)
                {
                    devisC.Enqueue(item.Key);
                }
            }

            ts = DateTime.Now - dt;
            Console.WriteLine("NU S-A GASIT SOLUTIE!!!");
            return(false);
        }       //bfs dist
Exemplo n.º 16
0
 public node(state x)
 {
     val = new state(x);
 }
Exemplo n.º 17
0
        public bool executeBF4()
        {
            DateTime dt = DateTime.Now;
            state temp;
            devisC.Enqueue(start);

            var distCalc = new Dictionary<state, int>();

            while (devisC.Count != 0 && cnt < 3000)
            {

                val = devisC.Dequeue();
                distCalc = new Dictionary<state, int>();
                Console.WriteLine("PAS:"******"OMG SUCCESS!!!");
                    trace = val.rettr();
                    Console.WriteLine(trace);
                    //     afisTrace(trace);
                    //     Thread.Sleep(5000);
                    return true;
                }

                vis.Add(val);

                //       Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutasus())
                    if (isVisited(temp) == false)
                        distCalc.Add(temp, calcDiff(temp));
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //       Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutajos())
                    if (isVisited(temp) == false)
                        distCalc.Add(temp, calcDiff(temp));
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //      Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutast())
                    if (isVisited(temp) == false)
                        distCalc.Add(temp, calcDiff(temp));
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //    Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutadr())
                    if (isVisited(temp) == false)
                        distCalc.Add(temp, calcDiff(temp));
                    else
                        Console.WriteLine("Stare deja vizitata!");

                var q = distCalc.OrderBy(k => k.Value);
                foreach (var item in q)
                    devisC.Enqueue(item.Key);

            }

            ts = DateTime.Now - dt;
            Console.WriteLine("NU S-A GASIT SOLUTIE!!!");
            return false;
        }
Exemplo n.º 18
0
 public bool isVisited(state x)
 {
     state[] xtest = (state[])vis.ToArray(typeof(state));
     for (int c = 0; c < xtest.Length; c++)
         if (xtest[c] == x)
             return true;
     return false;
 }
Exemplo n.º 19
0
 public int calcDiff(state x)
 {
     if (x == new state())
         return 1337;
     int d = 0;
     for (int l = 0; l < 3; l++)
         for (int c = 0; c < 3; c++)
             if (x.reta()[l, c] != fin.reta()[l, c])
                 d++;
     return d;
 }
Exemplo n.º 20
0
        public void executeBKT()
        {
            cnt++;
            Console.WriteLine("APELARI:" + cnt);

            if (cnt > 4600)
            {
                Console.WriteLine("NU EXISTA SOLUTIE!");
                Thread.Sleep(20000);
                Environment.Exit(0);
            }

            if (val == fin)
            {
                Console.WriteLine("OMG SUCCESS!:");
                Thread.Sleep(2000);
                Console.Clear();
                afisTrace(trace);
                Thread.Sleep(20000);
                Environment.Exit(1);
            }

            state temp = new state(val);

            //       Thread.Sleep(500);
            if (temp.mutasus())
            {
                if (isVisited(temp) == false)
                {
                    temp.afis();
                    vis.Add(temp);
                    msus = new node(temp);
                    msus.setTrace(trace + 'u');
                }
                else
                {
                    Console.WriteLine("Stare deja vizitata!");
                }
            }
            //        Thread.Sleep(500);
            temp = new state(val);
            if (temp.mutajos())
            {
                if (isVisited(temp) == false)
                {
                    temp.afis();
                    vis.Add(temp);
                    mjos = new node(temp);
                    mjos.setTrace(trace + 'j');
                }
                else
                {
                    Console.WriteLine("Stare deja vizitata!");
                }
            }
            //      Thread.Sleep(500);
            temp = new state(val);
            if (temp.mutast())
            {
                if (isVisited(temp) == false)
                {
                    temp.afis();
                    vis.Add(temp);
                    mst = new node(temp);
                    mst.setTrace(trace + 's');
                }
                else
                {
                    Console.WriteLine("Stare deja vizitata!");
                }
            }

            //     Thread.Sleep(500);
            temp = new state(val);
            if (temp.mutadr())
            {
                if (isVisited(temp) == false)
                {
                    temp.afis();
                    vis.Add(temp);
                    mdr = new node(temp);
                    mdr.setTrace(trace + 'd');
                }
                else
                {
                    Console.WriteLine("Stare deja vizitata!");
                }
            }
            //       Thread.Sleep(500);

            /*       state[] xtest = (state [])vis.ToArray(typeof(state));
             *     Console.WriteLine("---------------------------");
             *     for (int c = 0; c < xtest.Length; c++)
             *         xtest[c].afis();
             *     Console.WriteLine("---------------------------");   */

            if (msus != null)
            {
                msus.executeBKT();
            }
            if (mjos != null)
            {
                mjos.executeBKT();
            }
            if (mst != null)
            {
                mst.executeBKT();
            }
            if (mdr != null)
            {
                mdr.executeBKT();
            }
        }       //backtracking
Exemplo n.º 21
0
        public bool executeHC()
        {
            DateTime dt = DateTime.Now;
            state temp;

            var distCalc = new Dictionary<state, int>();

            val = start;
            while ((distCalc.Count != 0 ||cnt==0) && (cnt < 3000))
            {
                distCalc = new Dictionary<state, int>();
                Console.WriteLine("PAS:"******"OMG SUCCESS!!!");
                    trace = val.rettr();
                    Console.WriteLine(trace);
                    afisTrace(trace);
                    //    Thread.Sleep(5000);
                    return true;
                }

                vis.Add(val);
                //       Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutasus())
                    if (isVisited(temp) == false)
                        distCalc.Add(temp, calcDist(temp));
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //       Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutajos())
                    if (isVisited(temp) == false)
                        distCalc.Add(temp, calcDist(temp));
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //      Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutast())
                    if (isVisited(temp) == false)
                        distCalc.Add(temp, calcDist(temp));
                    else
                        Console.WriteLine("Stare deja vizitata!");

                //    Thread.Sleep(500);
                temp = new state(val);
                if (temp.mutadr())
                    if (isVisited(temp) == false)
                        distCalc.Add(temp, calcDist(temp));
                    else
                        Console.WriteLine("Stare deja vizitata!");

                var q = distCalc.OrderBy(k => k.Value);
                foreach (var item in q)
                {
                    val = item.Key;
                    break;
                }
            }

            ts = DateTime.Now - dt;
            Console.WriteLine("NU S-A GASIT SOLUTIE!!!");
            return false;
        }
Exemplo n.º 22
0
 public int calcDist(state x)
 {
     if (x == new state())
         return 1337;
     int d = 0;
     for (int lc = 0; lc < 3; lc++)
         for (int cc = 0; cc < 3; cc++)
             for (int lf = 0; lf < 3; lf++)
                 for (int fc = 0; fc < 3; fc++)
                     if (x.reta()[lc, cc] == fin.reta()[lf, fc])
                         d =d+ Math.Abs(lc-lf)+Math.Abs(cc-fc);
     return d;
 }
Exemplo n.º 23
0
 public void setFinal(state x)
 {
     fin = new state(x);
 }
Exemplo n.º 24
0
        public void comparare(Random r)
        {
            int n1Suc = 0, n1Fal = 0;
            int n2Suc = 0, n2Fal = 0;
            int n3Suc = 0, n3Fal = 0;
            int n4Suc = 0, n4Fal = 0;
            int n5Suc = 0, n5Fal = 0;

            int m1Ap = 0;
            int m2Ap = 0;
            int m3Ap = 0;
            int m4Ap = 0;
            int m5Ap = 0;

            int m1Ts = 0;
            int m2Ts = 0;
            int m3Ts = 0;
            int m4Ts = 0;
            int m5Ts = 0;

            int m1Dr = 0;
            int m2Dr = 0;
            int m3Dr = 0;
            int m4Dr = 0;
            int m5Dr = 0;

            for (int i = 0; i < 100; i++)
            {
                start = new state();
                start.fillRand(r);

                if (executeBF() == true)
                {
                    m1Ap += cnt;
                    m1Ts += ts.Milliseconds;
                    m1Dr += trace.Length;
                    n1Suc++;
                    initArray();
                }
                else
                {
                    n1Fal++;
                    initArray();
                }

                if (executeBF2() == true)
                {
                    m2Ap += cnt;
                    m2Ts += ts.Milliseconds;
                    m2Dr += trace.Length;
                    n2Suc++;
                    initArray();
                }
                else
                {
                    n2Fal++;
                    initArray();
                }

                if (executeBF3() == true)
                {
                    m3Ap += cnt;
                    m3Ts += ts.Milliseconds;
                    m3Dr += trace.Length;
                    n3Suc++;
                    initArray();
                }
                else
                {
                    n3Fal++;
                    initArray();
                }

                if (executeBF4() == true)
                {
                    m4Ap += cnt;
                    m4Ts += ts.Milliseconds;
                    m4Dr += trace.Length;
                    n4Suc++;
                    initArray();
                }
                else
                {
                    n4Fal++;
                    initArray();
                }

                if (executeA() == true)
                {
                    m5Ap += cnt;
                    m5Ts += ts.Milliseconds;
                    m5Dr += trace.Length;
                    n5Suc++;
                    initArray();
                }
                else
                {
                    n5Fal++;
                    initArray();
                }
            }

            if (n1Suc > 0)
            {
                m1Ap = m1Ap / n1Suc;
                m1Ts = m1Ts / n1Suc;
                m1Dr = m1Dr / n1Suc;
            }

            if (n2Suc > 0)
            {
                m2Ap = m2Ap / n2Suc;
                m2Ts = m2Ts / n2Suc;
                m2Dr = m2Dr / n2Suc;
            }

            if (n3Suc > 0)
            {
                m3Ap = m3Ap / n3Suc;
                m3Ts = m3Ts / n3Suc;
                m3Dr = m3Dr / n3Suc;
            }

            if (n4Suc > 0)
            {
                m4Ap = m4Ap / n4Suc;
                m4Ts = m4Ts / n4Suc;
                m4Dr = m4Dr / n4Suc;
            }

            if (n5Suc > 0)
            {
                m5Ap = m5Ap / n5Suc;
                m5Ts = m5Ts / n5Suc;
                m5Dr = m5Dr / n5Suc;
            }

            Console.WriteLine("\nRezultate DFS 1(prin Distanta):\n Nr cazuri cu success: " + (n1Suc-1) + "\n Nr cazuri fara success: " + n1Fal + "\n Nr mediu de iteratii: " + m1Ap + "\n Timp mediu: " + m1Ts + "\n Drum mediu: "+m1Dr);
            Console.WriteLine("\nRezultate DFS 2(prin Diferenta):\n Nr cazuri cu success: " + (n2Suc-1) + "\n Nr cazuri fara success: " + n2Fal + "\n Nr mediu de iteratii: " + m2Ap + "\n Timp mediu: " + m2Ts + "\n Drum mediu: " + m2Dr);
            Console.WriteLine("\nRezultate BFS 1(prin Diferenta):\n Nr cazuri cu success: " + (n3Suc-1) + "\n Nr cazuri fara success: " + n3Fal + "\n Nr mediu de iteratii: " + m3Ap + "\n Timp mediu: " + m3Ts + "\n Drum mediu: " + m3Dr);
            Console.WriteLine("\nRezultate BFS 2(prin Diferenta):\n Nr cazuri cu success: " + (n4Suc-1) + "\n Nr cazuri fara success: " + n4Fal + "\n Nr mediu de iteratii: " + m4Ap + "\n Timp mediu: " + m4Ts + "\n Drum mediu: " + m4Dr);
            Console.WriteLine("\nRezultate  A* (prin Diferenta):\n Nr cazuri cu success: " + (n5Suc-1) + "\n Nr cazuri fara success: " + n5Fal + "\n Nr mediu de iteratii: " + m5Ap + "\n Timp mediu: " + m5Ts + "\n Drum mediu: " + m5Dr);
        }
Exemplo n.º 25
0
 public int calcA(state x)
 {
     return calcDist(x) + x.rettr().Length;
 }
Exemplo n.º 26
0
        public void comparare(Random r)
        {
            int n1Suc = 0, n1Fal = 0;
            int n2Suc = 0, n2Fal = 0;

            int m1Ap = 0;
            int m2Ap = 0;

            int m1Ts = 0;
            int m2Ts = 0;

            for (int i = 0; i < 100; i++)
            {
                start = new state();
                start.fillRand(r);
                val = new state(start);

                if (executeBF() == true)
                {
                    m1Ap += cnt;
                    m1Ts += ts.Milliseconds;
                    n1Suc++;
                    initArray();
                }
                else
                {
                    n1Fal++;
                    initArray();
                }
            }

            m1Ap = m1Ap / 100;
            m1Ts = m1Ts / 100;

            for (int i = 0; i < 100; i++)
            {
                start = new state();
                start.fillRand(r);
                val = new state(start);

                if (executeBF2() == true)
                {
                    m2Ap += cnt;
                    m2Ts += ts.Milliseconds;
                    n2Suc++;
                    initArray();
                }
                else
                {
                    n2Fal++;
                    initArray();
                }
            }

            m2Ap = m2Ap / 100;
            m2Ts = m2Ts / 100;

            Console.WriteLine("\nRezultate BF(prin Distanta):\n Nr cazuri cu success: " + n1Suc + "\n Nr cazuri fara success: " + n1Fal + "\n Nr mediu de iteratii: " + m1Ap + "\n Timp mediu: " + m1Ts);
            Console.WriteLine("\nRezultate BF2(prin Diferenta):\n Nr cazuri cu success: " + n2Suc + "\n Nr cazuri fara success: " + n2Fal + "\n Nr mediu de iteratii: " + m2Ap + "\n Timp mediu: " + m2Ts);
        }