Artificial Intelligence - هوش مصنوعی  
انجمن را در گوگل محبوب کنيد :

بازگشت   Artificial Intelligence - هوش مصنوعی > محاسبات نرم > الگوریتم ژنتیک(Genetic Algorithm)


 
تبليغات سايت
Iranian Association for the Advancement of Artificial Intelligence
ارسال تاپيک جديد  پاسخ
 
LinkBack ابزارهاي تاپيک نحوه نمايش
قديمي ۰۵-۲۸-۱۳۸۷, ۱۱:۳۲ قبل از ظهر   #1 (لینک دائم)
Active users
 
آواتار Mina
 
تاريخ عضويت: ارديبهشت ۱۳۸۷
محل سكونت: فعلا همینجا > ایران
پست ها: 24
تشكرها: 2
192 تشكر در 23 پست
ارسال پيغام Yahoo به Mina
Wink ارائه الگوريتم تركيبي مورچگان و ژنتيك براي حل مسئله فروشنده دوره گرد

این مقاله یکی از مقالاتی بود که توی کنفرانس بین المللی صنایع ارائه داده شد. و جزء مقالات معتبر شناخته شد. در این مقاله مسئله ی معروف فروشنده با ژنتیک الگوریتم حل شده .

مسئله فروشنده دوره گرد از n شهر تشكيل شده كه بين هر دو شهرآن يك مسير مي تواند وجود داشته باشد . فروشنده دوره گرد مي خواهد از يكي از اين شهرها مسير خود را شروع كرده و سپس به كليه شهرها مسافرت كند و از هر يك از شهرها يكبار فقط بگذرد.

راه حل این مساله رو توی مقاله ببینید.

ارائه الگوريتم تركيبي مورچگان و ژنتيك براي حل مسئله فروشنده دوره گرد
فايل ضميمه
نوع فايل: pdf A-10-470-1.pdf (302.5 كيلو بايت, 4892 نمايش)
Mina آفلاين است   پاسخ با نقل قول
از Mina تشكر كرده اند:
A162 (۰۲-۲۳-۱۳۸۸), ali_darinoos (۱۲-۱۳-۱۳۸۹), cdeb_4975 (۰۴-۲۲-۱۳۹۱), ehsan_system (۰۹-۲۱-۱۳۸۹), frd_amirkhani (۱۲-۹-۱۳۸۸), gh452003 (۰۹-۱۳-۱۳۸۸), hamed.n53 (۰۸-۱۹-۱۳۹۳), mahz2000 (۰۲-۲۹-۱۳۸۹), mjd (۱۲-۱۴-۱۳۸۸), mohamadice (۰۹-۲۴-۱۳۸۸), msm (۱۲-۲۲-۱۳۹۱), m_sadegh (۰۲-۳۱-۱۳۸۹), nasersalehiazar (۰۸-۲۴-۱۳۸۹), rezasony (۱۰-۳۰-۱۳۸۷), saleh57 (۰۶-۱۴-۱۳۸۹), samane_89 (۰۲-۲۵-۱۳۹۰), SetayeshD (۱۱-۱۲-۱۳۸۹), taramahani (۱۰-۲۵-۱۳۹۲), Violet_kia2 (۰۲-۶-۱۳۹۰), اولين گام (۱۱-۲۷-۱۳۸۸)

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online  
قديمي ۱۰-۱-۱۳۸۷, ۰۶:۲۰ بعد از ظهر   #2 (لینک دائم)
Administrator
 
آواتار Siavash
 
تاريخ عضويت: ارديبهشت ۱۳۸۷
محل سكونت: تهران
پست ها: 179
تشكرها: 27
439 تشكر در 108 پست
My Mood: Mehrabon
پيش فرض

