مدرس: ری صب مد ح م ی ع و ن ص م وس ه ش ی را گ ر ت و ن" پ م ی کا س د ن ه م ری کب وی د ج ش ی دا. ران ه ت دس ر ق ه ش ی واحد م لا س اد اه ا;ر گا ش ی ی دا م ل ع ات ن ه و ض ع. ن ی و ن ی ت ف ا ن ه ی، ر ع و ن ص م وس ه» ه ; گاهانا ا وهای ن جV ت س ج« : وم س ل ص ف1
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
مدر�س:محمد صبری
دانشجوی دکتری مهندسی کامپیوتر گرایش هوش مصنوعی عضو هیات علمی دانشگاه آزاد اسالمی واحد شهر قدس تهران
مساله تک حالته5شروع از حالت : مساله تک حالته•[راست، مکش]راه حل؟ •
13
مساله غیرقابل دریافتدریاف(ت: • قاب(ل غی(ر حاالت مس(اله از یکی از شروع
{2،1 ....،8}[راست، مکش، چپ و مکش]راه حل: •
14
مساله غیرقابل دریافت
15
16
مساله غیرقطعی{3،1شروع از یکی از حاالت }مساله غیر قطعی: •
با فرض اینکه مکش ممکن است باعث کثیفی نیز شود )قانون مرفی(
راه حل: ؟؟؟•
17
فهرست مطالب
مبتنی بر حل مساله عامل•انواع مساله•فرموله سازی مساله•انواع جستجوهای ناآگاهانه•
18
فهرست مطالب
مبتنی بر حل مساله عامل•انواع مساله•فرموله سازی مساله•انواع جستجوهای ناآگاهانه•
19
سازی مساله فرمولهشود. یک مساله با موارد زیر تعریف می•Aradمانند (: initial state )حالت شروع•
مجموعه زوج مرتب از حالت – عمل(: successor functionتابع جانشینی)•( مانند بخارست explicitصریح)(: goal testآزمون هدف )•
( مانند مات کردنimplicitضمنی) که همیشه صعودی است.)C)x, a, y(: path costهزینه مسیر)•ایی از اعمال از حالت شروع تا حالت هدف است. دنباله(: solutionراه حل)•( :راه حل با کمترین هزینه است.optimal solutionراه حل بهینه )•
20
مثال: دنیای جاروبرقی حالت مختلف8حاالت: •هریک از حاالتحالت شروع: •چپ، راست، مکش یا هیج کار{اعمال:}•{8 و 7حاالت }آزمون هدف: •تعداد اعمال انجام شده تا رسیدن به هدفهزینه مسیر: •
21
مثال: پازل اعدادهای مختلف جایگشتحاالت: •هریک از حاالتحالت شروع: •}چپ، راست، باال و پایین{اعمال: •حالت هدفآزمون هدف: •تعداد اعمال انجام شدههزینه مسیر: •
22
وزیر8مثال: 1فرموله سازی افزایشی )جایگشت های مختلف چینشحاالت: •صفحه خالیحالت شروع: •اضافه نمودن وزیر در جای مناسباعمال: • وزیر بر روی صفحه شطرنج8آزمون هدف: • - هزینه مسیر: •
23
وزیر8مثال: 1 روش دوم(( فرموله سازی افزایشی(های مختلف چینش جایگشتحاالت: •صفحه خالیحالت شروع: •اضافه نمودن هر وزیر در یک ستون اعمال: • وزیر بر روی صفحه شطرنج8آزمون هدف: • - هزینه مسیر: •
وزیر نخواهد داشت.100بهبود قابل توجه در مساله
24
وزیر8مثال: 2فرموله سازی کامل )های مختلف چینش جایگشتحاالت: • وزیر بر روی صفحه 8هر حالت شروع: •جابجا نمودن نمودن وزیرها در صفحهاعمال: •عدم تهدید وزیرهاآزمون هدف: • - هزینه مسیر: •
25
مثال: بازوی مکانیکی قطعه سازهای مختلف مفاصل جایگشتحاالت: •هر مقدار قرارگیری مفاصلحالت شروع: •جابجایی مفاصلاعمال: •ساخت کامل قطعهآزمون هدف: • زمان اجرا هزینه مسیر: •
26
فهرست مطالب
مبتنی بر حل مساله عامل•انواع مساله•فرموله سازی مساله•انواع جستجوهای ناآگاهانه•
27
فهرست مطالب
مبتنی بر حل مساله عامل•انواع مساله•فرموله سازی مساله•انواع جستجوهای ناآگاهانه•
28
های جستجوی پایه الگوریتمشود؟ راه حل مسایل قبلی چگونه پیدا می•جستجوی فضای حالت با تولید یک درخت•حالت شروعریشه = •تواب(ع جانشین(ی تولی(د می ه(ا و برگ گره• از طری(ق ه(ا
شوند.گردد. در حالت کلی جستجو منجر به تولید گراف می•
) حاالت یکسان از طریق چندین مسیر(
29
عامل مبتنی بر حل مسالهfunction SIMPLE-PROBLEM-SOLVING-AGENT(percept) return an action
static: seq , an action sequencestate, some description of the current world stategoal, a goalproblem, a problem formulation
state UPDATE-STATE(state, percept)if seq is empty thengoal FORMULATE-GOAL(state)problem FORMULATE-PROBLEM(state , goal)seq SEARCH(problem)action FIRST(seq)seq REST(seq)return action
30
عامل مبتنی بر حل مسالهfunction SIMPLE-PROBLEM-SOLVING-AGENT(percept) return an action
static: seq , an action sequencestate, some description of the current world stategoal, a goalproblem, a problem formulation
state UPDATE-STATE(state, percept)if seq is empty thengoal FORMULATE-GOAL(state)problem FORMULATE-PROBLEM(state , goal)seq SEARCH(problem)action FIRST(seq)seq REST(seq)return action
31
جستجوی درختی
function TREE-SEARCH(problem, strategy) return a solution or failureInitialize search tree to the initial state of the problemdo if no candidates for expansion then return failure else choose leaf node for expansion according to strategyif node contains goal state then return solutionelse expand the node and add resulting nodes to the search treeend do
32
مثال: رمانی
33
جستجوی درختی
function TREE-SEARCH(problem, strategy) return a solution or failureInitialize search tree to the initial state of the problemdo if no candidates for expansion then return failure else choose leaf node for expansion according to strategyif node contains goal state then return solutionelse expand the node and add resulting nodes to the search treeend do
34
جستجوی درختی
function TREE-SEARCH(problem, strategy) return a solution or failureInitialize search tree to the initial state of the problemdo
if no candidates for expansion then return failureelse choose leaf node for expansion according to strategyif node contains goal state then return solutionelse expand the node and add resulting nodes to the search tree
enddo
ترتیب بسط گره ها استراتژی نامیده می شود.
35
جستجوی درختی
function TREE-SEARCH(problem, strategy) return a solution or failureInitialize search tree to the initial state of the problemdo
if no candidates for expansion then return failureelse choose leaf node for expansion according to strategyif node contains goal state then return solutionelse expand the node and add resulting nodes to the search tree
enddo
36
عامل مبتنی بر حل مسالهfunction SIMPLE-PROBLEM-SOLVING-AGENT(percept) return an action
static: seq , an action sequencestate, some description of the current world stategoal, a goalproblem, a problem formulation
state UPDATE-STATE(state, percept)if seq is empty thengoal FORMULATE-GOAL(state)problem FORMULATE-PROBLEM(state , goal)seq SEARCH(problem)action FIRST( seq )seq REST(seq)return action
37
(2 )الگوریتم جستجوی درختیfunction TREE-SEARCH(problem, fringe) return a solution or failure
fringe INSERT(MAKE-NODE(INITIAL-STATE[problem]), fringe)loop do
if EMPTY?(fringe) then return failurenode REMOVE-FIRST(fringe)if GOAL-TEST[node] then
return SOLUTION(node)else
fringe INSERT-ALL(EXPAND(node, problem), fringe)
استراتژی در کدام تابع پیاده سازی شده است؟ Insert_All د( Expandج( Goal Test ب( Remove-Firstالف(
38
جستجوی درختی
function TREE-SEARCH(problem, strategy) return a solution or failureInitialize search tree to the initial state of the problemdo
if no candidates for expansion then return failureelse choose leaf node for expansion according to strategyif node contains goal state then return solutionelse expand the node and add resulting nodes to the search tree
enddo
39
یادآوری( عامل و محیطباشد. ها می بنابراین هر محیط دارای مجموعه ای از حالت•باشد. ها می محیط در هر لحظه در یکی از این حالت•شود. عمل عامل در محیط باعث تغییر حالت محیط می•حالت فعلی: •Suckعمل: •حالت بعدی : •
40
فضای حالت( در حقیقت بیانگرstateهر حالت )•
یک حالت فیزیکی است.
( نی(ز در حقیق(ت ی(ک س(اختمان داده متناظ(ر ب(ا درخ(ت است. nodeه(ر گره)• هر گره دارای فرزند، پدر ، عمق و سایر مفاهیم درختان است.
های تولی(د شده ام(ا بسط داده نشده ( شام(ل گرهFRINGEه(ا ) آرای(ه برگ•در درخت است. )گره های سفید(
41
الگوریتم جستجوی درختیfunction EXPAND(node,problem) return a set of nodes
successors the empty setfor each <action, result> in SUCCESSOR-FN[problem](STATE[node]) do
s a new NODESTATE[s] resultPARENT-NODE[s] nodeACTION[s] actionPATH-COST[s] PATH-COST[node] + STEP-COST(node, action,s)DEPTH[s] DEPTH[node]+1add s to successors
return successors
42
های جستجو استراتژیکند(. ها را مشخص می ترتیب( بسط گره استراتژی •شود. گیری می الگوریتم جستجو )استراتژی( با چهار معیار اندازهکارایی •
آی(ا الگوریت(م همیش(ه راه ح(ل را در ص(ورت وجود آ(ن پید(ا میکام(ل بودن: 1(
کند؟آیا الگوریتم همیشه راه حل با کمترین هزینه را در صورت وجود بهینه بودن: 2(
آن پیدا می کند؟شود؟( در حین جستجو تولید/ بسط داده می تعد(اد گره چهپیچیدگی زمانی: 3(شود؟( تعداد گره در حین جستجو در حافظه ذخیره می چهپیچیدگی حافظه: 4(
( جستجوی سطحی1بسط باالترین سطح از درخت•FIFOاز طریق یک صف (fringe )پیاده سازی•
47
( جستجوی سطحی1بسط باالترین سطح از درخت•FIFOپیاده سازی از طریق یک صف •
48
( جستجوی سطحی1بسط باالترین سطح از درخت•FIFOپیاده سازی از طریق یک صف •
49
( جستجوی سطحی1بسط باالترین سطح از درخت•FIFOپیاده سازی از طریق یک صف •
50
( جستجوی سطحی1بسط باالترین سطح از درخت•FIFOپیاده سازی از طریق یک صف •
51
(BF Searchارزیابی جستجوی سطحی )کامل بودن؟ • به شرطی که:بلی•
( جواب بهینه در عمقd.قابل دسترس باشد )( فاکتور انشعابb.محدود باشد )
52
(BF Searchارزیابی جستجوی سطحی )بهینه بودن؟ • به شرطی که:بلی•
.مسیرها فاقد هزینه باشند
53
(BF Searchارزیابی جستجوی سطحی )پیچیدگی زمانی؟• فرزند است.bگره ریشه حداکثر دارای • فرزند است، بنابراین در سطح اول گره وجود دارد.bهر فرزند نیز حداکثر دارای • باش(د، در بدتری(ن حال(ت جواب بای(د در س(مت راست dب(ا فرض اینک(ه( جواب در عم(ق •
ترین گره باشد..تعداد نودهای( تولید شده از رابطه زیر محاسبه می شود
پیچدگی حافظه؟•.هم مرتبه پیچیدگی زمانی است
)()(... 113210 ddd bObbbbbbb
2b
)( 11 dd bObb
54
( جستجوی سطری1انشعاب • فاکتور ب(ا مس(اله ی(ک در عمق 2مثال( و
، جس(تجوی س(طحی دقیقاً چه تعداد گره 4جواب بهین(ه شود؟ تولید می
شود؟؟؟ چه تعداد گره بسط داده می•
61)22(22222 1443210
55
آزمایش( مفروض است.b=10یک مساله با فاکتور انشعاب )•های متفاوت جستجو ای(ن مس(اله ب(ا جس(تجوی س(طحی در عم(ق•
شده است.میزان حافظه و زمان جستجو ثبت شده است.•
56
آزمایشدرس های آموخته شده:
مشکل حافظه به مراتب مشکل بزرگتری از زمان اجرا است.1()2( نمای(ی پیچیدگ(ی ب(ا نمون(همس(ایل کوچ(ک حت(ی جستجوهای های توس(ط )
باشند. ناآگاهانه قابل حل نمی
57
( جستجو با هزینه غیر یکنواخت2در حقیق(ت مدل توس(عه داده شده جس(تجوی سطحی •
است.گره با کمترین هزینه بسط داده شود.•ی(ک ص(ف مرت(ب بر اس(اس هزینه fringeپیاده س(ازی: •
مسیربا • آنگاه باشن(د برابر باه(م مس(یرها هزین(ه BFاگ(ر
یکسان است.
58
( جستجو با هزینه یکنواخت2کامل بودن؟ •
به شرطی که: بلی.جواب در عمق قابل دسترس باشد.هزینه ها مقدار مثبت داشته باشند بهینه بودن؟•
به شرطی که:بلی .کامل باشد
59
( جستجو با هزینه یکنواخت2پیچیدگی زمانی؟•
فرض شودC.هزینه مسیر بهینه است * فرض شود هزینه هر عمل حداقل.است پیچیدگی زمانی است.در بدترین حالت پیچیدگی حافظه؟•
.برابر با پیچیدگی زمانی است
O(bC*/ )
60
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
61
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
62
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
63
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
64
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
65
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
66
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
67
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
68
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
69
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
70
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
71
( جستجوی عمقی3شود. ترین گره بسط داده می عمیق•)پشته( LIFOاز طریق یک صف fringeپیاده سازی: •
72
( جستجوی عمقی3کامل بودن؟ خیر•
وجود تکرار حلقه و باش(د محدود حال(ت فضای اینک(ه مگ(ر نداشته باشد.
بهینه بودن؟ خیر•.چون کامل نیست
73
( جستجوی عمقی3پیچیدگی زمانی؟ •
اگرm خیلی بزرگتر از d .باشد به مراتب بدتر است در بسیاری از مسایل سریعتر از جستجویBF.است پیچیدگی حافظه؟ •
شود. در زمان عقبگرد حافظه آزاد می
)( mbO
)1( bmO
74
( جستجوی عمقی محدود4( است.Lعمق محدود ) با DFدر حقیقت •باشد. تعیین در همه مسایل امکان پذیر نمی• آنگاه غیر کامل است.L<dاگر • آنگاه کامل اما غیر بهینه است.L>dاگر • آنگاه کامل و بهینه است.L=dاگر •
75
( جستجوی عمقی محدود4پیچیدگی زمانی؟ •
پیچیدگی حافظه؟ •
O(bl )
)(blO
76
( جستجوی عمقی محدود4function DEPTH-LIMITED-SEARCH(problem,limit) return a solution or failure/cutoff
function RECURSIVE-DLS(node, problem, limit) return a solution or failure/cutoffcutoff_occurred? falseif GOAL-TEST[problem](STATE[node]) then return SOLUTION(node)else if DEPTH[node] == limit then return cutoffelse for each successor in EXPAND(node, problem) do
result RECURSIVE-DLS(successor, problem, limit)if result == cutoff then cutoff_occurred? trueelse if result failure then return result
if cutoff_occurred? then return cutoff else return failure
77
( جستجوی عمقی تکراری5Lیک استراتژی برای یافتن بهترین مقدار •DFو BFروشی برای ترکیب مزایای جستجوی •
function ITERATIVE_DEEPENING_SEARCH(problem) return a solution or failureinputs: problemfor depth 0 to ∞ do
result DEPTH-LIMITED_SEARCH(problem, depth)if result cuttoff then return result
78
( جستجوی عمقی تکراری5 Limit=0
79
( جستجوی عمقی تکراری5 Limit=1
80
( جستجوی عمقی تکراری5 Limit=2
81
( جستجوی عمقی تکراری5 Limit=3
82
( جستجوی عمقی تکراری5کامل بودن؟ بلی•
که حلقه تکرار وجود نداشته باشد.به شرطی
بهینه بودن؟ بلی•اگر هزینه مسیرها باهم برابر باشد.•
83
( جستجوی عمقی تکراری5پیچیدگی زمانی؟•
level d: once level d-1: 2 level d-2: 3 … level 2: d-1 level 1: d Level 0: 1
پیچیدگی حافظه؟
O(bd )
dbbdbdIDSN )1(...)1()()( 2
)(...)( 12 bbbbbBFSN dd
O(bd)
84
( جستجوی عمقی تکراری5مثال: تعداد گره های تولی(د شده ب(ا جس(تجوی س(طری و عمقی •
انشعاب فاکتور ب(ا ی(ک مس(اله فرض(ی در و عمق 10تکراری را بدست آورید.5جواب بهینه