PDA

View Full Version : سوال: درخت،پازل 8تایی،A*



Afshin111
شنبه 17 دی 1390, 00:33 صبح
با سلام به اساتید محترم
من میخواستم پازل 8 تایی رو به زبان C بنویسم و به یه مشکل برخوردم
من چطور اون 8 تا عدد رو که به صورت شکل زیره درون یکی از گره های درخت قرار بدم و اعداد رو چطور شیفت بدم؟
http://www.aiai.ed.ac.uk/~gwickler/images/8-puzzle-states.png
اول خواستم از آرایه 3*3 استفاده کنم ولی مثل اینکه نمیشه آرایه رو در یک گره دخیره کرد
من آرایه ای رو که درون گره است مقدار دهی میکنم ولی وقتی میخوام چاپ کنم مقادیر ورودی و خروجی با هم همخوانی ندارن
برای ساخت در خت از کد زیر استفاده میکنم
[{CPP]struct tree
int puzzl [3][3]
struc tree * left,*right
}:[/CPP]
من puzzl رو با مفادیر 1 تا 9 مقدار دهی میکنم ولی وقتی چاپ میکنم اعداد بزرگ رو چاپ میکنه و گاهی هم اعداد بزرگ منفی

Afshin111
شنبه 17 دی 1390, 11:08 صبح
از اساتید محترم خواهش میکنم در صورت امکان راهنمایی بفرمایند

maktoom
شنبه 17 دی 1390, 23:38 عصر
سلام

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

Cancer
چهارشنبه 21 دی 1390, 17:10 عصر
سلام سلام سلام.
این معمای مورد علاقه منه.
با این یه استراکی که گذاشتی اینجا و اون مشکلی که گفتی رابطه ای بینشون پیدا نکردم.
اگه می تونی مقدار بیشتری از کد رو اینجا بذار، یا حداقل اون بخشی رو که مقدار دهی می کنی.
اگه کلش باشه که بهتره.
باید خط به خط خطایابی کنی و مطمئن بشی که تا کجا دقیقاً درسته.
چون وقتی که داخل استراکچر ها از اشاره گر (اشاره از نوع خودش) استفاده می کنه، یکم پیچیدگی داره.
----------
می تونی از آرایه ی یک بعدی هم استفاده کنی.
من با یک بعدی نوشتم. مشکلی ندارم باهاش.

تشکر.

tahere-20
پنج شنبه 22 دی 1390, 14:39 عصر
سلام سلام سلام.
این معمای مورد علاقه منه.
با این یه استراکی که گذاشتی اینجا و اون مشکلی که گفتی رابطه ای بینشون پیدا نکردم.
اگه می تونی مقدار بیشتری از کد رو اینجا بذار، یا حداقل اون بخشی رو که مقدار دهی می کنی.
اگه کلش باشه که بهتره.
باید خط به خط خطایابی کنی و مطمئن بشی که تا کجا دقیقاً درسته.
چون وقتی که داخل استراکچر ها از اشاره گر (اشاره از نوع خودش) استفاده می کنه، یکم پیچیدگی داره.
----------
می تونی از آرایه ی یک بعدی هم استفاده کنی.
من با یک بعدی نوشتم. مشکلی ندارم باهاش.

تشکر.
میشه اینجا بذارینش یا برام بفرستین به پروفایلم؟

Cancer
پنج شنبه 22 دی 1390, 16:21 عصر
میشه اینجا بذارینش یا برام بفرستین به پروفایلم؟

سلام
من اون موقع که نوشتم این روش *A رو کامل یاد نگرفته بودم و یه جورایی از اون تابع های هیوریستیک (از یکیش) ناقص استفاده کردم.
ولی بازم سرعتش خوبه.
هنوز حوصله نکردم بشینم کاملشو بنویسم.

یکی دیگه هم که قبل تر از اون نوشته بودم فقط می رفت تمامه حالات رو جستجو می کرد و به جواب هم می رسید.
------
یه سوال دقیقاً مشکلت فقط استفاده از اون *A است؟
با حل خود پازل مشکلی نداری؟
برنامت می تونه برای !9 حالت ورودی هم کار کنه؟