دوست عزيز... در همين انجمن يك Library با نام AForge.net مورد بررسي قرار گرفته كه اگر جستجو كنيد در انجمن پيداش مي كنيد. در اون يكي از مثال هاي بررسي شده در بخش الگوريتم ژنتيك همين مثال فروشنده ي دوره گرد يا TSP‌هست كه با زبان C# پياده سازي شده...
اگر پيداش نكرديد بگيد تا آدرس دقيقتري بدم...
__________________
Siavash آفلاين است   پاسخ با نقل قول
از Siavash تشكر كرده است:
gh452003 (۰۹-۱۳-۱۳۸۸)
قديمي ۱۰-۱-۱۳۸۷, ۰۶:۵۹ بعد از ظهر   #3 (لینک دائم)
Active users
 
آواتار Mina
 
تاريخ عضويت: ارديبهشت ۱۳۸۷
محل سكونت: فعلا همینجا > ایران
پست ها: 24
تشكرها: 2
192 تشكر در 23 پست
ارسال پيغام Yahoo به Mina
Post

مسئله فروشنده دوره‌گرد ( Travelling salesman problem ،یا TSP ) مسئله‌ای معروفیه که اولین بار مسائل مربوط به اون توسط ویلیام همیلتون و توماس کرکمن مطرح شد و بعد در دهه ۱۹۳۰ شکل عمومی اون به وسیله ریاضیدانانی مثل کارل منگر از دانشگاه هاروارد و هاسلر ویتنی از دانشگاه پرینستون مورد مطالعه قرار گرفت.

در این مسئله تعداد کل راه‌حل‌ها برابر است :

كد:
1/2 (n-1)!             n>2
که در واقع n تعداد شهرهاست. و این عدد برابر است با تعداد دورهای همیلتونی در یک گراف کامل با n رأس.

برای اینکه دقیق تر ببینی این مسئله چطور حل میشه میتونی این برنامه که با ژنتیک الگوریتم نوشته شده رو دانلود و نصب کنی. فکر میکنم اینجوری راحت تر به جواب برسی.

دانلود برنامه فروشنده دوره گرد

نسرین جان بقیه اطلاعات رو هم برات میل کردم. اگه بازم سوالی داشتی حتما بپرس.
Mina آفلاين است   پاسخ با نقل قول
از Mina تشكر كرده اند:
afshin_electronic (۰۴-۱۳-۱۳۸۸), gh452003 (۰۹-۱۳-۱۳۸۸), hamed.n53 (۰۸-۱۹-۱۳۹۳), mohsen_m (۱۲-۲۳-۱۳۸۷), rezasony (۱۰-۳۰-۱۳۸۷), SetayeshD (۱۱-۱۲-۱۳۸۹), taramahani (۱۰-۲۵-۱۳۹۲), tohidsabunchi (۰۸-۱۰-۱۳۸۹), Violet_kia2 (۰۲-۶-۱۳۹۰)
قديمي ۰۸-۱۰-۱۳۸۸, ۱۰:۲۵ بعد از ظهر   #4 (لینک دائم)
Administrator
 
آواتار Astaraki
 
تاريخ عضويت: خرداد ۱۳۸۷
محل سكونت: تهران-کرج!
پست ها: 3,465
تشكرها: 754
16,337 تشكر در 3,127 پست
My Mood: Mehrabon
ارسال پيغام Yahoo به Astaraki
پيش فرض

نقل قول:
نوشته اصلي بوسيله Di4mond_65 نمايش پست
سلام.
متاسفانه لینکها کار نمیکنند، اگر میشه مجدد آپ کنید.

مرسی.
لينکها؟
مقاله (ارائه الگوريتم تركيبي مورچگان وژنتيك براي حل مسئله فروشنده دوره گرد) که لينکش درسته!

