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

بازگشت   Artificial Intelligence - هوش مصنوعی > مقدمات هوش مصنوعی > حل مسائل معروف هوش مصنوعي


 
تبليغات سايت
Iranian Association for the Advancement of Artificial Intelligence
ارسال تاپيک جديد  پاسخ
 
LinkBack ابزارهاي تاپيک نحوه نمايش
قديمي ۱۰-۲۳-۱۳۸۸, ۰۵:۴۴ بعد از ظهر   #1 (لینک دائم)
عضو جدید
 
آواتار ghasedak29
 
تاريخ عضويت: دي ۱۳۸۸
محل سكونت: تهران
پست ها: 2
تشكرها: 2
0 تشكر در 0 پست
پيش فرض درخواست حل جدول سودوکو

سلام. خسته نباشید.
میشه لطفا یه برنامه برای حل سودوکو بذارید.
ghasedak29 آفلاين است   پاسخ با نقل قول

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

نشان دهنده تبلیغات is online  
قديمي ۱۰-۲۳-۱۳۸۸, ۰۵:۵۳ بعد از ظهر   #2 (لینک دائم)
Super Moderator
 
آواتار pasmod
 
تاريخ عضويت: آذر ۱۳۸۸
محل سكونت: آلمان
پست ها: 101
تشكرها: 59
221 تشكر در 66 پست
My Mood: Khonsard
ارسال پيغام Yahoo به pasmod
پيش فرض

به چه زبانی؟
__________________
https://www.facebook.com/Pashutan.M
pasmod آفلاين است   پاسخ با نقل قول
از pasmod تشكر كرده است:
Astaraki (۱۰-۲۳-۱۳۸۸)
قديمي ۱۰-۲۳-۱۳۸۸, ۰۶:۲۸ بعد از ظهر   #3 (لینک دائم)
عضو جدید
 
آواتار ghasedak29
 
تاريخ عضويت: دي ۱۳۸۸
محل سكونت: تهران
پست ها: 2
تشكرها: 2
0 تشكر در 0 پست
پيش فرض

زبانش مهم نیست. الگوریتمش مهمه. اگه c++ باشه که خیلی بهتره.
ghasedak29 آفلاين است   پاسخ با نقل قول
قديمي ۱۰-۲۳-۱۳۸۸, ۰۶:۳۳ بعد از ظهر   #4 (لینک دائم)
Administrator
 
آواتار Astaraki
 
تاريخ عضويت: خرداد ۱۳۸۷
محل سكونت: تهران-کرج!
پست ها: 3,465
تشكرها: 754
16,337 تشكر در 3,127 پست
My Mood: Mehrabon
ارسال پيغام Yahoo به Astaraki
Wink پروژه سودوکو مربوط به هوش مصنوعي

این برنامه همان جدول سودوکو است که توسط ویژوال سی شارپ نوشته شده و با دو الگوریتم پویا و بازگشت به عقب حل میکند.

بقيه دوستان هم لطف کنند برنامه را به هر زباني که دارند اينجا قرار بدن ممنون!
فايل ضميمه
نوع فايل: rar Sodoko.rar (346.8 كيلو بايت, 1013 نمايش)
Astaraki آفلاين است   پاسخ با نقل قول
از Astaraki تشكر كرده اند:
ghasedak29 (۱۰-۲۳-۱۳۸۸), jaafar1363 (۰۹-۲۸-۱۳۹۰), masood (۱۰-۱۱-۱۳۹۱), ایمان گله (۱۰-۱۷-۱۳۹۲)
قديمي ۱۰-۲۳-۱۳۸۸, ۰۶:۵۲ بعد از ظهر   #5 (لینک دائم)
Super Moderator
 
آواتار pasmod
 
تاريخ عضويت: آذر ۱۳۸۸
محل سكونت: آلمان
پست ها: 101
تشكرها: 59
221 تشكر در 66 پست
My Mood: Khonsard
ارسال پيغام Yahoo به pasmod
پيش فرض

