هوش مصنوعی - فصل سوم

Preview:

Citation preview

1

مدر�س:محمد صبری

دانشجوی دکتری مهندسی کامپیوتر گرایش هوش مصنوعی عضو هیات علمی دانشگاه آزاد اسالمی واحد شهر قدس تهران

هوش مصنوعی، رهیافتی نوینفصل سوم: »جستجوهای ناآگاهانه«

2

فهرست مطالب

مبتنی بر حل مساله عامل•انواع مساله•فرموله سازی مساله•انواع جستجوهای ناآگاهانه•

3

فهرست مطالب

مبتنی بر حل مساله عامل•انواع مساله•فرموله سازی مساله•انواع جستجوهای ناآگاهانه•

4

عامل مبتنی بر حل مسالهچهار مرحله کلی برای حل یک مساله عبارتند از:•

) فرمول(ه1. هدف هدف (: goal formulationس(ازی حاالت از کدامیک است؟

اعمالی (: problem formulationس(ازی مس(اله) فرمول(ه2. و حاالت چ(ه برای رسیدن به هدف مورد نیاز است؟

ایی از اعمال از حال(ت شروع تا هدف (راه حل( دنبال(ه(: searchجستجو )3.شود. تعیین می

دهد. حل، اعمال مورد نظر را انجام می : با دریافت راه(executeاجرا )4.

5

مثال: رمانی

6

مثال: رمانی( :شهر حالت شروع )در مسافرت کشور رمانیArad

:بلیط برگشت( شهر فرموله سازی هدف(Bucharest

:فرموله سازی مسالهحاالت: شهرهای مختلفاعمال: حرکت بین شهرهاجستجو :Arad, Sibiu, Fagaras, Bucharest

7

عامل مبتنی بر حل مساله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

8

چند سوالشود؟ جستجو چندبار انجام می1(ی(ا بخش(ی قابل مشاهده 2( قاب(ل مشاهده محی(ط کامالً

است؟محیط قطعی یا غیر قطعی است؟3(محیط گسسته یا پیوسته است؟4(محیط اپیزودیک یا ترتیبی است؟ 5(

9

فهرست مطالب

مبتنی بر حل مساله عامل•انواع مساله•فرموله سازی مساله•انواع جستجوهای ناآگاهانه•

10

فهرست مطالب

مبتنی بر حل مساله عامل•انواع مساله•فرموله سازی مساله•انواع جستجوهای ناآگاهانه•

11

انواع مسالهقاب(ل مشاهده: • و کامالً )قطع(ی حالته ت(ک Singleمس(ایل

State)قاب(ل مشاهده: • بخش(ی و دریافت قطع(ی قاب(ل غی(ر مس(ایل

(Sensorless/Conformant)مشاهده: • قاب(ل بخش(ی و قطع(ی احتمالی غی(ر مس(ایل

(Contingency)ناشناخت(ه: • حال(ت برخط فضای ی((ا اکتشاف((ی مس((ایل

(Exploration/Online)

12

مساله تک حالته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(

43

های جستجو استراتژیپیچیدگ(ی زمان(ی و حافظه معموالً ب(ا س(ه پارامت(ر تعریف •

شود: می•(b :)حداکثر فاکتور انشعاب•(d :)عمق جواب بهینه•(m :))حداکثر عمق فضای حالت )معموالً بینهایت است

44

جستجوهای ناآگاهانهجس(تجوی ناآگاهان(ه فق(ط از اطالعات موجود در ص(ورت مساله •

نماید )جستجوهای کورکورانه(. استفاده می

حاالت • از را هدف غیر حاالت بتوان(د جس(تجو اس(تراتژی اگ(ر شود می نامیده آگاهان(ه جس(تجو آنگاه ده(د، تشخی(ص هدف

)فصل چهارم(.

45

انواع جستجوهای ناآگاهانه(Breadth-first searchجستجوی سطحی )1.(Uniform-cost searchجستجوی هزینه یکنواخت )2.(Depth-first searchجستجوی عمقی )3.(Depth-limited searchجستجوی عمقی محدود )4.(Iterative deepening searchجستجوی عمقی تکرارشونده )5.(Bidirectional searchجستجوی دوطرفه )6.

46

( جستجوی سطحی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

return RECURSIVE-DLS(MAKE-NODE(INITIAL-STATE[problem]),problem,limit)

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جواب بهینه

تعداد گره های بسط داده شده؟؟؟•

111110099999010000010000100010010)(12345010000020000300040050)(

BFSNIDSN

85

( جستجوی دوطرفه6دو جستجوی همزمان از شروع و هدف•

bd / 2 bd / 2 bd

86

( جستجوی دوطرفه6کامل بودن؟ بلی•.به شرطی که از جستجوی سطری استفاده شود

بهینه بودن؟ بلی•.به شرطی که از جستجوی سطری استفاده شود

87

بندی جستجوهای ناآگاهانه جمعCriterion Breadth-

FirstUniform-

costDepth-First Depth-

limitedIterative

deepeningBidirectional

search

Complete? YES* YES* NO YES, if l d

YES YES*

Time bd+1 bC*/e bm bl bd bd/2

Space bd+1 bC*/e bm bl bd bd/2

Optimal? YES* YES* NO NO YES YES