داوشگاٌ صىعتي شزيف داوشکدٌ مُىدسي کامپيًتز ًَش مصىًعي تمزيه عملي شمارٌ 1 تًضيحات: 1 ایي توزیي در هدوَع دارای ً 50وزُ ً 00 +وزُ اضافی است. هَػذ تحَیل توزیي تا ساػت 42رٍس 01اسفٌذ است. خَاب توزیي ػولی را تِ آدرس [email protected]تا ػٌَاى HW1-StudentIDارسال ًوایيذ. تِ اسای ّز رٍس تاخيز ً %00وزُ کسز خَاّذ ضذ. تِ توزیيّای کپی ًوزُ صفز تؼلق خَاّذ گزفت. معزفي مسالٍ یک صفحِ سلَل تٌذی ضذُ 40*40دارینّ .ذف پيذا کزدى هسيزی اس گزُ آغاسیي تِ گزُ ّذف تا تيصتزیي اهتياس (کنتزیي خزیوِ) است .در ایني صفحِ چٌذ ًَع سلَل دارین ،کِ ٍارد ضذى تِ ّز کذام ً ،ياسهٌذ هتحول ضذى خزیوِ خاصی است .اًنَاع سنلَل ٍ خزیونِ هتٌنادز ،در خنذٍل سینز خالصِ ضذُاًذ. تًجٍ :در تخص 4فزض کٌيذ کِ ًَع سلَل ٍ FOODخَد ًذارد .حالتی کِ FOODهَخَد استً ،ياسهٌذ تغييزاتنی اسنت کنِ در تخنص 3تنِ آى خَاّين پزداخت. 1 روگ سلًل جزيمٍ يارد شدن وًع سلًل سفيد 1 NORMAL آبي -400 FOOD خاکستزی ريشه 5 TOUGH خاکستزی 10 VERY_TOUGH BLOCK سياٌ سبش 0 حالت آغاسیي قزمش 0 حالت ًْایی جديل :1جزيمٍ يريد بٍ َز سلًل 1.1 ومًوٍ يريدی فایلّای ٍرٍدی maze.grd ٍ hills.grdتِ ػٌَاى دٍ حالت تزای آسهَى در اختيار ضوا قزار دادُ ضذُ است .ضوا تا اخزای GUI.javaهیتَاًيذ ایي فایل ّا را تخَاًيذ .تَخِ کٌيذ کِ در تيي هتذّا فقط رٍش خستدَی * Aدرختی پيادُساسی ضذُ است .ایي رٍش تِ دليل ایٌکِ گزُّای تکزاری را چک ًویکٌذ ،فقط تزای حاالت سادُ قاتل استفادُ است. شکل :1فايل يريدی hills 2 شکل :2يکي اس مسيزَای بُيىٍ بزای يريدی hills شکل :3فايل يريدی maze شکل :4يکي اس مسيزَای بُيىٍ بزای يريدی maze 3 2 يافته مسيز بُيىٍ بدين جزيمٍ مىفي در ایي تخص حالتی را در ًظز هیگيزین کِ سلَلّای ًَع ٍ FOODخَد ًذارد .در ایي تخص در ًْایت ضوا تایذ افشٍى تز هَارد خَاستِضذُ ،خذٍل سیز را ًيش رٍی دٍ ٍرٍدی hills ٍ mazeگشارش کٌيذ. تؼذاد گزُّای تسط دادُضذُ ػٌَاى رٍش ّشیٌِ هسيز یافت ضذُ طَل هسيز (تؼذاد سلَل طی ضذُ) تؼذاد هقایسِّا در MyVisitedManager خستدَی اٍل سطح گزافی خستدَی ّشیٌِ یکٌَاخت گزافی خستدَی آ-ستارُ گزافی 1.2 تًصيف فضای مسالٍ جستجً پيادُساسی فضای حالت در کالسّای MapProblem ٍ MapStateاًدام ضذُ است .در حالت تذٍى غذا هکاى ػاهل ،تَصيف کويٌِی حالت است. تاتغ )( getIDاس کالس MapStateػذد هدشایی تِ اسای ّز حالت تزهیگزداًذ ،کِ فقط تِ هختصات ػاهل ٍاتستِ است. 2.2 طزاحي َيًريستيک تزای پيادُساسی ّيَریستيک هَرد ًظز خَد هتذ getHeuristicStimateاس کنالس MapStateرا تغيينز دّينذ (ً 00ونزُ)ّ .يَریسنتيک فاصنلِ هٌْتي تِ ػٌَاى ّيَریستيک پيصفزض پيادُساسی ضذُ استّ .يَریستيک ضوا تایذ ساسگار تاضذ ٍ هؼيار تْثَد تؼذاد گزُّنای تسنط دادُضنذُ تنا رسيذى تِ خَاب در رٍشّای * Aدرختی ٍ گزافی است .تِ ّيَریستيکّای کاهالً تذیْی ًوزُ 0تؼلق خَاّذ گزفت. 3.2 پيادٌساسی ريشَای جستجً اضيای کالس Nodeگزُ ّای خستدَ را تَصيف هیکٌٌذ .هتذ Searchدر کالس TreeSearchیک هسالِ ٍ یک استزاتژی صف خستدَ را دریافت هیکٌذ ٍ در صَرتی کِ خَاب را پيذا کٌذ ،گزُ ( )Nodeخَاب را (تَخِ کٌيذ کِ ّز گزُ خستدَ ّواى طَر کِ در کتاب راسل ّن هیتيٌيذ ضناهل پيًَذی تِ پذر خَد است ،تٌاتزایي تا داضتي ًْ Nodeایی کل هسيز خ َاب تا یک پيوایص در طَل پيًَنذّا قاتنل تاسیناتی اسنت) ،تزهنیگزداًنذ .در صَرتی کِ صف خستدَ خالی ضَد ،هتذ تایذ یک خطا ()" )throw new Exception("failure......را تزگزداًذ .تزای ارسیاتی رٍشّا تؼذاد گزُّای تسط دادُضذُ ًيش هحاسثِ هیضَد .تَخِ کٌيذ کِ ایي هتذ تِ صَرت ػوَهی ًَضتِ هیضَد ٍ اصالً تِ هسالِ خاظ ٍاتستِ ًيست. ضوا تایذ هتذّای Searchاس کالس UCS_Search ٍ GraphSearchرا تکويل کٌيذ .تَخِ کٌيذ کِ ًياس است تؼذاد گزُّای تسنط دادُضنذُ ،در ّز رٍش هحاسثِ ضَد .اس GraphSearchپيادُساسی ضذُ در ًْایت تزای اخزای رٍشّای خستدَ * Aگزافی ٍ BFSگزافی استفادُ خَاّذ ضذ. تَضيحات ًام هتذ کالس پيادُساسی ضذُ public static Node Search(Problem )p,BaseQueue queue Tree_Search ً 00وزُ public static Node Search(Problem )p,BaseQueue queue UCS_Search ً 00وزُ public static Node Search(Problem )p,BaseQueue queue,VisitedManager visited GraphSearch 4 4.2 استزاتژی صف گزٌَای حاشيٍای ّز کذام اس رٍشّای خستدَ هی تَاًٌذ تا تَخِ تِ استزاتژی خنَد در اًتخناب ٍ حنذف اس صنف حاضنيِای خسنتدَ ،هنذل ضنًَذ .کنالس اًتشاػنی BaseQueueایي هفَْم را ًطاى هیدّذ .ضوا در ایي قسوت تایذ هتذّای سیز را تِ گًَِای تغييز دّيذ کِ سنزػت خسنتدَی * Aدرختنی تْثنَد یاتذ. تَضيحات هتذّا ًام کالس صف اٍلَیت تز حسة هقذار ّيَریستيک (ً 00وزُ اضافی) )public void add(Node o AStarQueue extends BaseQueue )(public Node remove تزای پيادُساسی صف * ،Aیک راُ سادُ ایني اسنت کنِ اس رٍش ینافتي کويٌنِ در هتنذ removeاسنتفادُ کٌنين ) .O(size of queueایني رٍش پيادُساسی ضذُ است .ضوا تایذ سؼی کٌيذ کِ تا استفادُ اس ساختار دادُّای تْتزی ّن چَى ( Heapتِ صَرت پيًَذی ًِ آرایِای) تنزای ًهْنذاری گزُّا ،هدوَع هزتثِ سهاًی درج ٍ حذف را تْثَد دّيذ .فزض کٌيذ کِ ساختار آرایِای تِ خاطز پَیا تَدى طَل صف قاتلقثَل ًيست .در هَرد رٍش اًتخاتی ٍ هزتثِ سهاًی درج ٍ حذف در گشارش خَد تٌَیسيذ .ضوا تا پيادُساسی ساختواى دادُ هٌاسنة قنادر خَاّينذ تنَد سنزػت * Aدرختنی را قاتلقثَل کٌيذ. 5.2 مديزيت صف گزٌَای ديدٌشدٌ در جستجًی گزافي الهَریتنّای GraphSearchفقط گزُّایی را کِ قثالً تسط دادُ ًطذُاًذ تزای تسط اًتخاب هیکٌٌذ .تِ ایي هٌظَر ًياس تِ ًهْذاری گزُّنای تسنط دادُضذُ در یک ساختواى دادُ است .ایي ساختواى دادُ تْتز است تِ گًَِای تاضذ کِ تزرسی دیذُ ضذى یک گزُ تِ سنزػت اًدنام ضنَد .تنِ ایني هٌظَر تایذ تَاتغ سیز را در کالس MyVisitedManagerپيادُساسی کٌيذ. تَضيحات هتذّا ًام کالس ً 00وزُ )public void insert(State st MyVisitedManager extends VisitedManager )public boolean isInVisited(State st تَخِ کٌيذ کِ ها هیداًين حالتّایی کِ تِ کالس ٍ MyVisitedManagerارد هیضًَذ ،تاتغ )( getIDاس راتط Stateرا پيادُساسی کزدُاًذ .هقنذار هدشایی کِ ایي هتذ تزای ّز حالت تزهیگزداًذ ،هؼياری تزای پيادُساسی تَاتغ درج ٍ خستدَی حاالت در ساختواى دادُ است .هیتَاى تزای هثنال اس یک درخت خستدَی دٍدٍیی تزای درج ٍ خستدَی گزُّا در سهاى هٌاسة استفادُ کزد (ًياس ًيست تِ تاالً تَدى درخت خستدَ تيص اس حنذ تَخِ ضَد ٍ ضثِ تصادفی تَدى گزُّا در آى کفایت هیکٌذ) .تا تَخِ تِ ایي تَضيحات ضوا تایذ تَاتغ خذٍل تاال را تِ گًَِای پيادُساسی کٌينذ کنِ در سهاى کوتز اس حالت خطی تتَاًذ گزُ را خستدَ ٍ درج کٌذ .ضوا تایذ ًحَُ کذگذاری (ًسثت دادى یک ػنذد تنِ حالنت در تناتغ ٍ )getIDاینذُ پيطٌْادی خَد در هَرد ساختواى دادُ را در گشارش ضزح دّيذ (تِ صَرت پيصفزض ساختواى دادُ درخت خستدَی دٍدٍیی هَرد قثَل است). 3 صفحٍ شامل غذا در ایي قسوت ضوا تایذ در تخص ّای هَرد ًياس تغييزاتی اػوال ًوایيذ ،کِ رٍش خستدَی گزافی * Aتتَاًذ خَاب تْيٌِ صفحِ ضاهل غنذا را پينذا کٌذ (ً 00وزُ) .تَخِ کٌيذ کِ ّز غذا یک تار قاتل استفادُ است .ضوا تایذ تزای ایي حالت ّيَریستيک هدشایی تؼزیف کٌيذ ( .)00تِ ّيَریسنتيک تذیْی ًوزُ 0تؼلق خَاّذ گزفت. 5 راٌّوایی :0ػثَر هدذد اس یک گزُ ،در صَرتی هداس است ،کِ یک تغييز در تؼذاد غذاّای هصزفی صفحِ ایداد ضذُ تاضذ. راٌّوایی : 4ضوا تا تَخِ تِ رٍش هَرد ًظز ،هوکي است ًياس تِ تغييزات در تَصيف کويٌنِ حالنت ،تناتغ آسهنَى ّنذف اس کنالس ٍ تناتغ تخونيي ّيَریستيک داضتِ تاضيذ .در گشارش خَد تِ طَر خالصِ در هَرد رٍش هَرد ًظز ٍ تغييزات هَرد ًياس در فزهَلِ تٌذی هسالِ تَضيح دّينذً .تنایح خَد را رٍی فایلّای ٍرٍدی mazeFood ٍ hillsFoodگشارش کٌيذ .تِ دليل اهکاى گذر تکزاری اس یک سلَل هسنيزّای تْيٌنِ پينذا ضنذُ را تنِ صَرت تَالی هختصات سلَلّا در فایلّایی تا ًام hillsFood.txt ٍ mazeFood.txtتحَیل دّيذ. فایل ٍرٍدی تؼذاد گزُّای تسط دادُضذُ ّشیٌِ هسيز تْيٌِ hillsFood mazeFood شکل :5فايل يريدیhillsFood.grd 6 طَل هسيز (تؼذاد سلَل) شکل :6جًاب غيزقابل قبًل بزای :hillsFoodيک مسيز ويمٍبُيىٍ بزای مسالٍ hillsFoodبدين تغييز فزمًالسيًن مسالٍ کٍ با جستجًی آ- ستارٌ گزافي پيدا شدٌ است. شکل :7فايل يريدی mazeFood 7
© Copyright 2025 Paperzz