این هم به زبان مطلب هستش. البته بدون استفاده از تکنیک‌های هوش مصنوعی. برای مقایسه بد نیست داشته باشید.
فايل ضميمه
نوع فايل: zip sodoku.zip (849 بايت, 259 نمايش)
__________________
https://www.facebook.com/Pashutan.M
pasmod آفلاين است   پاسخ با نقل قول
از pasmod تشكر كرده اند:
Astaraki (۱۰-۲۳-۱۳۸۸), ghasedak29 (۱۰-۲۳-۱۳۸۸), masood (۱۰-۱۱-۱۳۹۱)
قديمي ۱۰-۲۴-۱۳۸۸, ۰۱:۰۱ قبل از ظهر   #6 (لینک دائم)
عضو جدید
 
آواتار amir_rtk
 
تاريخ عضويت: دي ۱۳۸۸
محل سكونت: کاشان
پست ها: 1
تشكرها: 0
0 تشكر در 0 پست
پيش فرض سودوکو

چطور میشه که خل جدول سودوکو بیش از ده ها روش داشته باشه
amir_rtk آفلاين است   پاسخ با نقل قول
قديمي ۰۲-۲۰-۱۳۸۹, ۱۱:۴۶ قبل از ظهر   #7 (لینک دائم)
عضو جدید
 
آواتار نفس
 
تاريخ عضويت: اسفند ۱۳۸۸
پست ها: 3
تشكرها: 3
0 تشكر در 0 پست
پيش فرض

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

نقل قول:
نوشته اصلي بوسيله نفس نمايش پست
سلام.میشه سورس کد جدول سودوکو رو به زبان پرولوگ بذارین؟
اگه لطف کنین تا آخر این هفته بذارین ممنون میشم...
تقديم شما
Prolog Sudoku Solver
GNU Prolog code to solve sudoku puzzels

