ورود

View Full Version : حل مسئله 8 وزير(8Queen) با روش هاي مختلف!


Astaraki
۰۸-۱-۱۳۸۸, ۱۱:۳۵ قبل از ظهر
دوستان بياييد مسئله 8 وزير را با روش هاي مختلف در اينجا با هم حل کنيم:rolleyes:

با استفاده از روشهايي از قبيل:
الگوريتم ژنتيک
جستجوي محلي
الگوريتم عقبگرد
مسئله ارضاي محدوديت
جستجوي تپه نوردي
و غيره

;)

Astaraki
۰۸-۱-۱۳۸۸, ۱۱:۴۲ قبل از ظهر
صورت مسئله : هشت وزير را در هشت خانه شطرنج (8*8) طوري قرار دهيد كه هيچكدام يكديگر را تهديد نكنند. وزير در خانه هاي شطرنج به صورت عرضي،طولي و قطري مي تواند حركت كند. اين مسئله قابل تعميم به مسئله N وزير در يك شطرنج N*N است.

تاريخچه: اين مسئله در سالي 1848 توسط شطرنج بازي به نام Max Bezzel عنوان شد و رياضي دانان بسياري ازجمله Gauss و Georg Cantor بر روي اين مسئله كار كرده و در نهايت آنرا به N وزير تعميم دادند. اولين راه حل توسط Franz Nauck در سال 1850 ارائه شد كه به همان مسئله N وزير تعميم داده شد. پس از آن Gunther راه حلي با استفاده از دترمينان ارائه داد كه J.W.L. Glaisher آنرا كامل نمود.
در سال 1979 ، Edsger Dijkstra با استفاده از الگوريتم عقب گرد اول عمق اين مسئله را حل كرد.

راه حل: براي حل اين مسئله كه داراي 92 جواب است ، بايد تكنيكهايي جهت كاهش حالات ،روش Brute Force يا امتحان تك تك جواب ها انجام شود. تعداد همه حالاتي كه مي تواند در روش Brute Force چك شود برابر 16,777,216 يا هشت به توان هشت است!
يكي از روش هاي حل اين مسئله براي n>=4 يا n=1 استفاده از روش مكاشفه اي (heuristic) است:
1- عدد n را بر عدد 12 تقسيم كن و باقي مانده را يادداشت كن
2- به ترتيب اعداد زوج 2 تا n را در ليستي بنويس
3- اگر باقي مانده 3 يا 9 بود ، عدد 2 را به انتهاي ليست انتقال بده.
4- به ليست اعداد فرد 1 تا N را به ترتيب اضافه كن، اما اگر باقي مانده 8 بود اعداد را دو به دو باهم عوض كند (مثلا 1و3و5و7و9 تبديل به 3و1و7و5و9 ميشه)
5- اگر باقي مانده 2 بود جاي 1 و3 را با هم عوض كن و 5 را به انتهاي ليست ببر
6- اگر باقي مانده 3 يا 9 بود ، اعداد 1 و 3 را به انتهاي ليست ببر.
7- حال با استفاده از ليست بدست آمده وزير ها در صفحه شطرنج چيده مي شوند، بطوريكه جاي وزير ستون اول ،اولين عدد ليست ،جاي وزير ستون دوم ، دومين عدد ليست و ...
اين الگوريتم يك راه حل براي حل اين مسئله است، براي بدست آوردن همه حالات از روشهاي ديگري مي توان استفاده كرد.
روش حل مسئله 12 راه حل يكتا دارد كه با در نظر گيري تقارن و چرخش به 92 حالت قابل تبديل است.

Astaraki
۰۸-۱-۱۳۸۸, ۱۱:۵۸ قبل از ظهر
روش های جستجوی محلی
برای معرفی هریک از روش های جستجویی که در فصل به بررسی آن ها می پردازیم از مسئله 8 وزیر استفاده خواهیم کرد. در مسئله 8 وزیر هدف قرار دادن 8 وزیر بر روی صفحه شطرنج به گونه ای است که هیچیک از وزیرها همدیگر را گارد ندهند. تعمیم یافته مسئله 8 وزیر، مسئله n وزیر است که در آن بر روی یک صفحه شطرنج n*n باید n وزیر را به گونه ای قرار دهیم که هیچیک همدیگر را گارد ندهند. مسئله n وزیر از جمله مسائل NP در هوش مصنوعی است که روش های جستجوی معمولی قادر به حل آن ها نخواهد بود. از سوی دیگر می توان به مسئله 8 وزیر به عنوان یک مسئله بهینه سازی نیز نگریست که در آن هدف بهینه کردن تعداد گاردهای جفت وزیرها می باشد. به عنوان مثال فرض کنید در صفحه شطرنج معمولی ، 8 وزیر را به دو روش زیر قرار دهیم :

http://aisthinktank.com/images/contents/queen1.JPGhttp://aisthinktank.com/images/contents/queen.JPG


در روش چینش سمت چپ 3 وزیر و در روش چینش سمت راست 4 وزیر همدیگر را گارد می دهند. بنابراین روش چینش قبلی بهینه تر از روش چینش فعلی است. در واقع می توان مسئله بهینه سازی را به صورت زیر تعریف کرد. فرض کنید S مجموعه همه جواب های ممکن برای مسئله باشد. در صورتی S* می تواند جواب مسئله باشد که به ازای همه جواب های موجود در S ، S* بهینه تر از دیگر جواب ها باشد. در مسئله 8 وزیر دیدیم که جوابی بهینه است که تعداد گاردهای جفت وزیر آن کمتر باشد.

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

سخن آخر اینکه نحوه پیاده سازی و طراحی الگوریتم برای انتخاب حالت هسایه در این روش های جستجو از اهمیت ویژه ای برخوردار است. به عنوان مثال برای مسئله 8 وزیر می توان به شکل های زیر حالت های همسایگی را تولید کرد :
1) دو وزیر به تصادف انتخاب شده و جای آن دو باهم عوض گردد.
2) یکی از وزیر ها به تصادف انتخاب شده و شماره سطر آن به تصادف تغییر کند.
3) ویزیری به تصادف انتخاب شده و یک خانه به سمت بالا یا پایین حرکت کند

Astaraki
۰۸-۱-۱۳۸۸, ۱۲:۲۴ بعد از ظهر
تپه نوردی Hill Climbing Searching یکی از الگوریتم های هوش مصنوعی می باشد که برای مسائل پیچیده به کار میرود به گونه ای که بجای اینکه برای حل مسئله از کل گراف استفاده کند.به صورت اتفاقی از یک قسمت از گراف استفاده میکند.

دريافت سورس برنامه به زبان #C

Astaraki
۰۸-۱-۱۳۸۸, ۱۲:۲۸ بعد از ظهر
اين مسئله به وسيله الگوريتم ژنتيک نيز در لينک زير(پاورپوينت سوم) توضيح داده شده است;)

