Exemple #1
0
 public int calcA(state x)
 {
     return calcDist(x) + x.rettr().Length;
 }
Exemple #2
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;
        }
Exemple #3
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;
        }
Exemple #4
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);
                }
            }
        }
Exemple #5
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;
        }
Exemple #6
0
        }       //A*(dist)

        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);
        }       //hill climbing
Exemple #7
0
        }       //bfs diff

        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);
        }       //A*(dist)
Exemple #8
0
        }       //bfs dist

        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);
        }       //bfs diff
Exemple #9
0
 public int calcA(state x)
 {
     return(calcDist(x) + x.rettr().Length);
 }
Exemple #10
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;
                }

            }
        }