كد:
%
GNU Prolog code to solve sudoku puzzels % written by Niels & Andreas :- dynamic(counter/1). go :- File = 'sudoku.txt', % the file to read from, file should have 9 lines, each 9 charaters start(File). % 0 or spaces should be used for unknown values start(File) :- statistics(cputime,Cpu), % to count cpu time+ write(trying_file(File)),nl, % writeln doesn't work in GNU prolog see(File), % open file ( readall(List),nl, % read the file into the List write('list after reading: '),nl, pretty_sudo_print(List),nl, % print to see if reading went ok retractall(counter(_)), SolveTimes = 10, assert(counter(SolveTimes)), solve(List,SolveTimes) ; true ), seen, write('cpu time taken: '), statistics(cputime,CpuNew), CpuUsed is CpuNew - Cpu, writeln(CpuUsed). % close the file solve(List,C) :- %solve List max C times correct_whole(List),!, fill_numbers_in(List), retract(counter(X)), Xnew is X -1, Numb is C - X +1, write('number '),write(Numb),write(' found: '), pretty_sudo_print(List),nl, ( Xnew < 1,!, write('solving completed: '),write(C),write(' solutions found.... there might be more out there ... '), fail; true ), assert(counter(Xnew)), fail. solve(List,_) :- writeln(not_able_to_solve(List)). correct_whole(List) :- % check the file which was read for mistakes already existing control_hori(List), control_verti(List), control_regio(List). % check if all rows have no double items control_hori([]). control_hori([H|T]) :- all_different(H), control_hori(T). % check if all columns have no double items control_verti([[],[],[],[],[],[],[],[],[]]). control_verti([[A|TA],[B|TB],[C|TC],[D|TD],[E|TE],[F|TF],[G|TG],[H|TH],[I|TI]]) :- all_different([A,B,C,D,E,F,G,H,I]), control_verti([TA,TB,TC,TD,TE,TF,TG,TH,TI]). % check if every 3x3 area has no double items control_regio([]). control_regio([A,B,C|T]) :- control_regio_row([A,B,C]), control_regio(T). control_regio_row([[],[],[]]). control_regio_row([[A,B,C|TA],[D,E,F|TB],[G,H,I|TC]]) :- all_different([A,B,C,D,E,F,G,H,I]), control_regio_row([TA,TB,TC]). correct_part(List,X,Y) :- % control a part of the sudoku with locations X and Y control_part_verti(List,Y), control_part_regio(List,X,Y),!. control_part_verti([[A|_],[B|_],[C|_],[D|_],[E|_],[F|_],[G|_],[H|_],[I|_]],1) :- %right column found !, all_different([A,B,C,D,E,F,G,H,I]). control_part_verti([[_|TA],[_|TB],[_|TC],[_|TD],[_|TE],[_|TF],[_|TG],[_|TH],[_|TI]],Y) :- Ynew is Y -1, control_part_verti([TA,TB,TC,TD,TE,TF,TG,TH,TI],Ynew). %check next column control_part_regio(List,X,Y) :- Xnew is (X -1)// 3, % make the 9x9 to a 3x3 Ynew is (Y -1)// 3, control_part_regio_area(List,Xnew,Ynew). control_part_regio_area([Row1,Row2,Row3|_],0,Y) :- !,control_part_regio_row([Row1,Row2,Row3],Y). % rows where the 3x3 area is are found control_part_regio_area([_,_,_|List],X,Y) :- Xnew is X -1, control_part_regio_area(List,Xnew,Y). % try next rows control_part_regio_row([[A,B,C|_],[D,E,F|_],[G,H,I|_]],0) :- % 3x3 area found !,all_different([A,B,C,D,E,F,G,H,I]). control_part_regio_row([[_,_,_|TA],[_,_,_|TB],[_,_,_|TC]],Y) :- Ynew is Y -1, control_part_regio_row([TA,TB,TC],Ynew). %check next columns all_different([]) :- !. % an empty list has no double items :) all_different([H|T]) :- ( var(H) % if H is a Var, don't let it match with other items in the list ; not(membervar(H,T)) % else, make sure H is not in T ),!, all_different(T). %check rest of list membervar(H,[Var|T]) :- var(Var),!, % don't match Var with H membervar(H,T). % check if H is in T membervar(H,[H|_]) :- !. membervar(H,[_|T]) :- !,membervar(H,T). fill_numbers_in(List) :- findanVar(H,List,0,X,Y,Sublist), %find an var difference([1,2,3,4,5,6,7,8,9],Sublist,Choices), !, member(H,Choices), % find available number for that row correct_part(List,X,Y), fill_numbers_in(List). %check if it is correct fill_numbers_in(_). %there are no vars to fill in anymore. % give difference bewteen List and another list, all items which are in 1st but not in 2nd difference(List,[],List) :- !. difference(List,[H|Sublist],Difference) :- var(H),!,difference(List,Sublist,Difference),!. difference(List,[H|Sublist],Difference) :- remove(H,List,Newlist), difference(Newlist,Sublist,Difference),!. % remove item from the list remove(H,[H|T],T) :- !. %there is always max one time H in the list remove(_,[],[]). remove(H,[V|T],[V|NewT]) :- remove(H,T,NewT). findanVar(V,[Row|_],X,Xend,Yend,Row) :- Xnew is X +1, findaVar(V,Row,Xnew,1,Xend,Yend). % find a Var inside this row findanVar(V,[_|Rest],X,Xend,Yend,Sublist) :- Xnew is X +1, findanVar(V,Rest,Xnew,Xend,Yend,Sublist). %loop thru all horizontal rows findaVar(V,[V|_],X,Y,X,Y) :- %lovely.. :] var(V),!. findaVar(V,[_|T],X,Y,Xend,Yend) :- Ynew is Y + 1, findaVar(V,T,X,Ynew,Xend,Yend),!. % to read from the file readall(List) :- List = [_,_,_,_,_,_,_,_,_], readrows(List),!. readall(_) :- write('reading failed :/'),!,fail. readrows([]). readrows([H|T]) :- readrow(H), readrows(T). %read one row readrow(Var) :- Var = [_,_,_,_,_,_,_,_,_], readchars(Var). readchars([]) :- get0(Y), (Y == 10 ; Y == 13; Y == -1),!. readchars([H|T]) :- get0(Y), (((Y == 10 ; Y == 13),!,readchars([H|T])); ( (Y == 32;Y == 48),!; (Y > 48,Y < 58,!,H is Y - 48) ), readchars(T)). % pretty printing \0/ pretty_sudo_print([]). pretty_sudo_print([A,B,C|T]) :- nl,printsudorow(A), printsudorow(B), printsudorow(C), pretty_sudo_print(T). printsudorow([]) :- nl. printsudorow([A,B,C|T]) :- writerepv(A),tab(1), writerepv(B),tab(1), writerepv(C),tab(3), printsudorow(T). writerepv(X) :- var(X),!,write(' '). writerepv(X) :- write(X).
Astaraki آفلاين است   پاسخ با نقل قول
از Astaraki تشكر كرده اند:
masood (۱۰-۱۱-۱۳۹۱), نفس (۰۳-۹-۱۳۸۹)
قديمي ۰۲-۲۳-۱۳۸۹, ۰۲:۱۶ بعد از ظهر   #9 (لینک دائم)
عضو جدید
 