اسلاید های آموزشی الگوریتم ژنتیک (http://artificial.ir/intelligence/thread361.html)

در لينک زير هم حل اين مسئله توسط الگوريتم ژنتيک با زبان vb.net قرار دارد:

http://www.sergejusz.com/engineering_tips/queens_ga.htm

البته در اون سايت برنامه کامل نيست!
و کاربر محترم ALI_KH (http://artificial.ir/intelligence/members/ali-kh.html) برنامه ي کامل شده را به ما لطف کردند که در ضميمه ميتونيد دريافت کنيد::41:

Astaraki
۰۸-۱-۱۳۸۸, ۱۲:۳۰ بعد از ظهر
حل مسئله هشت وزير با آنالينگ شبيه سازي شده

Astaraki
۰۸-۱-۱۳۸۸, ۱۲:۳۳ بعد از ظهر
اين برنامه با زبان پرولوگ هم در لينک زير نوشته شده!

هشت وزير با PROLOG (http://artificial.ir/intelligence/زبان-هاي-برنامه-نويسي-ليسپ-و-پرولوگ/586-برنامه-هشت-وزیر-با-prolog.html)
;)

Astaraki
۰۸-۱-۱۳۸۸, ۱۲:۴۴ بعد از ظهر
فرض کنید که در محله‌ای به دنبال یک کتاب فروشی خاص می‌گردیم. این کتاب فروشی در کوچه‌ای قرار دارد که نبش آن یک خواربار فروشی است و همچنین در ابتدای خیابانی که این کوچه قرار دارد یک مدرسه هست.

کاری که برای یافتن این کتاب فروشی می‌کنیم این است که در این محله ابتدا به دنبال آن خیابان فرعی می‌گردیم که در ابتدای آن یک مدرسه قرار دارد. سپس در این خیابان به دنبال کوچه‌ای می‌گردیم که یک خواربار فروشی در نبش آن است. هنگامی که کوچه را یافتیم، اگر در آن کتاب فروشی بود به جواب رسیده‌ایم وگرنه به خیابان فرعی برگشته و به دنبال کوچه‌ای دیگر می‌گردیم که یک خواربار فروشی در نبش آن باشد. اگر در این خیابان چنین کوچه‌ای وجود نداشت به خیابان اصلی برگشته و جستجوی خود را با یافتن خیابان فرعی دیگری با یک مدرسه در آن دنبال می کنیم.

روالی که برای یافتن جواب در مثال بالا دنبال شد، روش بازگشت به عقب (Backtracking) نام دارد. در این روش همانطور که در مثال مشاهده کردید، در هر زمان که متوجه شدیم مسیر انتخاب شده به جواب نمی‌رسد، یک مرحله به عقب برگشته و مسیر دیگری را دنبال می کنیم.

روش بازگشت به عقب برای آن دسته از مسائلی قابل استفاده است که برای رسیدن به جواب بتوان یک جستجوی سیستماتیک را دنبال کرد. به عنوان نمونه می‌توان بهره‌گیری از این روش را در بازیهای کامپیوتری، سیستمهای اثبات تئوریها، شبکه‌های مفهومی، هایپرتکس و ... دید.


مثال 8 وزير:

چگونه هشت وزیر را بر روی صفحه شطرنج قرار دهیم به گونه‌ای که هیچ یک از آنها مورد تهدید دیگری قرار نگیرد؟

در مقاله زير اين مسئله با استفاده از روش عقبگرد همراه با سورس کد آن کاملاً توضيح داده شده
;)

hamide_kh
۰۸-۲۶-۱۳۸۸, ۰۹:۳۷ بعد از ظهر
تپه نوردی Hill Climbing Searching یکی از الگوریتم های هوش مصنوعی می باشد که برای مسائل پیچیده به کار میرود به گونه ای که بجای اینکه برای حل مسئله از کل گراف استفاده کند.به صورت اتفاقی از یک قسمت از گراف استفاده میکند.

سلام دوست عزیز من این برنامه را دانلود کردم و خیلی هم کارم را راه انداخت فقط مشکلی که هست 2 تابع moveو whereY را نمی فهمم اگه ممکنه در موردشون کمی بهم توضیح بدید

Astaraki
۰۹-۱۳-۱۳۸۸, ۰۷:۳۳ بعد از ظهر
و این هم برنامه ی NQueen که n رو از کاربر می خواد و بعد تمام جوابهای موجود رو چاپ میکنه!:D
با TC اجرا ميشه;)

Astaraki
۰۹-۱۳-۱۳۸۸, ۰۷:۵۱ بعد از ظهر
یک مثال کلاسیک از عقبگرد، مسئله n وزیر است.
- هدف از مسئله n وزیر ، چیدن n مهره وزیر در یک صفحه شطرنج است ، به طوری که هیچ دو وزیری یکدیگر را گارد ندهند. یعنی هیچ دو مهره ای نباید در یک سطر، ستون یا قطر یکسان باشند.

- عقبگرد حالت اصلاح شده ی جست و جوی عمقی یک درخت است.

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

الگوریتم عقبگرد برای مسئله n وزیر