در مورد اون برنامه فروشنده دوره گرد هم بايد بگم که صاحب و نويسنده اصلي برنامه رو از سايتشون پاک کردند و در نتيجه اون لينک هم ديگه کار نميکنه
من قبلاً دانلود کرده بودم
در اينجا آپ ميکنم ولي بايد بگم که از اون اول هم سورس رو قرار نداده بودند و فقط فايل اجرايي هست(البته اينم خيلي جذابه)
فايل ضميمه
نوع فايل: zip TSP.zip (83.5 كيلو بايت, 316 نمايش)
Astaraki آفلاين است   پاسخ با نقل قول
از Astaraki تشكر كرده اند:
Di4mond_65 (۰۹-۱۱-۱۳۸۸), gh452003 (۰۹-۱۴-۱۳۸۸), taramahani (۱۰-۲۵-۱۳۹۲)
قديمي ۰۹-۳-۱۳۸۸, ۰۱:۱۷ بعد از ظهر   #5 (لینک دائم)
Administrator
 
آواتار Astaraki
 
تاريخ عضويت: خرداد ۱۳۸۷
محل سكونت: تهران-کرج!
پست ها: 3,465
تشكرها: 754
16,337 تشكر در 3,127 پست
My Mood: Mehrabon
ارسال پيغام Yahoo به Astaraki
Wink

نقل قول:
نوشته اصلي بوسيله jojo نمايش پست
من کد میخوام،کمک دارم مشروط میشم سر همین کد مسئله فروشنده دوره گرد بیکار.
email : hmstar2008_13@yahoo.com

اين کد الگوریتم دوره گرد
ولي
بهتره به لينک زير مراجعه نماييد:
حل مسئله فروشنده دوره گرد


كد:
#include<stdio.h>
#include<conio.h>
#define ALL -1
#define MAXCITIES 10
 
enum BOOL{FALSE,TRUE};
lنودهای  پیمایش شده  اینجا علامتگذاری میشوند//long*visited;
long*min_circuit;//min inner circuit for given node as start node at position indexed 0
long*ham_circuit;//optimal circuit with length stored at position indexed 0
long min_circuit_length;//min circuit lenth for given start node
 
int n;//city count
long matrix[MAXCITIES][MAXCITIES];//nondirectional nXn symmetric matrix
//to store path distances as sourceXdestination
long INFI;// INFINITY value to be defined by user
 
// function resets minimum circuit for a given start node
//with setting its id at index 0 and setting furthr node ids to -1
void reset_min_circuit(int s_v_id)
{
                min_circuit[0]=s_v_id;
                for(int i=1;i<n;i++)               min_circuit[i]=-1;
}
 
// marks given node id with given flag
// if id==ALL it marks all nodes with given flag
void set_visited(int v_id,BOOL flag)
{
                if(v_id==ALL)        for(int i=0;i<n;i++)               visited[i]=flag;
                else                         visited[v_id]=flag;
}
 
// function sets hamiltonion circuit for a given path length
void SET_HAM_CKT(long pl)
{
                ham_circuit[0]=pl;
                for(int i=0;i<n;i++)       ham_circuit[i+1]=min_circuit[i];
                ham_circuit[n+1]=min_circuit[0];
}
 
//function sets a valid circuit by finiding min inner path for a given
//combination start vertex and next vertex to start vertex such that
// the 2nd vertex of circuits is always s_n_v and start and dest node is
//always s_v for all possible values of s_n_v, and then returns the
// valid circuit length for this combination
 
long get_valid_circuit(int s_v,int s_n_v)
{
                int next_v,min,v_count=1;
                long path_length=0;
                min_circuit[0]=s_v;
                min_circuit[1]=s_n_v;
                set_visited(s_n_v,TRUE);
                path_length+=matrix[s_v][s_n_v];
                for(int V=s_n_v;v_count<n-1;v_count++)
                {              min=INFI;
                                                for(int i=0;i<n;i++)
                                                                if(            matrix[V][i]<INFI && !visited[i]
                                                                                && matrix[V][i]<=min
                                                                  )
                                                                                min=matrix[V][next_v=i];
                                set_visited(next_v,TRUE);
                                V=min_circuit[v_count+1]=next_v;
                                path_length+=min;
                }
                path_length+=matrix[min_circuit[n-1]][s_v];
                return(path_length);
}
 
