advertise laitec sharif univercity تبلیغات در سایت سورس کد تبلیغات در سایت سورس کد
دانلود پروژه مدیریت کتابخانه با سی شارپ و SQL سرور

دانلود پروژه مدیریت کتابخانه با سی شارپ و SQL سرور

3000 تومان
دانلود سورس پروژه فروشگاه کیف با asp.net و sql express

دانلود سورس پروژه فروشگاه کیف با asp.net و sql express

3000 تومان
دانلود برنامه هشت وزیر با جستجوی عمقی در سی شارپ

دانلود برنامه هشت وزیر با جستجوی عمقی در سی شارپ

3000 تومان
دانلود مجموعه 100 سورس ساده و ابتدایی با سی پلاس پلاس

دانلود مجموعه 100 سورس ساده و ابتدایی با سی پلاس پلاس

5000 تومان
دانلود پروژه کامل مهندسی نرم افزار ، شرکت نرم افزاری

دانلود پروژه کامل مهندسی نرم افزار ، شرکت نرم افزاری

3000 تومان

دانلود سورس پروژه TSP با الگوریتم مورچگان Ants

در این برنامه مسئله TSP یا همان فروشنده دوره گرد با استفاده از الگوریتم مورچگان ANT در هوش مصنوعی پیاده سازی شده است.
دانلود سورس پروژه TSP با الگوریتم مورچگان Ants

شرح مساله  فروشنده دوره گرد بدین شکل است:

یک محیط را در نظر بگیرید که در آن تعدادی شهر داریم و هزینه مستقیم  رفتن از شهری به شهر دیگر را می‌دانیم. حال باید کم‌هزینه‌ترین مسیری که از یک شهر شروع می شود و از همه شهرها تنها یکبار عبور می کند و به شهر اولی بازمی گردد را پیدا کنیم.

این مساله را میتوان با الگوریتم های مختلفی حل کرد که یکی از این الگوریتم ها الگوریتم مورچگان یا Ant می باشد.

روش کار کلونی مورچگان به این شکل است که مورچه ها وقتی از یک مسیر عبور می کنند در مسیر خود ماده ای بر جای می گزارند که فرومون نام دارد.

هر مسیری که مورچه بیشتری از آن عبور کرده باشد فرومون بیشتری در ان ریخته شده است و احتمال اینکه مورچه های دیگر جذب این مسیر شوند بیشتر است.

از این روش برای حل مساله TSP نیز بهره گرفته ایم. و در نهایت مسیری که فرومون بیشتری در ان ریخته شده است مسیر بهینه اعلام می شود.

در این برنامه از روش تردینگ  threading  یا همان چند نخی بهره گرفته ایم . در واقع هر مورچه یک Thread جدا ست.ولی محیط برای همه مورچه ها یکی است.

در پایین می توانید سورس این پروژه را دانلود کنید