void queens ( index i)
{
index j;
if ( promising(i))
if ( i == n)
cout << col [1] through col [n];
else
for ( j = 1 ; j ≤ n ; j++ ) {

col [ i +1 ] = j;
queens ( i + 1);
}
}
bool promising ( index i )
{
index k ;
bool switch;
k = 1;
switch = true ;
while ( k < i && switch ) {
if (col [i] == col[k] || abs(col[i] – col[k] == i-k)
switch = false;
k++;
}
return switch;
}

ali-kh
۱۱-۲-۱۳۸۸, ۰۹:۲۴ بعد از ظهر
اینم یه برنامه برای الگوریتم عقبگرد که خودم با c# نوشتم

persiandata
۰۱-۱۴-۱۳۸۹, ۰۷:۲۱ بعد از ظهر
سلام کاش یکی پیدا میشد و برنامه n وزیر با الگوریتم ژنتیک توی سی شارپ رو میگذاشت . خواهشا کمک کنید فقط با سی شارپ

Astaraki
۰۱-۱۸-۱۳۸۹, ۰۱:۳۳ بعد از ظهر
Solving n-Queen problem using global parallel genetic algorithm

bagheri
۰۱-۱۸-۱۳۸۹, ۰۸:۰۹ بعد از ظهر
با سلام
من به کد این مساله با روش زنتیک لازم دارم
یعنی حتما باید با استفاده از توابع ترکیب وجهش در الگوریتم ژنتیک این مساله را حل کنیم
لطفا اگر کسی کدشو داره بذاره ممنون میشم

Astaraki
۰۱-۱۸-۱۳۸۹, ۰۸:۳۴ بعد از ظهر
در اين تاپيک که کد هم قرار داره!
queens_ga (http://artificial.ir/intelligence/1978-post5.html)

Eight Queens Puzzle:
A genetic algorithm implementation using Java

Astaraki
۰۳-۹-۱۳۸۹, ۰۶:۱۱ بعد از ظهر
اینم 8 وزیر با الگوریتم ژنتیک که با ++c نوشته شده

با تشکر از مدير گرامي alijy

sarakh
۰۴-۲۵-۱۳۸۹, ۰۳:۰۳ بعد از ظهر
سلام.دوستان عزیز بهتر نبود به جای اینکه این قدر کد برنامه رو بزارین, توضیح در مورد الگوریتم می دادین؟؟؟؟
من که از کدهای نوشته شده چیزی نفهمیدم.توضیح بازگشت به عقب رو هم خوندم ولی اینو خودمم می دونستم.اگر بیشتر در مورد الگوریتم بازگشت به عقب برای حل این مسئله راهنماییم کنین ممنون می شم.اینکه برای حل مسئله چه کارایی باید انجام بدم.
ممنون.

مريم نازنين
۰۸-۱۷-۱۳۸۹, ۰۱:۴۶ بعد از ظهر
سلام به همه ي علاقه مندان به هوش مصنوعي:25:
بچه ها من تازه واردم :3:
يه سوال داشتم فقط بالاغيرتا نگين برو سرچ كن كه قبل ازاينكه شما بگبن سرچيدم، اما نبوده و اون هم اينكه.....
كسي ميتونه خط به خط الگوريتم هشت وزير رو توضح بده ؟؟ به همون روش عقبگرد.
طراحي الگوريتم پاس كردم ، نفهميدم. هوش هم دارم پاس مي كنم ولي باز هم نفهميدم.
ممنون از اينكه م خواين برام توضيح بين:4:

aminkop
۰۸-۱۸-۱۳۸۹, ۱۱:۱۳ بعد از ظهر
سلام به همه ي علاقه مندان به هوش مصنوعي:25:
بچه ها من تازه واردم :3:
يه سوال داشتم فقط بالاغيرتا نگين برو سرچ كن كه قبل ازاينكه شما بگبن سرچيدم، اما نبوده و اون هم اينكه.....
كسي ميتونه خط به خط الگوريتم هشت وزير رو توضح بده ؟؟ به همون روش عقبگرد.
طراحي الگوريتم پاس كردم ، نفهميدم. هوش هم دارم پاس مي كنم ولي باز هم نفهميدم.
ممنون از اينكه م خواين برام توضيح بين:4:

سلام
من می خواستم کامل توضیح بدم . صفحه قبل را که دیدم... واقعا آنرا ملاحظه کرده اید؟
هشت وزير با روش بازگشت به عقب Backtracking
http://artificial.ir/intelligence/thread619.html

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

مريم نازنين
۰۸-۲۰-۱۳۸۹, ۱۱:۱۴ قبل از ظهر
یک صفحه شطرنج بردارید و مهره ها را مرحله به مرحله بچینید

ممنون از جوابتون اما من از كدش چيزي سر در نميارم:

void queens ( index i)
{
index j;
if ( promising(i))
if ( i == n)
cout << col [1] through col [n];
else
for ( j = 1 ; j ≤ n ; j++ ) {

col [ i +1 ] = j;
queens ( i + 1);
}
}
bool promising ( index i )
{
index k ;
bool switch;
k = 1;
switch = true ;
while ( k < i && switch ) {
if (col [i] == col[k] || abs(col[i] – col[k] == i-k)
switch = false;
k++;
}
return switch;
}


يعني ببينين اينجا منظور از promising وtrue .. چيه؟ فقط شرط آخر رو متوجه شدم كه قطري بودن و.. رو چك مي كنه.:2:

asmagan
۰۹-۱۹-۱۳۸۹, ۰۱:۴۶ قبل از ظهر
واي كاش يكي پيدا ميشد و 8 وزير را با زبان جاوا يا سي شارپ با الگوريتم هاي blind و hurrstic search رو به من مي داد:42:

Astaraki
۰۹-۱۹-۱۳۸۹, ۰۴:۲۱ بعد از ظهر
سورس 8 وزیر


#include <iostream.h>
#include<conio.h>

int test( int i , int j );
int board[8][8] = { 0 };
int main()
{
for ( int a = 0 ; a < 8 ; a++ )
if(test( 0 , a ))
for ( int b = 0 ; b < 8 ; b++ )
if(test( 1 , b ))
for ( int c = 0 ; c < 8 ; c++ )
if(test( 2 , c ))
for ( int d = 0 ; d < 8 ; d++ )
if(test( 3 , d ))
for ( int e = 0 ; e < 8 ; e++ )
if(test( 4 , e ))
for ( int f = 0 ; f < 8 ; f++ )
if(test( 5 , f ))
for ( int g = 0 ; g < 8 ; g++ )
if(test( 6 , g ))
for ( int h = 0 ; h < 8 ; h++ )
if(test( 7 , h )) {
for ( int m = 0 ; m < 8 ; m++ ) {
for ( int n = 0 ; n < 8 ; n++ )
cout << board[m][n] << " ";
cout << endl;
}
cout << endl;
getch();
}
cout << endl;
return 0;
}
int test( int i , int j )
{
for ( int a = 0 ; a < 8 ; a++ )
board[i][a] = 0;
for ( int b = 1 ; b < 8 ; b++ )
if ( i - b >= 0 ) {
if ( board[i - b][j] != 0 )
return 0;
if ( j - b >= 0 )
if ( board[i - b][j - b] != 0 )
return 0;
if ( j + b <= 7 )
if ( board[i - b][j + b] != 0 )
return 0;
}
board[i][j] = 1;
return 1;
}

Astaraki
۰۹-۱۹-۱۳۸۹, ۰۴:۲۴ بعد از ظهر
برنامه ی زیر که به صورت بازگشتی و با روش BackTrack نوشته شده رو میشه به N وزیر به راحتی تعمیم داد:


#include <iostream>
#include <stdlib.h>
#include<conio.h>
using namespace std;
#define N 8
bool mark[N];
int a[N];
void bt (int n)
{
if (n == N)
{
for (int i = 0; i < N; i++, cout << endl)
for (int j = 0; j < N; j++)
if (a[i] == j)
cout << "1 ";
else
cout << "0 ";
cout << endl;
getch ();
}
else
{
for (int i = 0; i < N; i++)
if (!mark[i])
{
bool b = true;
for (int j = 0; j < n; j++)
if (n - j == abs(i - a[j]))
b = false;
if (b)
{
mark[i] = true;
a[n] = i;
bt(n + 1);
mark[i] = false;
}
}
}
}
int main ()
{
bt(0);
}

Astaraki
۰۹-۱۹-۱۳۸۹, ۰۴:۲۷ بعد از ظهر
غیر بازگشتی:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace reversi
{
classeightQueen {
privateBoolean [,] board;
privateBoolean[, ,] memory;
privatestaticInt32 BoardNO = 0;

publicBoolean[, ,] calculate()
{
board = newBoolean [8,8];
memory = newBoolean[8, 8, 92];

for ( int a = 0 ; a < 8 ; a++ )
if(test( 0 , a ))
for ( int b = 0 ; b < 8 ; b++ )
if(test( 1 , b ))
for ( int c = 0 ; c < 8 ; c++ )
if(test( 2 , c ))
for ( int d = 0 ; d < 8 ; d++ )
if(test( 3 , d ))
for ( int e = 0 ; e < 8 ; e++ )
if(test( 4 , e ))
for ( int f = 0 ; f < 8 ; f++ )
if(test( 5 , f ))
for ( int g = 0 ; g < 8 ; g++ )
if(test( 6 , g ))
for ( int h = 0 ; h < 8 ; h++ )
if (test(7, h))
{

for ( int m = 0 ; m < 8 ; m++ ) {
for (int n = 0; n < 8; n++)
memory[m, n, BoardNO] = board[m,n];
}
BoardNO++;
}
return memory;
}
Boolean test( int i , int j )
{
for ( int a = 0 ; a < 8 ; a++ )
board[i, a] = false;
for ( int b = 1 ; b < 8 ; b++ )
if ( i - b >= 0 ) {
if ( board[i - b,j] != false )
returnfalse;
if ( j - b >= 0 )
if (board[i - b, j - b] != false)
returnfalse;
if ( j + b <= 7 )
if (board[i - b, j + b] != false)
returnfalse ;
}
board[i,j]= true ;
returntrue ;
}
}
}

بازگشتی: ( که در اين لينک (http://www.codeproject.com/KB/java/EightQueen.aspx) هم قرار داده شده)

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
//calculate
namespace reversi
{
classeightQueen{
privateint [] board;
privateBoolean[,,] memory;
privateint number=0;

/**
* Each element of the board[] represents a row and the value of each element
* specifies the column number where the queen is placed on that particular row.
* This method is used to retrieve the board array.
*
* @return
*/
publicBoolean [,,] getBoard() {
return memory;
}
public eightQueen()
{

board = newint[8];
memory = newBoolean[8, 8, 93];
this.place(0);
}
/**
* Place a queen in a row and check its validity. If valid then place it in the
* next row else backtrack.
*
* @param row
*/
publicvoid place(int row) {
if (row == 8) {

for (int r = 0; r< 8; r++)
{
for (int c = 0; c < 8; c++)
{
if (board[r] == c){
memory[r, c, number] = true;
// MessageBox.Show(r.ToString()+"/"+c.ToString()+"/"+number.ToString());
}else
memory[r, c, number] = false;
}
}
this.number++;
return;
} else {
for (int i = 0; i < 8; i++) {
board[row] = i;
if (valid(row)) place(row + 1);
}
}
}
/**
* Checks the validity of a position. If valid returns true else returns false.
*
* @param row
* @return
*/
publicBoolean valid(int row) {
for (int i = 0; i < row; i++) {
if ((board[i] == board[row]) || Math.Abs(board[row] - board[i]) == (row - i)) {
returnfalse;
}
}
returntrue;
}
}}


کد طراحی هر دوی آن به یک صورت است:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace reversi
{
publicpartialclassReversi : Form
{
private System.Windows.Forms.Panel squaresPanel;
private System.Windows.Forms.Panel boardPanel;
private System.Windows.Forms.Label cornerLabel;
privateLabel[] colLabels, rowLabels;
privateSquareControl[,] squareControls;
// For converting column numbers to letters and vice versa.
privatestaticString alpha = "ABCDEFGH";
// The game board.
privateBoard board;

privateeightQueen queen;
privateBoolean[, ,] memory;
privateInt32 moveNumber;
// Used to track which player made the last move.
// Defines a thread for running the computer move look ahead.

public Reversi()
{
InitializeComponent();
// Create the game board.
this.board = newBoard();

#region bord designer
// Create the controls for each square, add them to the squares
// panel and set up event handling.
this.squareControls = newSquareControl[8, 8];
int i, j;
for (i = 0; i < 8; i++)
for (j = 0; j < 8; j++)
{
// Create it.
this.squareControls[i, j] = newSquareControl(i, j);
// Position it.
this.squareControls[i, j].Left = j * this.squareControls[i, j].Width;
this.squareControls[i, j].Top = i * this.squareControls[i, j].Height;
// Add it.
this.squaresPanel.Controls.Add(this.squareControls[i, j]);
// Set up event handling for it.
this.squareControls[i, j].Click += newEventHandler(this.SquareControl_Click);

}
// Create the column and row labels.
this.colLabels = newLabel[8];
for (i = 0; i < 8; i++)
{
// Create a column label.
this.colLabels[i] = newLabel();
// Set its display properties.
this.colLabels[i].Text = Reversi.alpha.Substring(i, 1);
this.colLabels[i].BackColor = this.cornerLabel.BackColor;
this.colLabels[i].ForeColor = this.cornerLabel.ForeColor;
this.colLabels[i].TextAlign = ContentAlignment.MiddleCenter;
// Set its size and position.
this.colLabels[i].Width = this.squareControls[0, 0].Width;
this.colLabels[i].Height = this.cornerLabel.Height;
this.colLabels[i].Left = this.cornerLabel.Width + i * this.colLabels[0].Width;
this.colLabels[i].Top = 0;
// Add it.
this.boardPanel.Controls.Add(this.colLabels[i]);
}
this.rowLabels = newLabel[8];
for (i = 0; i < 8; i++)
{
// Create a row label.
this.rowLabels[i] = newLabel();
// Set its display properties.
this.rowLabels[i].Text = (i + 1).ToString();
this.rowLabels[i].BackColor = this.cornerLabel.BackColor;
this.rowLabels[i].ForeColor = this.cornerLabel.ForeColor;
this.rowLabels[i].TextAlign = ContentAlignment.MiddleCenter;
// Set its size and position.
this.rowLabels[i].Width = this.cornerLabel.Height;
this.rowLabels[i].Height = this.squareControls[0, 0].Height;
this.rowLabels[i].Left = 0;
this.rowLabels[i].Top = this.cornerLabel.Height + i * this.rowLabels[0].Width * 2;

// Add it.
this.boardPanel.Controls.Add(this.rowLabels[i]);
}
#endregion
// Initialize the game state.

queen = neweightQueen();
memory = queen.getBoard();
}
privatevoid UpdateBoardDisplay()
{
if (moveNumber < 93&&moveNumber>-1)
{
this.moveNumber++;
// Map the current game board to the square controls.
SquareControl squareControl;
for (int row = 0; row < 8; row++)
{
for (int col = 0; col < 8; col++)
{
squareControl = (SquareControl)this.squaresPanel.Controls[row * 8 + col];
if (memory[row, col, this.moveNumber] == true)
{

squareControl.Contents = 1;
}
else squareControl.Contents = 0;
}
}
// Redraw the board.
this.squaresPanel.Refresh();
}
}
privatevoid SquareControl_Click(object sender, System.EventArgs e)
{

this.UpdateBoardDisplay();
}
}
}

استفاده از این برنامه به عنوان پروژه درسی مجاز نیست.دوستان تنها مجاز به استفاده از قسمت گرافیک این برنامه هستند.
برای پیاده سازی دیگر الگوریتم ها تنها کافیست که یک آرایه 3 بعدی را با الگوریتم تان برگردانید.
اندیس اول و دوم این آرایه برای ردیف و ستون صفحه شطرنج در نظر گرفته شده است،و اندیس سوم هم برای ذخیره 92 حالت ممکن در نظر گرفته شده است.

دیگر الگوریتم های ممکن را می توانید در همین فارم پیدا کنید.

Astaraki
۰۹-۱۹-۱۳۸۹, ۰۴:۳۸ بعد از ظهر
Solving the N-Queens Problem

asmagan
۰۹-۲۰-۱۳۸۹, ۱۱:۱۲ قبل از ظهر
ممنون از لطفت ريحانه جان واقعا متشكرم از لطفتون


دوستاي گلم مرتبه زماني و مكاني دو الگوريتم blind و hurrstic search رو اگر داريد لطف كنيد ممنون ميشم

mpour
۰۹-۲۸-۱۳۸۹, ۰۲:۴۰ بعد از ظهر
لطفا حل کامل مساله n وزیر ( 8 وزیر) را همراه با الگوریتم آن با الگوریتم ژنتیک قرار دهید .

mehdinajafinia
۱۰-۶-۱۳۸۹, ۱۰:۱۶ قبل از ظهر
سلام
منم این ترم هوش دارم خواستی مقاله لاتین (ان وزیر) رو با کد پیاده سازی و power point میدم
خبر بده؟:112:

farzane1
۱۰-۲۸-۱۳۸۹, ۱۱:۲۸ قبل از ظهر
سلام پروژه 8وزیر به روش ژنتیک
با نرم افزار مطلب

sinakhaki
۱۰-۳۰-۱۳۸۹, ۰۶:۰۶ بعد از ظهر
سلام دوستان
کسی میدونه هشت وزیر با الگوریتم تپه نوردی چطور حل میشه؟
گوگل کردم ولی خوب نفهمیدم چی میگن. توضیح کامل میخوام.
توضیح :
بعد از قرار دادن وزیر ها در روی صفحه به صورت تصادفی و همچنین دادن مقدار با تابع هزینه به هر کدام از خانه های شطرنج چطور باید محل وزیر ها رو تغییر بدیم ؟

Mahila
۱۰-۳۰-۱۳۸۹, ۰۷:۰۹ بعد از ظهر
سلام
لطفا برای منم الگوریتم 8 وزیر با ژنتیک در متلب رو بفرستید.

sahar68
۱۱-۲۳-۱۳۸۹, ۱۲:۱۲ قبل از ظهر
سلام از تمامی کسانی که تو این تاپیک زحمت کشیدند خیلی تشکر می کنم
من می خوام n وزیرو با روش ارضای محدودیت(csp) بنویسم. اما نمی دونم چه طوری باید گراف محدودیت شو پیاده سازی کنم. ممنون می شم اگه راهنماییم کنید

mehdinajafinia
۱۱-۲۳-۱۳۸۹, ۱۲:۱۲ بعد از ظهر
سلام از تمامی کسانی که تو این تاپیک زحمت کشیدند خیلی تشکر می کنم
من می خوام n وزیرو با روش ارضای محدودیت(csp) بنویسم. اما نمی دونم چه طوری باید گراف محدودیت شو پیاده سازی کنم. ممنون می شم اگه راهنماییم کنید

hi
bebinid har vaziri dar har soton hadafi dare hamon makanesh dar har soton mishe
yek nod.
dar in cod taarif makanharo darim
Variables: { Q1, Q2, Q3, Q4 }

Domain: { (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4) }

Constraints: Alldifferent( Q1, Q2, Q3, Q4 ) and
for i = 0...n and j = (i+1)...n, k = j-i, Q != Q[j] + k and Q[i] != Q[j] - k.



va in algoritm ke baray javab har khane ast bedast miayad ke badan yek csp ast.
khat be khatam tozihesh dadam.

min-conflicts([I]csp, max):
initial := complete assignment ;jamiyate avaliye
for 1..max do: ;az 1 .. akharin khane
if initial is a solution: ;if jamiyate tolide javab bod
return initial ;barmigardanad
var := nextVar() ;da ghire indorat yek motaghair be jelo
value := leastConflicts( var ) ;taeein meghdar
var := value in initial ;gharar dadan meghdar dar motaghair
return failure ;bargash be ebtedaye algoritm



inam chandta file pdf ke ke be tartib rajebe Constraint Graph.
hame chizo to pdf sharh dade az dast nadahid.

http://www.cs.toronto.edu/~fbacchus/Presentations/CSP-BasicIntro.pdf (http://www.cs.toronto.edu/~fbacchus/Presentations/CSP-BasicIntro.pdf)

http://www.iiia.csic.es/~pedro/CSP-Introduction.pdf

http://www.cs.uwaterloo.ca/~jhoey/teaching/cs486/asst1.pdf (http://www.cs.uwaterloo.ca/~jhoey/teaching/cs486/asst1.pdf)

http://cse.unl.edu/~choueiry/F09-896-004/Homework/homework4.pdf (http://cse.unl.edu/~choueiry/F09-896-004/Homework/homework4.pdf)


dar nahayad 2ta pic az backtracking
http://www.4c.ucc.ie/web/outreach/backtracking.jpg


forwardchecking (http://www.4c.ucc.ie/web/outreach/forwardchecking.jpg)

http://www.4c.ucc.ie/web/outreach/forwardchecking.jpg

by

narsis2090
۰۲-۲۴-۱۳۹۰, ۰۱:۲۸ بعد از ظهر
سلام میشه سورس هشت وزیر به روش بازگشتی در سی شارپ رو بده سریع

fmahdi
۰۲-۲۶-۱۳۹۰, ۱۰:۴۵ قبل از ظهر
سلام من این معمای هشت وزیر رو با C# نوشتم.
البته خیلی تعداد خطوطش زیاد شده .
اما به هر حال میازرم برا دانلود.
این برنامه رو با switch-case نوشتم.
:18:

adina
۰۲-۲۶-۱۳۹۰, ۱۱:۵۹ قبل از ظهر
با سلام من برنامه ی 8 وزیرو به زبان سی شارپ می خوام ..خیلی عجله دارم مرسی

m.shh
۰۳-۱-۱۳۹۰, ۰۹:۲۹ قبل از ظهر
سلام من این معمای هشت وزیر رو با c# نوشتم.
البته خیلی تعداد خطوطش زیاد شده .
اما به هر حال میازرم برا دانلود.
این برنامه رو با switch-case نوشتم.
:18:

ببخشید این را با الگوریتم ژنتیک نوشتی؟
ضروریه

fmahdi
۰۳-۱-۱۳۹۰, ۱۱:۴۲ قبل از ظهر
نه...:103:

iAchilles
۰۳-۲-۱۳۹۰, ۰۱:۵۶ بعد از ظهر
و این هم برنامه ی NQueen که n رو از کاربر می خواد و بعد تمام جوابهای موجود رو چاپ میکنه!:D
با TC اجرا ميشه;)

با سلام خدمته دوستان و اساتید ...

دوستان اگه میشه لطف کنن این برنامه رو که با c++ نوشته شده و در پست بالا گزاشته شده بود
(لینک دانلود برنامش : http://artificial.ir/intelligence/attachments/1265d1259942585-nqueen-zip )

توضیح بدن اصلا طرف چی کار کرده ... تقریبا یه توضیح خط به خط ..

واقعا خیلی خیلی ممنون میشم اگه کسی برام توضیح بده
یک دنیا ممنون میشم !!

narsis2090
۰۳-۳-۱۳۹۰, ۰۱:۱۲ بعد از ظهر
code eightqueen be zabane c#ro mikham ba tozih be raveshe bazgashti codesh ason bashe va ghabele fahm
kheyli fori lotfan

reza10203045
۰۳-۵-۱۳۹۰, ۱۰:۰۱ بعد از ظهر
اول باید جامعه اولیه رو تشکیل بدی.جامعه اولیه تعدادی از حالتها میباشد .
مثال 2 3 1 4
برای شروع تعداد جامعه اولیه رو مثلا 5 یا 10 در نظر بگیر
بعد عمل cross over را انجام بده یعنی هر چند عمل القاع می خواهی بکنی به طور تصادفی دو مقدار را از جامعه اولیه انتخاب کن بعد با هم cross over کن
سپس عمل جهش رو روش انجام بده بعد به جامعه اولیه اضافه کن.
بعد از کارهای بالا مقادیر جامعه اولیه را بر حسب هزینه محاسبه کن و مرتب کن
سپس نمونه های اضافی رو پاک کن
بعد چک کن که جواب بهینه در میان جامعه اولیه هست اگر نیست دوباره کارهای بالا را انجام بده

faridprogrammer
۰۳-۱۳-۱۳۹۰, ۱۰:۱۷ قبل از ظهر
نگاه کردم به پست ها... انگار کسی کد متلب ننوشته. (البته گذرا نگا کردم. )
گفتم منم کد متلبشو بذارم. خیلی جالبه !

nazila_96
۰۴-۱-۱۳۹۰, ۱۱:۰۴ قبل از ظهر
سلام ازتون خواهش می کنم برنامه هشت وزیر را با الگوریتم تپه نوردی با c++ ,یا سی شارپ هرچه سریعتر برام بفرستید
من منتظرمhttp://artificial.ir/intelligence/images/smilies/yahoo/110.gif

ayfer.a11
۰۴-۱-۱۳۹۰, ۱۲:۲۹ بعد از ظهر
سلام
این هم برنامه 8 وزیر با c#.

پریسا مقدم
۰۴-۶-۱۳۹۰, ۰۹:۵۱ بعد از ظهر
ببخشید امکانش هست کد قابل اجرای هشت وزیر با پرتو محلی(local beam serach) هم بنویسید؟؟؟؟

fz_asgary
۰۴-۱۴-۱۳۹۰, ۰۹:۴۰ قبل از ظهر
با سلام
من باید مسله nوزیر را به کمک مورچه پیاده سازی کنم اما هیچ چی نمیدونم کمک کنین

fateme_amin
۰۴-۱۶-۱۳۹۰, ۰۸:۵۰ قبل از ظهر
با سلام
نیاز فووورررررررررررری
کسی می تونه مقاله و پیاده سازی از حل مشکل 8 وزیر با شبک عصبی هاپفیلد در اختیار من بذاره

investpm
۰۵-۱-۱۳۹۰, ۰۷:۰۲ بعد از ظهر
سلام
من حل مشکل 8وزیر رو با شبکه عصبی هاپفیلد می خوام کسی می تونه مقاله و پیاده سازی آن رو بده .
مرسی


تا چند روز دیگه آپ میکنم همینجا (با متلب)

shahram64
۰۵-۲۱-۱۳۹۰, ۱۲:۵۹ قبل از ظهر
من سورس کد n وزیر رو با الگوریتم a star میخواستم + پیاده سازی الگوریتم a star
به زبان جاوا یا سی شارپ یا سی پلاس یا سی
پیچیدگی زمانی و پیچیدگی حافظه الگوریتم a star هم اگه کسی از دوستان دارند لطف کنند

hadiseh67
۰۵-۳۰-۱۳۹۰, ۱۰:۱۷ قبل از ظهر
یه برنامه 8 وزیر که با ga پیاده سازی شده دارم
می خواستم ببینم کسی می تونه توضیح بده بهم برنامرو؟؟؟؟؟؟؟؟؟/

Astaraki
۰۵-۳۱-۱۳۹۰, ۰۴:۲۵ بعد از ظهر
یه برنامه 8 وزیر که با ga پیاده سازی شده دارم
می خواستم ببینم کسی می تونه توضیح بده بهم برنامرو؟؟؟؟؟؟؟؟؟/

توضيحات و حل اين مسئله توسط الگوريتم ژنتيک با زبان vb.net (http://artificial.ir/intelligence/post1978-5.html)

اینم 8 وزیر با الگوریتم ژنتیک که با ++c نوشته شده (http://artificial.ir/intelligence/post6167-17.html)

fatemehkh
۰۸-۲۶-۱۳۹۰, ۱۰:۲۶ بعد از ظهر
[QUOTE=fmahdi;18446]سلام من این معمای هشت وزیر رو با C# نوشتم.
البته خیلی تعداد خطوطش زیاد شده .
اما به هر حال میازرم برا دانلود.
این برنامه رو با switch-case نوشتم.
:18:[/
QUOTEodgd
خیلی خوب بود مرسی:11:

manta.20
۰۸-۲۷-۱۳۹۰, ۰۲:۲۹ بعد از ظهر
سلام الگوریتم ژنتیک nوزیر با جهش و ترکیب را به زبان c میخاستم فوررررررررررررررررررررررر رری
مرسی خواهشا
به manta.20@gmail.com

sajad_vorojack
۰۸-۲۹-۱۳۹۰, ۰۵:۳۲ بعد از ظهر
تپه نوردی hill climbing searching یکی از الگوریتم های هوش مصنوعی می باشد که برای مسائل پیچیده به کار میرود به گونه ای که بجای اینکه برای حل مسئله از کل گراف استفاده کند.به صورت اتفاقی از یک قسمت از گراف استفاده میکند.

دريافت سورس برنامه به زبان #c

سلام ریحانه جانم ممنون بابت این همه زحمت
میخواستم سورس کامل برنامه داشته باشم دوم اینکه میشه یه مطلب راهنمایی و اینکه الگوریتم این برنامه چی هستو روش کارش چطوره رو برام بذارید
و اینکه سورس این برنامه رو با زبان های دیگه ای هم دارید یا نه؟ بازم ممنون از لطفتون:1:

sajad_vorojack
۰۸-۳۰-۱۳۹۰, ۱۲:۵۱ بعد از ظهر
سلام به همه دوستان زحمت کش
میخواستم برنامه ایک ه دوستان زحمتشو کشیدن 8 وزیر با #c نوشتن ،کسی هست که برام توضیح بده اخه من برنامه رو یاد ندارم متاسفانه
:((

هوشنگیز
۰۹-۸-۱۳۹۰, ۰۱:۱۷ بعد از ظهر
kheili tamame bakhsh ha kamel bod
mamnoon
man daneshgah azad mobarake tahsil mikonam va be hich onvan dars hosh khob tadris nemishe
matalebeton kheili komak kard

mvtaheri
۰۹-۸-۱۳۹۰, ۱۱:۳۸ بعد از ظهر
سلام دوستان من حل معمای هشت وزیر با rbfs ویا با انالینگ شبیه سازی شده میخواستم کسی داره به من بده البته کدش را می خوام.

jojepanbeyi
۰۹-۱۵-۱۳۹۰, ۰۱:۳۴ بعد از ظهر
اين برنامه با زبان پرولوگ هم در لينک زير نوشته شده!

هشت وزير با prolog (http://artificial.ir/intelligence/زبان-هاي-برنامه-نويسي-ليسپ-و-پرولوگ/586-برنامه-هشت-وزیر-با-prolog.html)
;)

برای دانلود چیزی نیست:-(

daeehamid
۱۰-۱-۱۳۹۰, ۱۲:۲۵ بعد از ظهر
سلام
من 5 وزیر رو توی سی شارپ میخوام البته کنسول اپلیکیشن ممنون میشم اگه کسی کمکم کنه

cpppro
۱۰-۳-۱۳۹۰, ۰۸:۲۷ قبل از ظهر
با سلام به دوستان
من این برنامه رو از همین فروم دانلود کردم ولی توی تحلیل و توضیحش کمی مشکل دارم.
دوستان کسی هست این برنامه رو به طور کامل تشریح کنه.عملکرد هر یک از توابع و قسمتها
مرسی و تشکر

// n vazir.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>

int x[10],sn=0,sp=22,counter;

int bqueens(int k,int i)
{
int j;
for(j=1;j<k;j++)
{
if(x[j]==i||j-x[j]==k-i||j+x[j]==k+i)
return 0;
}
return 1;
}
void btqueens(int k,int n){

int i,j;
for(i=1;i<=n;i++)
if(bqueens(k,i))
{
x[k]=i;
if(k==n){
if(sn++<sp)
{
printf("\n % 3d Answer is: ",++counter);
for(j=1;j<n+1;j++)
printf(" %d ",x[j]);
}
else
{
printf("\nPress any key to continue . . .");
getch();
sn=0;
sp+=2;
}
}
else
btqueens(k+1,n);
}
}
void main(){
int n;

printf("Please enter N queens: ");
scanf("%d",&n);
btqueens(1,n);
getch();
}

blueheart
۱۰-۳-۱۳۹۰, ۰۴:۳۱ بعد از ظهر
سلام دوستان
من بازی 8 پازل رو با استفاده از الگوریتم * aدر محیط ویژوال بیسیک می خواستم.ممنونم میشم کمکم کنید.لطفا

ratanaz
۱۰-۲۱-۱۳۹۰, ۱۲:۴۷ بعد از ظهر
reyhane عزیز ممنون بابت توضیحات و کدهاتون

SheRvin_TakA2
۱۰-۲۳-۱۳۹۰, ۱۱:۳۲ بعد از ظهر
برای دانلود چیزی نیست:-(

چیزی یافت نشد ؟؟؟؟

mvtaheri
۱۱-۲-۱۳۹۰, ۱۲:۳۵ قبل از ظهر
با سلام
من پروژه هشت وزیر را با برنامه نویسی جاوا حل کردم دوستان اگه نیاز دارن می تون به من ایمیل بزنن تا براشون بفرستم
mvtaheri96@yahoo.com

bahare64
۱۱-۸-۱۳۹۰, ۰۹:۱۶ بعد از ظهر
سلام ممنون بابت اطلاعات مفیدی که قرار میدن،
من برای انجام پایان نامم نیاز به پیاده سازی الگوریتم ممتیک دارم تمامی قسمتهای الگوریتمو پیاده سازی کردم فقط قسمت سرچ محلی باقی مونده نمی دونم باید از کجا شروع کنم ممکنه کمکم کنید بازم ممنون.

hanna
۱۲-۱۸-۱۳۹۰, ۱۲:۱۸ بعد از ظهر
سلام به همه.
من حل 8 وزیر با الگوریتم سرد و گرم میخوام.
فرض اول: همه در صفحه
فرض دوم: تک تک وارد صفحه می شوند

mah_baron
۰۲-۶-۱۳۹۱, ۰۱:۰۵ بعد از ظهر
سلام ریحانه جان میخوام برنامه 8 وزیر به روش الگوریتم ژنتیک که احتمال برش و جهش هم در نظر بگیرم و کدینگ باینری میخوام داشته باشم ، مینویسم اما چندتا سوال اساسی دارم وکسی میخوام که کدمو چک کنه و اشکالات بهم بگه. البته با متلب مینویسم. خواهش میکنم کمکم کنید .
bid_baron@yahoo.com
اگه مایلید بهم میل بزنید.لطفا

navidjoobi
۰۲-۱۹-۱۳۹۱, ۰۲:۱۹ بعد از ظهر
سلام
کسی میتونه به من کمک کنه ؟
من یه صفحه شطرنج دارم که 8 سطر و 8 ستون داره
چطور میشه 8 تا وزیر رو چید که هیچ کدوم کیش نشن؟
لطفا روی شکل جوابو بگید اگر میدونین

mehran2008
۰۲-۱۹-۱۳۹۱, ۰۴:۲۲ بعد از ظهر
سلام،

92 تا جواب داره که این یکیشونه

http://artificial.ir/intelligence/attachments/5226d1336481531-8-queens-92-jpg

seda
۰۵-۲-۱۳۹۱, ۱۰:۵۶ قبل از ظهر
با عرض سلام خدمت شما،
موضوع پروژه من حل معما 8 وزیر به کمک الگوریتم ژنتیک هستش. من باید به طور کامل در مورد حل معما 8 وزیر با روش های مختلف اطلاعات جمع کنم و محور کل الگوریتم ژنتیک باشه سپس آن را پیاده سازی کنم.پیاده سازی آن بهتره با ++cباشه.و تمام مراحل پیاده سازی را کامل توضیح بدم .لطفآ اگه مقاله یا مطلبی در این ضمینه دارید برای من ارسال کنید و در کل خواهش کمک در این مورد از شما دارم.مرسی

mehran2008
۰۵-۲-۱۳۹۱, ۱۱:۱۲ قبل از ظهر
هم ++c و هم matlab تا دلتون بخواهد کد آماده تو اینترنت در این مورد هست. من خودم زمان دانشجویی یه برنامه نوشته بودم که با الگوریتم ژنتیک جواب های n وزیر رو پیدا می کرد (n پارامتر مساله بود) و به صورت تصویر روی برد شطرنج نشون می داد.

چند نمونه از نتایجش رو هم ضمیمه کردم


http://artificial.ir/intelligence/attachments/5292d1343029240-8-queens-mistake-queens%3D0-jpg

http://artificial.ir/intelligence/attachments/5293d1343029254-10-queens-mistake-queens%3D0-jpg

http://artificial.ir/intelligence/attachments/5294d1343029274-16-queens-mistake-queens%3D0-jpg

http://artificial.ir/intelligence/attachments/5295d1343029317-24-queens-mistake-queens%3D0-jpg

http://artificial.ir/intelligence/attachments/5296d1343029329-30-queens-mistake-queens%3D0-jpg

mehran2008
۰۵-۲-۱۳۹۱, ۱۱:۱۷ قبل از ظهر
تو تاپیک زیر هم می تونید کد های الگوریتم ژنتیک رو دانلود کنید
http://artificial.ir/intelligence/thread389.html

maryam1368
۰۵-۲۶-۱۳۹۱, ۱۲:۲۴ بعد از ظهر
میشه کدهای برنامه 8 وزیر با الگوریتم ژنتیک که به زبان vb هست رو یکی برام توضیح بده؟زود میخام.ممنون میشم اگه کسی کمکم کنه

sheera
۰۹-۱۰-۱۳۹۱, ۰۷:۱۷ قبل از ظهر
سلام! من مسئله زمانبندی ماشینها رو با استفاده از tabu search , الگوریتم ژنتیک میخواستم لطفا کمکم کنید
متشکرم..... Can i ? Can i ? Can i ?

sia abedi
۰۹-۲۴-۱۳۹۱, ۰۸:۰۸ بعد از ظهر
سلام بچه ها من باید 8 وزیر را طوری بنویسم که وزیر اول را کاربر بگه کجا باشه! من روش مکاشفه ای و عقبگرد رو خوندم هر جفتشون جوری هستن که نمیشه وزیر اول را خودمون مشخص کنیم.به نظرتون بهترین روش چیه؟من هوش مصنوعی هم بلد نیستم.پس اگه الگوریتم خاصی میدین منبع اموزش کامل بدین ممنون میشم

mehran2008
۰۹-۲۵-۱۳۹۱, ۰۸:۱۲ قبل از ظهر
سلام،

تو هر روشی یه جور باید این محدودیت رو اعمال کنید. مثلا تو الگوریتم ژنتیک باید کرومزوم هاتون رو تو هر نسل قبل از این که CrossOver یا Mutation انجام دهید، طوری تغییر بدید که وزیر اول تو خانه ای که کاربر تعیین کرده قرار بگیره.

در کل کار سختی نیست. نگران نباشید.

شاد باشید.


سلام بچه ها من باید 8 وزیر را طوری بنویسم که وزیر اول را کاربر بگه کجا باشه! من روش مکاشفه ای و عقبگرد رو خوندم هر جفتشون جوری هستن که نمیشه وزیر اول را خودمون مشخص کنیم.به نظرتون بهترین روش چیه؟من هوش مصنوعی هم بلد نیستم.پس اگه الگوریتم خاصی میدین منبع اموزش کامل بدین ممنون میشم

elenorgt500
۰۹-۳۰-۱۳۹۱, ۰۲:۳۷ بعد از ظهر
اینم 8 وزیر با الگوریتم ژنتیک که با ++c نوشته شده

با تشکر از مدير گرامي alijy

سلام

دوستان این برنامه ناقصه تابع main نداره یا یک برنامه کامل بدین یا لطف کنید راهنمایی کنید تا کامل بشه

با تشکر از تمام مدیران و اعضای انجمن

setayesh1989
۱۰-۲۲-۱۳۹۱, ۱۱:۱۴ قبل از ظهر
8وزیر با الگوریتم ژنتیک تو matlab کسی نداره؟ لطفا ؟؟؟؟؟

nase66
۱۰-۳۰-۱۳۹۱, ۰۶:۴۶ بعد از ظهر
داداش من تو متلب با تکنیک عقب گرد رو دارم اگه میخوای بهم ایمیل بزن تا برات بفرستم
computer.has.life@gmail.com
خودم هم برنامه 8 وزیر با تکنیک جستجوی محلی و مساله ارضای محدودیت رو میخوام اگه کسی داره لطفا بهم ایمیل بزنه خیلی نیاز دارم.ممنون

morteza2013
۱۲-۴-۱۳۹۱, ۰۳:۱۰ بعد از ظهر
سلام
این هم پروژه 8 وزیر با الگوریتم ژنتیک با متلب(matlab) فایل رو از لینک زیر دانلود کنید:
Download File : 8vazir.rar (http://www.uplooder.net/cgi-bin/dl.cgi?key=0f03451f844ec139de391340634a14a5)

nf_niloo
۰۱-۲۵-۱۳۹۲, ۰۹:۳۱ بعد از ظهر
سلام
کسی میدونه مساله 8 وزیر با الگوریتم ,simulated annealing ,hill climbing
کدوم روش سریعتر و کدوم دقیق تر است؟

fatimayas
۰۲-۲۶-۱۳۹۲, ۰۲:۴۰ بعد از ظهر
درخواست راهنمایی در مورد برنامه هیوریستیک از طریق A* معمای 8 وزیر با c#

mohandesm
۰۵-۲-۱۳۹۲, ۰۴:۱۱ بعد از ظهر
سلام دوستان. اگر ممکنه پیچیدگی زمانی این الگوریت ها رو هم بنویسید

nm_kolaeii
۰۵-۱۴-۱۳۹۲, ۰۶:۲۸ بعد از ظهر
سلام دوستان
حل معمای 8 پازل به روش تپه نوردی و آگاهانه را می خوام؟

soheilmka
۰۷-۱۷-۱۳۹۲, ۰۳:۱۳ بعد از ظهر
دوستان کسی حل این روش رو با برنامه ریزی عدد صحیح میدونه؟؟؟ حل مسیله از طریق integer programming? ??

fatemeh khorasani
۰۸-۵-۱۳۹۲, ۰۷:۳۰ بعد از ظهر
مسِیله8 وزیر با متلب لطفا برام بفرستید

djreza
۱۲-۲۴-۱۳۹۲, ۰۹:۵۵ بعد از ظهر
لطفا مسئله 8 وزیر رو با استفاده از درخت ریشه دار حل کنید؟

RAHELE913
۰۳-۲۸-۱۳۹۳, ۰۸:۴۴ بعد از ظهر
سلام به همه اعضای تالار
دنباله مساله 8 وزیر بت با الگوریتم *aمیگردم .
خواهش میکنم کمکم کنید
با تشکر

RAHELE913
۰۳-۲۸-۱۳۹۳, ۰۸:۴۵ بعد از ظهر
سلام به همه اعضای تالار
دنباله مساله 8 وزیر بت با الگوریتم *Aمیگردم .
خواهش میکنم کمکم کنید
با تشکر
raheleh.mohammadi913@yahoo.com

m_k123
۰۴-۵-۱۳۹۳, ۰۶:۰۳ بعد از ظهر
سلام دوستان من هم به پژروِه 8 وزیر با توضیح کامل احتیاج دارم لطفا کمکم کنید.
ممنون

mari-nafas
۰۹-۲۷-۱۳۹۳, ۱۲:۰۸ قبل از ظهر
سلام اگه کسی مسئله 8وزیر به روش الگوریتم ژنتیک با c++ رو داره برام ایمیل کنه
یا اگه لینک از سایتی رو میدونید ک بتونم دانلود کنم بهم بگید
ممنون میشم
اینم ایمیلم : marziehmohammadi34@gmail.com

amirttt
۱۰-۲-۱۳۹۳, ۰۳:۳۴ بعد از ظهر
روی خود مسئله اش که فکر میکردم خیلی گیج شدم امیددوارم با مباحثی که توی کتاب هوش مصنوعی نوین نوشته زمرد (https://sharafonline.ir/product-category/ring/emerald-ring/) البصری میخونم بتونم از این سردرگمی دربیام

raminkh
۱۲-۱۲-۱۳۹۳, ۰۹:۳۷ قبل از ظهر
ميخواستم اگر زحمتي نيست براتون كد برنامه زير با استفاده از زبان مطلب را برايم بفرستيد

با استفاده از الگوريتم ‍ژنتيك a,b را حساب كند

39306643
a=39
b=43
a*43+39=0

باتشكر و قدرداني از زحمات شما
بي زحمت حلش برايم ايميل كنيد
raminkh04@yahoo.com

masoudvbir
۰۳-۱-۱۳۹۴, ۰۹:۲۱ قبل از ظهر
عالی بود دمتون گرم

nana72
۰۳-۱۸-۱۳۹۴, ۰۱:۰۰ قبل از ظهر
اینم 8 وزیر با الگوریتم ژنتیک که با ++c نوشته شده

با تشکر از مدير گرامي alijy

سلام.من همین برنامه رو که با سی پلاس پلاس نوشتید میخوام با توربو سی پلاس پلاس اجراش کنم نمیشه.خطا میزنه.میشه برنامشو با توربو بزارید؟

hosseinalb
۱۲-۱۹-۱۳۹۴, ۰۲:۰۷ بعد از ظهر
خیلی ممنون
درب ضد سرقت (http://www.dooris.ir)

alimousvi12
۰۳-۱۵-۱۳۹۵, ۰۴:۴۲ بعد از ظهر
با عرض سلام وخسته نباشید
من درس هوش مصنوعی دارم واستادم پروژه بازی سوکوبان رو داده به اینصورت که باید جای جعبه وهدف رو مشخص کنید بعدش برنامه راه حل رسیدن را بده!!خیلی ممنون میشم اگه کمک کنید

pene
۰۴-۸-۱۳۹۵, ۰۹:۱۳ بعد از ظهر
سلام دوستان ، پروژه n وزیر به روش local beam search رو کسی داره؟!

apamaweb
۰۶-۸-۱۳۹۵, ۰۹:۰۵ قبل از ظهر
نه ما نداریم
درب ضد سرقت (http://www.doorturkcelikkapi.com)

باده
۰۹-۷-۱۳۹۵, ۰۶:۱۱ بعد از ظهر
سلام میشه حل مسئله ی چهار وزیر و با bfs آگاهانه بزارید.

امیرعباس94
۰۳-۲۳-۱۳۹۷, ۱۲:۵۸ قبل از ظهر
سلام دوستان کسی حل مسئله هشت وزیر را با استفاده از الگوریتم جستجوی هارمونی نداره ؟؟خیلی نیازش دارم اینم آدرس ایمیلم.d_danesh1394@yahoo.com

faeze1377
۰۸-۱۷-۱۳۹۷, ۰۴:۴۷ بعد از ظهر
میشه پیاده سازی 8 وزیر تو سی پلاس پلاس به روش greedyو a* رو برام ایمیل کنید ؟؟؟؟
F.studentcomputer@gmail.com

ardameh
۰۹-۸-۱۳۹۷, ۱۰:۳۶ قبل از ظهر
سلام مقاله یا توضیح حل روش های الگوریتم هشت وزیر رو میخوام حداقل توضیح 4 روش رو نیاز دارم ! فقد توضیحش رو میخوام ! که بفهمم
باید حل 4روش رو در کلاس ارایه بدم
ممنون

Rezaabasi
۱۰-۱۶-۱۳۹۷, ۰۷:۴۵ بعد از ظهر
سلام دوستا کد c# حل مسئله ۸وزیر با الگوریتم مورچگان رو اگه دارید لطفا میفرستید؟

Compi
۰۲-۲۷-۱۳۹۸, ۱۱:۵۹ قبل از ظهر
سلام مقاله یا توضیح حل روش های الگوریتم هشت وزیر رو میخوام حداقل توضیح 4 روش رو نیاز دارم ! فقد توضیحش رو میخوام ! که بفهمم
باید حل 4روش رو در کلاس ارایه بدم
ممنون
با سلام لطفا اگر میتونید در مورد این الگوریتم توضیح دهید و کاربردهای این الگوریتم چیست اگر سی در مورد این الگوریتم پاوری داره ارسال کنه سپاس:63::63::20::20:

Compi
۰۲-۲۷-۱۳۹۸, ۰۲:۴۹ بعد از ظهر
سلام مقاله یا توضیح حل روش های الگوریتم هشت وزیر رو میخوام حداقل توضیح 4 روش رو نیاز دارم ! فقد توضیحش رو میخوام ! که بفهمم
باید حل 4روش رو در کلاس ارایه بدم
ممنون
با سلام لطفا اگر میتونید در مورد این الگوریتم توضیح دهید و کاربردهای این الگوریتم چیست اگر کسی در مورد این الگوریتم پاوری داره ارسال کنه سپاس:63::63::20::20:

istadoor
۰۶-۳-۱۳۹۸, ۰۳:۴۱ بعد از ظهر
صورت مسئله هشت وزیر رو از کجا ببینیم؟

mitra*
۰۹-۲۴-۱۳۹۸, ۰۶:۵۴ بعد از ظهر
سلام،
دوستان من نیاز دارم مسئله هشت وزیر با شبکه عصبی Hopfield حل بشه. اعترافم میکنم هیچی بلد نیستم. کسی میتونه کد متلبشو برا بفرسته.
ممنونم از همگی

kcpu
۰۲-۲۰-۱۳۹۹, ۰۳:۵۴ بعد از ظهر
سلام دوستان
من این مسله 8 وزیر را با زبان gwbasic حل کردم. امیدوارم که مفید باشد.
زبان gwbasic فاقد توانایی استفاده از توابع خود صدازن یا بازگشتی است.


100 DEFINT I-N, S, X
110 DIM X(8), STK(40)
120 SP=40: M=0: GOSUB 150
130 END
140 '
150 M=M+1
160 IF M>8 THEN PRINT X(1); X(2); X(3); X(4); X(5); X(6); X(7); X(8): GOTO 220
170 FOR I=1 TO 8
180 J=1
190 IF J<M AND X(J)<>I AND ABS(X(J)-I)<>M-J THEN J=J+1: GOTO 190
200 IF J>=M THEN X(M)=I: GOSUB 240: GOSUB 150: GOSUB 270
210 NEXT
220 RETURN
230 '
240 SP=SP-3: STK(SP)=I: STK(SP+1)=J: STK(SP+2)=M
250 RETURN
260 '
270 I=STK(SP): J=STK(SP+1): M=STK(SP+2): SP=SP+3
280 RETURN

Eng.kimiya
۰۸-۵-۱۳۹۹, ۰۹:۰۴ بعد از ظهر
سلام دوستان
من این مسله 8 وزیر را با زبان gwbasic حل کردم. امیدوارم که مفید باشد.
زبان gwbasic فاقد توانایی استفاده از توابع خود صدازن یا بازگشتی است.


100 defint i-n, s, x
110 dim x(8), stk(40)
120 sp=40: M=0: Gosub 150
130 end
140 '
150 m=m+1
160 if m>8 then print x(1); x(2); x(3); x(4); x(5); x(6); x(7); x(8): Goto 220
170 for i=1 to 8
180 j=1
190 if j<m and x(j)<>i and abs(x(j)-i)<>m-j then j=j+1: Goto 190
200 if j>=m then x(m)=i: Gosub 240: Gosub 150: Gosub 270
210 next
220 return
230 '
240 sp=sp-3: Stk(sp)=i: Stk(sp+1)=j: Stk(sp+2)=m
250 return
260 '
270 i=stk(sp): J=stk(sp+1): M=stk(sp+2): Sp=sp+3
280 return





سلام...توی مسیله ۸‌وزیر یه عدد ۲۰۵۷ صحبت شده که میگه عدد ۳*۱۰^۱۴ به عدد ۲۰۵۷ کاهش یافته ...این ۲۰۵۷ از کجا اومده؟؟؟

missmohammadi
۰۹-۲۰-۱۳۹۹, ۱۱:۴۸ بعد از ظهر
کسی میتونه در این باره کمکم کنه؟
به انتخاب خودتا یکی از الگوریتم های جستجوی محلی ( تپه نوردی / sa / ga ...) را برای حل مسیله 8 وزیر پیاده سازی کنید.

life123
۱۱-۱-۱۴۰۱, ۰۷:۳۹ بعد از ظهر
من تابع whereY رو درست متوجه نشدم درموردش توضیح میدید لطفا