void main()
{
                clrscr();
                printf("Make sure that infinity value < sum of all path distances\nSet Infinity at (signed long):";
                scanf("%ld",&INFI);
                int pathcount,i,j,source,dest;
                long dist=0;
                long new_circuit_length=INFI;
                printf("Enter no. of cities(MAX:%d):",MAXCITIES);
                scanf("%d",&n);
                printf("Enter path count:";
                scanf("%d",&pathcount);
 
                printf("Enter paths:< source_id destination_id distance >\n ids varying from 0 to %d\n",n-1);
                //init all matrix distances to infinity
                for(i=0;i<n;i++)
                                for(j=0;j<n;j++)
                                                matrix[i][j]=INFI;
 
                //populate the matrix
                for(i=0;i<pathcount;i++)
                {
                                printf("[path %d]:",i);
                                scanf("%d %d %ld",&source,&dest,&dist);
                                if(source!=dest)
                                     matrix[source][dest]=matrix[dest][source]=dist;
                }
 
                visited=new long[n];
                min_circuit=new long[n];
                ham_circuit=new long[n+2];
                min_circuit_length=INFI;
                // algorithm
                //for each vertex, S_V as a staring node
                for(int S_V_id=0;S_V_id<n;S_V_id++)
                {       //for each and non start vertex as i
                                for(i=0;i<n;i++)
                                {       //set all to unvisited
                                                set_visited(ALL,FALSE);
                                                // set staring vertex as visited
                                                set_visited(S_V_id,TRUE);
                                                //reset/init minimum circuit
                                                reset_min_circuit(S_V_id);
                                                // obtain circuit for combination of S_V and i
                                                new_circuit_length=get_valid_circuit(S_V_id,i);
                                                // if newer length is less than the previously
                                                //calculated min then set it as min and set the
                                                //current circuit in hamiltonion circuit
                                                if(new_circuit_length<=min_circuit_length)
                                                                SET_HAM_CKT(min_circuit_length=new_circuit_length);
                                }
                }
// if any circuit found
if(min_circuit_length<INFI)
{
                printf("\n\nMinimum circuit length is: %ld\nCircuit is:\n",min_circuit_length);
                for(i=1;i<n+2;i++)               printf("<%ld> ",ham_circuit[i]);
}
else         printf(&q
Astaraki آفلاين است   پاسخ با نقل قول
از Astaraki تشكر كرده اند:
Di4mond_65 (۰۹-۱۱-۱۳۸۸), gh452003 (۰۹-۱۳-۱۳۸۸), nasersalehiazar (۰۸-۲۴-۱۳۸۹)
قديمي ۰۹-۱۳-۱۳۸۸, ۰۹:۴۵ قبل از ظهر   #6 (لینک دائم)
Administrator
 
آواتار Astaraki
 
تاريخ عضويت: خرداد ۱۳۸۷
محل سكونت: تهران-کرج!
پست ها: 3,465
تشكرها: 754
16,337 تشكر در 3,127 پست
My Mood: Mehrabon
ارسال پيغام Yahoo به Astaraki
Exclamation

نقل قول:
نوشته اصلي بوسيله یاقوت نمايش پست
سلام
در صورت امکان حل معمای 8وزیر با الگوریتم ژنتیک را داخل سایت قرار دهید.

اين مسئله به وسيله الگوريتم ژنتيک در لينک زير(پاورپوينت سوم) توضيح داده شده است

اسلاید های آموزشی الگوریتم ژنتیک

همچنين با روشهاي ديگر :
حل مسئله 8 وزير با روش هاي مختلف!
Astaraki آفلاين است   پاسخ با نقل قول
از Astaraki تشكر كرده اند:
gh452003 (۰۹-۱۳-۱۳۸۸), nasersalehiazar (۰۸-۲۴-۱۳۸۹)
قديمي ۰۹-۱۵-۱۳۸۸, ۰۷:۱۳ بعد از ظهر   #7 (لینک دائم)
عضو جدید
 
آواتار quantomquery
 
تاريخ عضويت: آذر ۱۳۸۸
پست ها: 9
تشكرها: 5
16 تشكر در 5 پست
پيش فرض

نقل قول:
نوشته اصلي بوسيله nasrin_darvishi1376 نمايش پست
با سلام
من سوال داشتم در مورد اینکه چه طور الگوریتم فروششنده دوره گرد با الگوریتم ژنتیک ÷یاده سازی کنم یا برنامه را بنویسم
سلام
فکر میکنم این تاپیک بدردتون می خوره :

کد الگوریتم ژنتیک برای حل مساله tsp با نخبه گزینی

ويرايش شده توسط Astaraki; ۰۱-۲۲-۱۳۹۰ در ساعت ۰۴:۴۶ بعد از ظهر
quantomquery آفلاين است   پاسخ با نقل قول
قديمي ۰۹-۱۶-۱۳۸۸, ۱۰:۲۴ بعد از ظهر   #8 (لینک دائم)
Active users
 
آواتار maskofgod
 
تاريخ عضويت: آذر ۱۳۸۸
محل سكونت: اهواز
پست ها: 9
تشكرها: 1
34 تشكر در 7 پست
My Mood: Khonsard
ارسال پيغام Yahoo به maskofgod
Thumbs down

خیش خراش مال
بدطور !!!

اینم برای کمک به همه دوستانم.

فروشنده دوره گرد(Travelling Sales Man)
maskofgod آفلاين است   پاسخ با نقل قول
قديمي ۱۰-۲-۱۳۸۸, ۰۵:۳۳ بعد از ظهر   #9 (لینک دائم)
عضو جدید
 
آواتار zinat
 
تاريخ عضويت: آذر ۱۳۸۸
پست ها: 1
تشكرها: 0
0 تشكر در 0 پست
پيش فرض

سلام چطوری tsp را با pso در متلب پیاده سازی کنم؟
ممنون می شم اگه راهنمایی کنید
zinat آفلاين است   پاسخ با نقل قول
قديمي ۱۱-۳-۱۳۸۸, ۰۱:۰۲ قبل از ظهر   #10 (لینک دائم)
Active users
 
آواتار neda2
 
تاريخ عضويت: دي ۱۳۸۸
محل سكونت: تهران
پست ها: 17
تشكرها: 37
9 تشكر در 6 پست
Arrow Demo و سورس

سلام

Demo و سورس برنامه TSP و توضیحاتش برای مقایسه بین کارایی اجرای آن به دو روش Genetic و Ant Colony Optimization در این لینک آورده شده:
Genetic and Ant Colony Optimization Algorithms - CodeProject

خیلی جالبه و در عین حال ملموس !
neda2 آفلاين است   پاسخ با نقل قول
از neda2 تشكر كرده است:
mardin200 (۱۱-۳-۱۳۸۸)
پاسخ



كاربران در حال ديدن تاپيک: 1 (0 عضو و 1 مهمان)
 

قوانين ارسال
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is فعال
شکلکها فعال است
كد [IMG] فعال است
كدهاي HTML غير فعال است
Trackbacks are فعال
Pingbacks are فعال
Refbacks are فعال




زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۳:۳۷ بعد از ظهر ميباشد.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.

Teach and Learn at Hexib | Sponsored by www.Syavash.com and Product In Review

استفاده از مطالب انجمن در سایر سایت ها، تنها با ذکر انجمن هوش مصنوعي به عنوان منبع و لینک مستقیم به خود مطلب مجاز است

Inactive Reminders By Icora Web Design