حل مسئله TSP با الگوریتم ژنتیک (GA) در سی شارپ (#C)

الگوریتم ژنتیک

در این پروژه شما با نوشتن و کارکرد الگوریتم ژنتیک در مسئله ای مانند TSP یا فروشنده دوره گرد آشنا خواهید شد. هر دو مورد TSP و GA برای کامپیوتری ها آشنا هستند ولی در صورتی که در این دو مورد اطلاعاتی ندارید می توانید لینک های زیر را مشاهده کنید.

الگوریتم ژنتیک – Genetic Algorithm

مسئله فروشنده دوره گرد – TSP

برای دریافت فایل پروژه این مطلب در محیط Visual Studio 2010 و به زبان سی شارپ (#C) به ادامه همین مطلب مراجعه نمایید.

الگوریتم ژنتیک

تنها دقت کنید که پس از اجرا باید بر روی پنل سمت چپ شهرها را دستی با ماوس کلیک کنید و محدودیتی در شهرها نیست ولی با این الگوریتم زیر 10 تای 15 شهر را خوب جواب می‌دهد.

Download TSP GA SourceCode

نوشته‌های مرتبط

14 دیدگاه برای “حل مسئله TSP با الگوریتم ژنتیک (GA) در سی شارپ (#C)”

  1. goog

    به نظر من بهتر در توضیحاتش ذکر بشه که باید شهر ها به صورت پوینت گذاری به وجود بیاد
    ولی از این مطلب گذشته , من هم ایرادی در اجرای 5 تا یا بیشتر یا کمتر ندیدم
    فقط باید حداقل یک یا 2 پوینت در پنل سمت چپ وارد بشود
    انشاللهاگه شد کاملش بکنم در اختیار تون قرار می دم
    موفق باشید

    1. با سلام ؛ توضیح رو اضافه کردم ؛ منتظر نسخه اصلا شده توسط شما هم هستیم دوست عزیز…

  2. مسعود غیاث بیگی

    * دومین کامنت بالا رو یاد آوری میکنم از خودتون :
    ———————————————————————————–
    با سلام ؛ این پروژه درس طراجی الگوریتم هست و من خودم اون رو ننوشتم ؛ تا اون جایی هم که تست کرده بودم خطایی نداشت ؛ الان هم تعطیلات عید هست و کار و زندگی و چند پروژه دیگه که فکر نمی کنم وقتی برای این داشته باشم. اگر شما دوست داشتید نسخه ویرایش شده رو ارائه بدید تا به اسم خودتون درج بشه.
    ———————————————————————————–
    وقتی خودتان ننوشید یعنی از جایی به امانت گرفتین ،به اصطلاح جمع آوری مطلب کردید .
    شهر که روی 5 ست باشه ، برنامه به شما زمان اجرا خطا میده ، من روی -0- گذاشتم جواب داد .

    1. خودم ننوشتم منظورم این هست که تنها خودم از 0 تا 100 اون رو کد نویسی نکردم و از نوشتن اون دو سالی هم می گذره! برای پروژه درس طراحی الگوریتم بود که همراه استاد و دوستان نوشته بودیم تا الگوریتم ژنتیک رو یاد بگیریم… و جواب اول رو بخاطر اون گفتم ؛ ولی الگوریتم و تا حدود زیادی کد نویسی برنامه رو در جریان هستم و همه جوره نستش کردم و از روی همین پروژه دیگه ای با ژنتیک نوشتم پس بی خبر هم نیستم.

      پروژه رو با سورس گذاشتم تا هرکسی هر جور که دوست داشت ویرایش کنه و استفاده کنه! برای شما روی 5 خطا می ده ؛ هر عددی که دوست دارید رو بذارید ؛ برای من که هنوز هم خطایی نمی ده تا دست به ویرایش بزنم!

  3. مسعود غیاث بیگی

    با سلام ، من برنامه رو چک کردم ، مشکل خاصی نداره ، فقط دوستانی که میخوان اجرا کنن باید دو پارامتر زیر رو دستی ست کنن توی Form1.cs

    private City[] allCity = new City[10];
    private int countCity =0;

    بعد از این مرحله ، روی صفحه سفید کلیک کنید که شهر ها ایجاد بشن ، تو جه کنید من در خط بالا تعداد شهرها رو 10 ست کردم ، پس باید 10 بار کلیک کنم روی نقشه ، نه کمتر و نه بیشتر ..

    اگه به کارتون اومد ، برای آرامش رفتگان خودتون و من یه فاتحه بخونید . 🙂

    روز خوش .

    1. مسعود غیاث بیگی

      بله ، جواب میده ، اما اینطوری تریس کردنش راحت تر میشه ، الان پروژه رو دانلود کنن ، بدون داشتن اطلاع از این جریان ست کردن ها که countCity هم روی 5 ست شده ، برنامه خطا میده .
      به هر حال ممنون از شما بابت جمع آوری و به اشتراک گذاری 🙂

      1. پروژه برای درس طراحی الگوریتم بود! جایی نریخته بود که جمع آوریش کنم…

        ست کردن روی 5 ؟! ست کردن نمی خواد که! کلیک که می شه شاره شهرها از 0 شروع به ++ شدن می کنه و هر شهر با کلاسش ساخته می شه!

    2. لازم به این کار نیست! ماکزیموم 1000 شهر تعریف شده که با هر بار ایجاد شهر جدید یکی به countCity افزورده می شه! شما ماکزیموم رو 10 شهر فرض کردی که باز هم مشکلی نداره!!

  4. goog

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

    موفق باشید و عیدتون مبارک

    1. با سلام. نییک و پرسش؟ کامل کنید تا به اسم خودتون درج کنم و نمونه ای کامل تر برای دوستانی باشه که بعدا می خوان ازش استفاده کنند. منتظر هستم…

  5. goog

    ممنون برای پاسخ گویی تون
    انشالله اگه درست شد میفرستم
    فقط شما بفرمایید فایل exe اصلی داخل شاخه TSPGA\bin\Debug رو که اجرا کردید (قبل از اینکه سی شارپ رو باز کنید و فایل رو اور رایت کنید) اون فایل اصلی کار می کرد ؟
    در صورت امکان این مطلب رو یک تست بفرمایید

    1. سلام بازم تست کردم مشکلی نبود ، ولی توی همون فایل زیپ ران تایم ارور داد و وقتی از زیپ خارج کردم خوب اجرا شد و مشکلی نداشتم!

  6. goog

    باسلام و تشکر برای برنامه خوبتون من دقیقا دنبال همین برنامه بودم
    ولی این برنامه یک خطای که اجرا نمیشه
    در متد سازنده کلاس chro خطای اور فلو میده
    public Chro(City[] c, int cCity)
    {
    allCity = c;
    countCity = cCity;
    fit = 0;
    chr = new int[countCity – 1];
    همین آخر میگه countCity برابر 0 هست منهای یک عددی میده که تو ایندکس آرایه مسلما نمی تونه بیاد
    ممنون میشم اگه اصلاحیش رو هم ضمیمه کنید
    با تشکر

    1. با سلام ؛ این پروژه درس طراجی الگوریتم هست و من خودم اون رو ننوشتم ؛ تا اون جایی هم که تست کرده بودم خطایی نداشت ؛ الان هم تعطیلات عید هست و کار و زندگی و چند پروژه دیگه که فکر نمی کنم وقتی برای این داشته باشم. اگر شما دوست داشتید نسخه ویرایش شده رو ارائه بدید تا به اسم خودتون درج بشه.

پیام بگذارید