آواتار نفس
 
تاريخ عضويت: اسفند ۱۳۸۸
پست ها: 3
تشكرها: 3
0 تشكر در 0 پست
پيش فرض

ممنون از لطفتون.فقط فراخوانی این تابع تو محیط پرولوگ چطوریه؟یعنی چه طوری باید اجراش بکنم؟
اگه توضیح بدین ممنون میشم...
نفس آفلاين است   پاسخ با نقل قول
قديمي ۰۳-۳-۱۳۸۹, ۰۱:۴۴ قبل از ظهر   #10 (لینک دائم)
Super Moderator
 
آواتار alijy
 
تاريخ عضويت: خرداد ۱۳۸۹
محل سكونت: ارض الله الواسعة
پست ها: 78
تشكرها: 23
250 تشكر در 77 پست
My Mood: Khonsard
پيش فرض

نقل قول:
نوشته اصلي بوسيله نفس نمايش پست
ممنون از لطفتون.فقط فراخوانی این تابع تو محیط پرولوگ چطوریه؟یعنی چه طوری باید اجراش بکنم؟
اگه توضیح بدین ممنون میشم...
یه فایل به نام sudoku.txt ایجاد کنید که دارای 9 سطر باشه. هر سطر معادل سطر هم شماره اش توی جدول اولیه هست. توی هر سطر یه عدد 9 رقمی بنویسید به این صورت که بجای هر خونه خالی جدول رقم 0 و بجای هر خونه عدد دار عددش رو میذارید. مثلا اگه توی سطر اول جدول عدد 4 توی خونه اول از سمت چپ، عدد 7 توی خونه سوم از سمت چپ و عدد 1 توی خونه یکی مونه به آخر از سمت چپ (دومی از راست) باشه، سطر اول توی sudoku.txt میشه 407000010.

وقتی sudoku.txt رو کامل کردین اون رو توی همون دایرکتوری حاوی برنامه sudoku ذخیره کنین. حالا فقط کافیه که برنامه رو اجرا کنید و داخل برنامه تایپ کنید:
.go
alijy آفلاين است   پاسخ با نقل قول
از alijy تشكر كرده اند:
Astaraki (۰۳-۴-۱۳۸۹), jaafar1363 (۰۹-۲۸-۱۳۹۰), masood (۱۰-۱۱-۱۳۹۱), نفس (۰۳-۹-۱۳۸۹)
پاسخ



كاربران در حال ديدن تاپيک: 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