این هم بخشی از کد برنامه که می توانید در سی شارپ از آن بهره بگیرید

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace ant_tsp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        #region publics   کلی فضای
        public  const int  d= 6;//city counts
       // public const  float tabkhir=0.99 ;
        int[] city = { 0, 1, 2, 3, 4, 5};
                               // 0  1  2  3  4  5
        int[,] path_main = {    { 0, 5, 2, 3, 8, 6 },//0                      طول مسیر ، فاصله شهر ها از هم
                                { 5, 0, 2, 3, 4, 5 }, //1
                                { 2, 2, 0, 3, 4, 5 }, //2
                                { 3, 3, 3, 0, 8, 6 },//3
                                { 8, 4, 4, 8, 0, 5 }, //4
                                { 6, 5, 5, 6, 5, 0} //5
                           };
        int start_place=0;
        int end_ants = 0,stop_time=0,max_ant=1000;
       float [,] path_ph = new float [6, 6];//  مقدار فرومون ریخته شده توسط مورچه ها اینجا قرار میگیرد
 
       private void ant()
        {
            int s_t = stop_time;
            Thread.Sleep(s_t);//یک وقفه برای اینکه مورچه ها تقریبا با هم کارشون رو شروع کنند
            //initialize
            int place_me = start_place;
            List city_tomove = new List();//  شهرهایی که میشود از مکان فعلی رفت،تکراری نباشد
            foreach (int i in city)
                if (i != place_me)
                    city_tomove.Add(i);
            int c_count = city_tomove.Count+1;
            for (int c = 0; c < c_count; c++)
            {
                if (city_tomove.Count == 0)
                    city_tomove.Add(start_place);
                //choose(select) city to move
                //انتخاب مسیر بر حسب فرومون موجود در مسیر
                // مسیری که فرومون ندارد شانسش 1 است
                // شانس بقیه 1+فرومون موجود
                float  sum_phromone=0;
                float [] path_phtemp = new float [d];
                for (int i = 0; i < city_tomove.Count; i++)
                {
                    sum_phromone += path_ph[place_me,city_tomove[i]] + path_ph[city_tomove[i],place_me] + 1;//به دست آوردن مجموع شانس ها
                    path_phtemp[i] = sum_phromone;//   شانس هر یک از شهرهای مسیر  
                }
                Random r = new Random();
                int choose_r=0;
                choose_r = r.Next(Convert.ToInt32( sum_phromone));// انتخاب یک عدد از کل شانسها
                int choose = 0;
                for (int i = 0; i < city_tomove.Count; i++)
                    if (choose_r <= path_phtemp[i])//مقایسه اینکه عدد متعلق به کدام شهر است
                    {
                        choose = city_tomove[i];
                        break;
                    }
                //move
                Thread.Sleep(path_main[place_me, choose]);//شبیه سازی زمان پیمایش مسیر ، یعنی مورچه به اندازه طول مسیر زمان برده تا به اینجا رسیده
                      path_ph[place_me, choose] += 2;//(10- path_main[place_me, choose]);
                      place_me = choose;
                city_tomove.Remove(choose );//نمیتواند به خودش برود  
               
            }
  
            end_ants++;// پایان کار این مورچه
            // مورچه های دیگر در ترد های دیگر مشغولند وفقط این ترد تموم میشود
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //  مورچه فرستاده میشود
            end_ants = 0;
            Thread t = new Thread(new ThreadStart(send_ant));
            t.IsBackground = true;
            t.Start();
           timer1.Enabled = true;         
        }
        private void show_final()
        {
            label2.Text = "ants sended ";// +end_ants.ToString();
            Application.DoEvents();
            Thread.Sleep(max_ant+1000);
            timer1.Enabled = false;
            // نمایش میزان فرومون ها در پایان 
            string ss = "";
            for (int i = 0; i < d; i++)
            {
                for (int j = 0; j < d; j++)
                    ss += Convert.ToInt32(path_ph[i, j]).ToString() + "  _  ";
                listBox1.Items.Add(ss);
                ss = "";
            }
            listBox1.Items.Add("______________________________");
            label1.Text = end_ants.ToString() + " ants ended work";
            // محاسبه طول بهترین مسیر یافت شده
            float sum = 0;
            int p_me = start_place;
            listBox2.Items.Add(p_me);
            List city_tomove = new List();
            for (int j = 0; j < d; j++)
                if (j != p_me)
                    city_tomove.Add(j);
            for (int i = 0; i < d-1; i++)
            {            
                float max = path_ph[p_me, 0];
                int max2 =city_tomove[0];
                for (int k = 1; k < city_tomove.Count; k++)
                    if (max                     {
                        max = path_ph[p_me, city_tomove[k]];
                        max2=city_tomove[k];
                    }
                sum += path_main[p_me, max2];
                p_me = max2;
                city_tomove.Remove(max2);
                listBox2.Items.Add(p_me);             
            }
            listBox2.Items.Add("___");
           label5.Text +=" sum: "+ sum.ToString();
        
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //فرومون ها پاک میشوند
            for (int i = 0; i < d; i++)
                for (int j = 0; j < d; j++)
                    path_ph[i, j] = 0;
            sh_f = new endsend(show_final);
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            label2.Text="started ants: "+  mm.ToString();
            label1.Text = "ended ants: " + end_ants.ToString();
            //  تبخیر فرومون
            for (int i = 0; i < d; i++)
                for (int j = 0; j < d; j++)
                    if (path_ph[i, j] > 0)
                        path_ph[i, j] *= (float)0.8;
        }
        private void label6_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("http://www.sourcecodes.ir");
        }
    }
}

 

سورس این پروژه را پس از پرداخت دانلود کنید

حجم فایل :70 KB



خرید محصول

قیمت این محصول: 4800 تومان

  خرید محصول از طریق پرداخت اینترنتی


  • ← پرداخت از طریق درگاه شاپرک با همه کارت های بانکی انجام خواهد شد .
  • ← پس از پرداخت مبلغ به این صفحه ارجاع داده می شوید و میتوانید فایل مورد نظر را با لینک مستقیم دانلود کنید.
  • ← لطفا در صورتی که مرورگر شما بروز نیست برای خرید ، آن را بروز کنید.
  • ← عدم به روز بودن مرورگر باعث می شود، بجای صفحه درگاه بانک، خطای عدم تایید SSL را مشاهده نمایید.
  • ← در صورت بروز مشکل ، در قسمت تماس با ما از تیم پشتیبانی کمک بگیرید.










1
نظرات
  • user avatar علی:
    ۱۹:۵۴:۳۷ __ ۱۳۹۳/۰۸/۲۰

    مرسی ممنون

نظر خود را ارسال کنید



نام:
ایمیل:
دیدگاه:
captcha
کد امنیتی :


advertise
TSP در سی شارپدانلود برنامه تی اس پی با الگوریتم مورچگان در c#دانلود رایگان الگوریتم مورچگان در سی شارپدانلود برنامه TSP در سی شارپants در سی شارپدانلود برنامه فروشنده دوره گرددانلود سورس کد فروشنده دوره گرد در سی شارپدانلود سورس TSP با الگوریتم ANT در سی شارپتبلیغات ارزان سایت آموزش برنامه نویسیتبلیغات مخصوص طراحان وب سایتتبلیغات در سایت برنامه نویسیتبلیغات اینترنتی برای برنامه نویساندر آغوش مینیمالیسممنوی همبرگر با سه خط افقی که روی یکدیگر قرار گرفته اند نشانه چیست؟ سوئیچ به یک ستون واحدتبدیل متن ساده به وبلاگ و سایت های پویا با React.jsکتابخانه sass برای استفاده آسان تر از آنکتابخانه سطح بالا برای اتوماتیک سازی اعمال مرورگر لیست برچسب ها
تمامی حقوق این سایت اعم از محتوی ، تصاویر ، قالب و ... متعلق به گروه مهندسی وب سایت سورس کد می باشد.
SourceCodes.ir ، افقی روشن برای برنامه نویسان ، از مبتدی تا حرفه ای

پیشنهادات ویژه سورس کد

پکیج ویژه پروژه پایانی رشته کامپیوتر دانلود مجموعه 70 پروژه کاربردی سی شارپ وب سایت فروشگاه با php