ﺚﺤﺒﻟا تﻼﻀﻌﻣ ’’ءﺎﻴﻤﻌﻟا’’ ﺚﺤﺒﻟا...
TRANSCRIPT
معضالت البحث ’’ العمياء’’خوارزميات البحث
ســـكاف أحمد . د
2007-2008
إجابات عن أسئلة سابقة
صياغة المعضلة
states spaceفضاء الحاالت
initial stateالبدئية الحالة
successor’’الالحق’’تابع function
goal test الحلإختبار
pathالتكلفة cost
وصف
(3,3,1)
o_m,o_c,t_m,t_c,o_m_o_c:اإلجراء
(0,0,0)إما : المطلوب ماهو
number: آم السعر of crossings
+
(X,Y,Z): الحالة
527
صياغة المعضلة
states spaceفضاء الحاالت
initial stateالبدئية الحالة
successor’’الالحق’’تابع function
goal test الحلإختبار
pathالتكلفة cost
وصف
(L,C,H,B)
n, L, C, H:اإلجراء
(0,0,0,0): المطلوب ماهو
number: آم السعر of crossings
+
(X,Y,Z,E): الحالة و الملفوفC والخروف Lالفالح و الذئب : مسالة
واآلي لحوم Mالمبشرين : مسالة
o:onet:two
n; nothing
Hة
Cالبشر
[L,C,H,B]
n
[L,C,H,0] [L,0,H,0]
L
[0,C,H,0]
C
[L,C,0,0]
H
[L,C,H,B]
n
[L,C,H,B][L,0,H,B]
n L
n L H
[L,0,H,0] [0,0,H,0] [L,0,0,0]n
L
[L,0,H,B]nL H
[L,0,0,0] [L,C,0,B] [0,C,0,0] [0,C,0,B] [0,0,0,0]
[L,C,0,B] [0,0,0,0]
[3,3,1]O-m
[3,2,0]
O-ct-m
[3,1,0]
t-Co-m-o-c
[2,2,0]
فضاء حاالت المعضلة • معايير تقييم طرائق البحث • طرائق البحث العمياء •
البحث بالعرض • البحث بالسعر الموحد • البحث بالعمق • البحث بالعمق المنتهي • البحث بالتعمق التكراري • البحث باالتجاهين •
مقارنة طرائق البحث العمياء •
•Breadth-first search •Uniform-cost search •Depth-first search •Depth-limited search •Iterative deepening search•Bidirectional search
المفردات
معضلة البحث
تمثيل المعضلة بشجرة معضلة ما
:معايير تقييم طرائق البحث ) إذا آان يوجد حل (هل طريقة البحث المتبعة تضمن الوصول إلى حل : التمامية •)إذا آان يوجد اآثر من حل (هل طريقة البحث المتبعة تؤدي للوصول ألحسن حل : المثالية •آم عقدة يتوجب سبرها للوصول للحل : التعقيد الزمني • عدد العقد اإلجمالي التي يجب تذآرها للوصول للحل ماهو : التعقيد المكاني •
: بـ التعقيد الزماني و المكاني يتعلق • b = للعقد التالية لعقدة ما األعظمي العدد اإلجمالي = معامل التفرع لشجرة البحث • d = عمق ما في شجرة البحث حيث يوجد أحسن حل• m = لفضاء البحث في شجرة البحث األعظمي العمق
1. Completeness: does it always find a solution if one exists?2. Optimality: does it always find a least- cost solution?3. Time complexity: number of nodes generated4. Space complexity: maximum number of nodes in memory
Time and space complexity are measured in terms of b: maximum branching factor of the search treed: depth of the least-cost solutionm : maximum depth of the state space
معايير تقييم طرائق البحث
الخوارزمية العامة للبحث
ما يسمى –مستكشفة استكشاف فضاء حالة المعضلة وذلك بإيجاد الحاالت التالية للحاالت ال : الفكرة األساسية هي .الحاالت’’ توسيع’’
Function Tree_search(problem) return Solution or failureL_nodes = Make_Node(initial_state[problem])Loop do If L_nodes=empty then return failurenode=Remove_Front(L_node)If state[node]=solution then return solution[node]L_nodes=insert_all(Expand(node,operator[problem]),L_nodes)
L_nodes
12
شجرة بحث-1
بحثغراف -2
Function graph_search(problem) return Solution or failureClosed_node=emptyL_nodes = Make_Node(initial_state[problem])Loop do If L_nodes=empty then return failurenode=Remove_Front(L_nodes)If state[node]=solution then return solution[node]If state[node] Closed_Node thenClosed_Node=Closed_Node+state[node]L_nodes=insert_all(Expand(node,operator[problem]),L_nodes)
∉
البدئية الحالة : مثال
A إستكشافبعد
S إستكشافبعد
:إن عملية البحث ترتكز على العناصر التالية شجرة البحث • البحث عن عقدة • التوسع من أجل عقدة ما •
تحديد العقدة التالية الواجب استكشافها في آل مرحلة من عملية البحث : إستراتيجية البحث
العقدةو الحالة الحالة هى تمثيل لكينونة فيزيائية
: التالية ) الوسطاء (ممثلة بشجرة البحث، العقدة تملك الحقول ) معطيات (العقدة هى عنصر من هيكلية معلوماتية )هؤالء الوسطاء غير موجودين من أجل حالة (، عمق، آلفة طريق ) الحق(، ولد )سابق( حالة، أب •
children
المفهوم االساسي للبحث
node(state,action,cost).
node(state,parent,child,depth,price).
)الحق(العملية cost
مثال node([8,2,0,3,4,7,5,1,6],start,0)
node([8,0,2,3,4,7,5,1,6],L,1)
node([8,4,2,3,0,7,5,1,6],D,2)
: صف االنتظار :’’ صف االنتظار ’’تسمى إلدارة عقد شجرة البحث نعتمد بصورة رئيسية على هيكلية معطيات خاصة
. يضم عقد شجرة البحث •:صف االنتظار بالشكل التالي ) implementation( يبرمج •
يضيف عقدة إلى صف االنتظار INSERT(Noed, L_nodes) تابع •يستخرج العقدة التي تحتل المكان األول في Remove_front(L_nodes) تابع •
صف االنتظار تنظيم ترتيب العقد في صف االنتظار يحدد إستراتيجية البحث •
ع في العقد تتمايز طرائق البحث عن بعضها البعض بالترتيب الذي بموجبه يتم التوس
مبدأ البحث عن حل : البحث في فضاء الحاالت تمثيل المعضلة بشكل ترميزي •)تحديد فضاء الحاالت (المرمزة إيجاد العالقة بين مختلف الحاالت • البحث عن الحل في هذا الفضاء •
I1 I2
R1
R2
12
3 4
5 6 7
تمثيل الحالة وماذا نضع في الحالة؟ هوالسؤال الرئيس :اوال الجواب على هذا السؤال يتعلق بالمعضلة المراد حلها ،
بشكل عام تعريف الحالة يجب ان يعكس الفرق بين وضعيين مختلفين )إدخال آل المواصفات المميزة للمعضلة ( للمعضلة
) نقطة االنطالق، الموقع الراهن، الجسور المستخدمة (حالة state_1(R1,I1,{2})
state_2(R1,I2,{2,1})
مثال: المعضلة أهمية صياغة
:بين الحاالت ) الالحق (السؤال الرئيس الثاني هو تحديد العالقة : ثانيا بتحديد آل الحاالت التي تتبع حالة ما : عالقة توسعية
state_1(R1,I1,{2}) state_2(R1,I2,{2,1})مواصفات ما لتحديد الالحق لحالة ما : عالقة تعريفية
(X,Y2,Z2) succeeds (X,Y1,Z1)باإلجابة عن السؤال الثاني نكون قد حددنا فضاء الحاالت
({},X,X)هنا إذا انطلقنا من (ة الهدف البحث في فضاء الحاالت سيستكشف آل الفضاء بحثا عن حالة توافق الحال )(X,X,{1,2,3,4,5,6,7})فالحل يكون
مثال تعليمي
4L 3Lنريد الحصول ، ليتر 4 أو 3 يمكن ان يحويا آمية فارغين وعائيين : وصف المعضلة
سكب وعاء ، ملئ وعاء ، إفراغ وعاء : بـ فقط من أجل ذلك يمكن ان اقوم ليتران على .في االخر
:صياغة المعضلة
؟ آيف أمثل الحالة
صياغة المعضلة
states spaceفضاء الحاالت
initial stateالبدئية الحالة
successor’’الالحق’’تابع function
goal test الحلإختبار
pathالتكلفة cost
وصف
(0,0)
empty, fill, pour:اإلجراء
(0,2)أو (2,0)إما : المطلوب ماهو
لكل إجراء 1: آم السعر
+
(X,Y)
(0,0)
(4,0)
(4,3)
(1,3)
(0,3)
Fill Grand/Small FG FSPour PEmply Grand/small EG, ESEmpty and fill E-F or F-E
F-EG
F-ES
F-ES
P
(3,0)
FG
EG
(1,0)
EG
P
F-EG
E-FS
(0,1)
P
FG
(4,1)
F-EG
FS
ES
(2,3) P
ES
FS
P
FG
(2,0)E-FS
EG
(0,2)E-FG EGES
(3,3)F-ES
(4,2)
P
ES
EG
FG
FS
EG
FG
FS
فضاء الحاالت لمعضلة الوعائيين
(0,0)
(4,0)
(4,3)
(1,3)
(0,3)
Fill Grand/Small FG FSPour PEmply Grand/small EG, ESEmpty and fill E-F or F-E
F-EG
F-ES
F-ES
P
(3,0)
FG
EG
(1,0)
EG
P
F-EG
E-FS
(0,1)
P
FG
(4,1)
F-EG
FS
ES
(2,3) P
ES
FS
P
FG
(2,0)E-FS
EG
(0,2)E-FG EGES
(3,3)F-ES
(4,2)
P
ES
EG
FG
FS
EG
FG
FS
حل سيئ: فضاء الحاالت للمعضلة الوعائيين
(0,0)
(4,0)
(4,3)
(1,3)
(0,3)
Fill Grand/Small FG FSPour PEmply Grand/small EG, ESEmpty and fill E-F or F-E
F-EG
F-ES
F-ES
P
(3,0)
FG
EG
(1,0)
EG
P
F-EG
E-FS
(0,1)
P
FG
(4,1)
F-EG
FS
ES
(2,3) P
ES
FS
P
FG
(2,0)E-FS
EG
(0,2)E-FG EGES
(3,3)F-ES
(4,2)
P
ES
EG
FG
FS
EG
FG
FS
حل جيد : فضاء الحاالت للمعضلة الوعائيين
state(node(State,_,_),State).action(node(_,Action,_),Action).cost(node(_,_,Cost),Cost).
initial_node(node([0,0],start,0)).
solution([2,_]).solution([_,2]).
صياغة المعضلة
states spaceفضاء الحاالت
initial stateالبدئية الحالة
successor’’الالحق’’تابع function
goal test الحلإختبار
pathالتكلفة cost
وصف
(0,0)
empty, fill, pourاإلجراء
(0,2)أو (2,0) المطلوب إما ماهو
لكل إجراء 1آم السعر
+
لبرولوغترجمة
next(node([X,Y],_,Cost),node([0,Y],empty(grand),NewCost)):-X > 0,NewCost is Cost + 1.
next(node([X,Y],_,Cost),node([X,0],empty(small),NewCost)):-Y > 0,NewCost is Cost + 1.
next(node([X,Y],_,Cost),node([4,Y],fill(grand),NewCost)):-X < 4,NewCost is Cost + 1.
next(node([X,Y],_,Cost),node([X,3],fill(small),NewCost)):-Y < 3,NewCost is Cost + 1.
next(node([X,Y],_,Cost),node([X1,3],pour(grand,small),NewCost)):-Y < 3,
X >= 3 - Y,X1 is X - (3 - Y),NewCost is Cost + 1.
next(node([X,Y],_,Cost),node([0,Y1],pour(grand,small),NewCost)):-Y < 3,
X < 3 - Y,Y1 is X + Y,NewCost is Cost + 1.
next(node([X,Y],_,Cost),node([4,Y1],pour(small,grand),NewCost)):-X < 4,Y >= 4 - X,Y1 is Y - (4 - X),NewCost is Cost + 1.
next(node([X,Y],_,Cost),node([X1,0],pour(small,grand),NewCost)):-X < 4,
Y < 4 - X,X1 is X + Y,NewCost is Cost + 1.
(1,3)
P
EG
(1,0)
E-FS
(0,1)
P
FG
(4,1)
F-EG
FS
ES
(2,3) P
ES
FS
EG
EG
لتحديد فضاء الحاالت nextتعريف معلن
search:-initial_node(Node),solve([[Node]],[],Sol),reverse(Sol,Solution),show(Solution).
solve([Path|_],_,Path):-node(Path,Node),state(Node,State),solution(State).
solve([Path|Open],Closed,Solution):-node(Path,Node),state(Node,State),\+ member(State,Closed),!,expand(Path,NewStates),insert_all(NewStates,Open,NewOpen),solve(NewOpen,[State|Closed],Solution).
solve([_|Open],Closed,Solution):-solve(Open,Closed,Solution).
expand(Path,NewPaths):- node(Path,Node), findall([NewNode|Path],next(Node,NewNode),NewPaths).
node([Node|_],Node).
العقدة الراهنة هي الحل
اإلستراتيجية
state(node(State,_,_),State).
العقدة الراهنة لم تتم زيارتها أبدا
)نتجاوز العقدة الراهنة لألنه تمت زيارتها سابقا
ini_node solveSolve 1
sol
Solve 2
expand11
ini_node
12
ini_node
21
11
ini_node
13
ini_node …………..
22
11
ini_node
2X
12
ini_node
2(X+1)
12
ini_node…… ……
.
.
.
.
.
.
.
.
.
.
.
.
IN
out
آيفية ترتيب العقد في هذا الجدول يحدد
إستراتيجية البحث
show([ ]):-nl.
show([Node|Rest]):-state(Node,S),action(Node,A),cost(Node,F),write(S),write(' '),write(A),write(' '),write(F),write(' '),nl,show(Rest).
Outputs print(term), write(term):البرولوغ مخارج
و إستراتيجيات البحث الحدسي ’ ’ األعمى ’’إستراتيجيات البحث
ى N2 و N1: ال تستثمر المعلومات الموجودة في عقدة ما، مثال : اإلستراتيجيات العمياء دتان عل ثالن عق يم. عمق ما
ية تراتيجيات الحدس ا : اإلس د اتجاه ل تحدي ن أج ا م دة م ي عق ودة ف ات الموج ض المعلوم ستثمر بع تدد (N1 عقدة أآثر قربا من الحل من N2، مثال ) العقدة األآثر افتراضا انها تؤدي للحل (الستكشاف بالنظر لع
) . المربعات الموجودة في المكان الخطأ
حالة
حالة
هدف
Uninformed search strategies اإلستراتيجيات العمياء
: البحث بالعرض •: البحث بالعمق •
العمق منتهي • التعمق المتكرر •
البحث بالكلفة الموحدة •باالتجاهين البحث •
ε<0= > )اإلجراء(تابع = آلفة المرحلة
1= آلفة المرحلة
Uninformed search strategies use only the information available in the problem definition
• Breadth-first search • Uniform-cost search • Depth-first search • Depth-limited search • Iterative deepening search• Bidirectional search
: Breadth-first search خوارزمية البحث بالعرض)استكشاف العقدة األولى من اليسار الغير مستكشفة (الوصول للعقدة األقل عمقا : اإلستراتيجية
إدخال العناصر التالية في نهاية صف االنتظار : التحقيق • Expand shallowest unexpanded node • Implementation:
– fringe is a FIFO queue, i.e., new successors go at end
FIFO= (A)FIFO= (B,C)
FIFO= (C,D,E) FIFO= (D,E,F,G)
insert_all(NewStates,Fringe,NewFringe):-append(Fringe,NewStates,NewFringe).
: Breadth-first search خوارزمية البحث بالعرض
function Breadth-First-Search (problem) returns a solution, or failureGeneral-Search (problem, Enqueue-At-End)
Function Tree_search(problem) return Solution or failureL_nodes = Make_Node(initial_state[problem])Loop do If L_nodes=empty then return failurenode=Remove_Front(L_node)If state[node]=solution then return solution[node]L_nodes=insert_all(Expand(node,operator[problem]),L_nodes)
خوارزمية البحث العامة
خوارزمية البحث بالعرض
برولوغالتطبيق في
خواص طريقة البحث بالعرض
) منتهية bإذا آانت ( نعم >)إذا آان يوجد حل (هل طريقة البحث المتبعة تضمن الوصول إلى حل : التمامية •
إذا آانت ( نعم )إذا آان يوجد اآثر من حل (هل طريقة البحث المتبعة تؤدي للوصول ألحسن حل : المثالية •)التكلفة موحدة لكل مرحلة
O(bd) آم عقدة يتوجب سبرها للوصول للحل : التعقيد الزمني •
O(bd) هو عدد العقد اإلجمالي التي يجب تذآرها للوصول للحل ما: التعقيد المكاني • : بـ التعقيد الزماني و المكاني يتعلق
• b = للعقد التالية لعقدة ما األعظمي العدد اإلجمالي = معامل التفرع لشجرة البحث • d = العمق في شجرة البحث حيث يوجد أحسن حل• m = لفضاء البحث في شجرة البحث األعظمي العمق
)(...1 32 dd bObbbb =+++++
عدد العقد الزمن مساحة الذاآرة
: بافتراض ان •b=10 عقدة في الثانية 1000000 سرعة المعالجة •بايت 100 مساحة الذاآرة المطلوبة لحفظ عقدة واحدة •
خواص طريقة البحث بالعرض
ماذا نستنتج من الجدول؟
هى تعديل إلستراتيجية البحث بالعرض :خوارزمية البحث بالكلفة الموحدة )g(n)تقاس التكلفة بالتابع (للوصول للحل نتوسع بالعقدة التي تكلفتها أقل من العقد األخرى : اإلستراتيجية
)يوجد تكلفة سالبة ال(تكلفة مسلك ما يجب ان تكون متزايدة حتما
إدخال العناصر حسب التكلفة المتزايدة للمسلك : التحقيق
)())((: ngnsuccessorgn ≥∀
استكشاف العقدة االقل تكلفة
مثال السائح في رومانيا
146 229Fagaras RV239220
insert_all(NewStates,Fringe,NewFringe):-insert_h(NewStates,Fringe,NewFringe).
insert_h([ ],L,L).insert_h([X|Xs],ListIn,ListOut):- insert(X,ListIn,List2), insert_h(Xs,List2,ListOut).
insert(X,[ ],[X]).insert(X,[L|Ls],[X,L|Ls]):- node(X,N1), cost(N1,C1), node(L,N2), cost(N2,C2), C1 < C2,!.
insert(X,[L|Ls],[L|Rs]):- insert(X,Ls,Rs).
: Uniform-cost search بالكلفة الموحدةخوارزمية البحث
function uniform-cost-Search (problem) returns a solution, or failureGeneral-Search (problem, fringe = queue ordered by path cost )
Function Tree_search(problem) return Solution or failureL_nodes = Make_Node(initial_state[problem])Loop do If L_nodes=empty then return failurenode=Remove_Front(L_node)If state[node]=solution then return solution[node]L_nodes=insert_all(Expand(node,operator[problem]),L_nodes)
خوارزمية البحث العامة
خوارزمية البحث بالكلفة الموحدة
برولوغالتطبيق في
Uniform-cost search خواص طريقة البحث بالكلفة الموحدة نعم >)إذا آان يوجد حل (هل طريقة البحث المتبعة تضمن الوصول إلى حل : التمامية • نعم )إذا آان يوجد اآثر من حل (هل طريقة البحث المتبعة تؤدي للوصول ألحسن حل : المثالية • الحل المثالي آلفة ≤ تكلفتها التي تابع fعدد العقد : آم عقدة يتوجب سبرها للوصول للحل : التعقيد الزمني •
O(bf) آلفة ≤ تكلفتها التي تابع fعدد العقد عدد العقد اإلجمالي التي يجب تذآرها للوصول للحل ماهو : التعقيد المكاني •
O(bf) الحل المثالي
: بـ التعقيد الزماني و المكاني يتعلق • b = للعقد التالية لعقدة ما األعظمي العدد اإلجمالي = معامل التفرع لشجرة البحث • d = العمق في شجرة البحث حيث يوجد أحسن حل• m = لفضاء البحث في شجرة البحث األعظمي العمق
: Depth-first searchخوارزمية البحث بالعمق األعمق للوصول للحل نتوسع بالعقدة : اإلستراتيجية
إدخال العناصر التالية في أول صف االنتظار : التحقيق
Depth-first searchخوارزمية البحث بالعمق
function Depth-first-search (problem) returns a solution, or failureGeneral-Search (problem, fringe = successors at front LIFO )
Function Tree_search(problem) return Solution or failureL_nodes = Make_Node(initial_state[problem])Loop do If L_nodes=empty then return failurenode=Remove_Front(L_node)If state[node]=solution then return solution[node]L_nodes=insert_all(Expand(node,operator[problem]),L_nodes)
خوارزمية البحث العامة
خوارزمية البحث بالكلفة الموحدة
برولوغالتطبيق في insert_all(NewStates,Fringe,NewFringe):-append(NewStates,Fringe,NewFringe).
خواص طريقة البحث بالعمق في فضاء غير تفشل ( ال >) إذا آان يوجد حل (هل طريقة البحث المتبعة تضمن الوصول إلى حل : التمامية •
) بحلقات أومنتهي ال )إذا آان يوجد اآثر من حل (هل طريقة البحث المتبعة تؤدي للوصول ألحسن حل : المثالية • فهناك مشكلة d اآبر آثيرا من mإذا آانت ( O(bm) آم عقدة يتوجب سبرها للوصول للحل : التعقيد الزمني •
) زمن O(b*m) عدد العقد اإلجمالي التي يجب تذآرها للوصول للحل ماهو : التعقيد المكاني •
b=10,d=12,100 bite/nمن أجل : أي ليس هناك حاجة لمساحات ذاآرة آبيرة مثال : التعقيد المكاني خطي )1010( بايت لطريقة البحث بالعرض تيرا 111 لخوارزمية البحث بالعمق بينما يلزم آيلوبايت 12يلزم
: بـ التعقيد الزماني و المكاني يتعلق • b = للعقد التالية لعقدة ما األعظمي العدد اإلجمالي = معامل التفرع لشجرة البحث • d = العمق في شجرة البحث حيث يوجد أحسن حل• m = لفضاء البحث في شجرة البحث األعظمي العمق
:خوارزمية البحث بالعمق المنتهي L ولكن لعمق محدد األعمق للوصول للحل نتوسع بالعقدة : اإلستراتيجية
. ليس لهم عقد الحقة Lالعقد ذات العمق : التحقيق
L=2
search(Limit):-initial_node(Node),solve([Node],[],Limit,Sol),reverse(Sol,Solution),show(Solution).
solve(Path,_,_,Path):-node(Path,Node),
state(Node,State),solution(State).
solve(Path,Closed,Limit,Solution):-Limit > 0,node(Path,Node),
state(Node,State),\+ member(State,Closed),!,L2 is Limit - 1,next(Node,NewNode), solve([NewNode|Path],[State|Closed],L2,Solution).
برولوغالتطبيق في
خواص طريقة البحث بالعمق المنتهي )L>=dإذا آان ( نعم >) إذا آان يوجد حل (هل طريقة البحث المتبعة تضمن الوصول إلى حل : التمامية •ال )إذا آان يوجد اآثر من حل (هل طريقة البحث المتبعة تؤدي للوصول ألحسن حل : المثالية • O(bL) آم عقدة يتوجب سبرها للوصول للحل : التعقيد الزمني •O(b*L) عدد العقد اإلجمالي التي يجب تذآرها للوصول للحل ماهو : التعقيد المكاني •
: إحتماالت هناك ثالث نجاح في الوصول للحل • إخفاق في الوصول للحل • حل في الفضاء المحدد اليوجد •
:خوارزمية البحث بالتعمق التكراري هو تكرار خوارزمية البحث بالعمق المنتهي من أجل القيم المختلفة لـ = التعمق التكراري : اإلستراتيجية
L=0,1,2….
فهى تامة ومثالية آطريقة البحث : هذه اإلستراتيجية تجمع بين حسنات طريقتي البحث بالعرض و بالعمق . بالعرض و هى مقتصدة بالمكان آطريقة البحث بالعمق
إذا آان عمق الحل معروف األمثلتعتبر هذه اإلستراتيجية الخيار
: التحقيق
End
L=0
L=1
L=2
L=3
search:-initial_node(Node),solve_iter([Node],[ ],0,Sol),reverse(Sol,Solution),show(Solution).
solve(Path,_,_,Path):-node(Path,Node),
state(Node,State),solution(State).
solve(Path,Closed,Limit,Solution):-Limit > 0,node(Path,Node),state(Node,State),\+ member(State,Closed),!,L2 is Limit - 1,next(Node,NewNode), solve([NewNode|Path],[State|Closed],L2,Solution).
برولوغالتطبيق في
solve_iter(Path,Closed,Limit,Solution):-solve(Path,Closed,Limit,Solution).
solve_iter(Path,Closed,Limit,Solution):-L2 is Limit + 1,solve_iter(Path,Closed,L2,Solution).
خواص طريقة البحث بالتعمق التكراري آل المسالك ( نعم >)إذا آان يوجد حل (هل طريقة البحث المتبعة تضمن الوصول إلى حل : التمامية •
......) 3،2،1ستستكشف إذا آان السعر ( نعم )إذا آان يوجد اآثر من حل (هل طريقة البحث المتبعة تؤدي للوصول ألحسن حل : المثالية •
)1=الخطوة O(bd) آم عقدة يتوجب سبرها للوصول للحل : التعقيد الزمني •O(b*d) عدد العقد اإلجمالي التي يجب تذآرها للوصول للحل ماهو : التعقيد المكاني •
=++−+++ dbbddbbd ....)1()1( 20
• Number of nodes generated in a depth-limited search to depth d with branching factor b:
NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd
• Number of nodes generated in an iterative deepening search to depth d with branching factor b:
NIDS = (d+1)b0 + d b^1 + (d-1)b^2 + … + 3bd-2 +2bd-1 + 1bd
• For b = 10, d = 5, – NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111 – NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456
• Overhead = (123,456 - 111,111)/111,111 = 11%
:مثال مقارنة
:خوارزمية البحث باالتجاهين اعتبارا البدئية وفي نفس الوقت البحث عن الحالة .البدئية البحث عن الهدف اعتبارا من الحالة : اإلستراتيجية
. للهدف البدئية عندما يلتقي المسلكان نكون قد وجدنا الحل الممثل بالمسلك من الحالة . من الهدف
الهدف محددة تماما، آما يجب ان تكون آل العمليات قابلة -لتطبيق هذه اإلستراتيجية يلزم ان تكون الحالة •. السابقة للعكس بحث تكون قادرة على إيجاد الحالة
. إتجاه نوع طريقة البحث لكل إختيارينبغي •
إذا آان عمق الحل معروف األمثلتعتبر هذه اإلستراتيجية الخيار
: مثالبدئيةحالة هدف
نقطة التقاء
الحل
باإلتجاهين خواص طريقة البحث نعم >) إذا آان يوجد حل (هل طريقة البحث المتبعة تضمن الوصول إلى حل : التمامية •نعم )إذا آان يوجد اآثر من حل (هل طريقة البحث المتبعة تؤدي للوصول ألحسن حل : المثالية • O(bd/2)<< O(bd) آم عقدة يتوجب سبرها للوصول للحل : التعقيد الزمني • O(bd/2)<< O(bd) هو عدد العقد اإلجمالي التي يجب تذآرها للوصول للحل ما: التعقيد المكاني •
Criterion Breadth-first
Uniform-cost
Depth-first
Depth-limited
Iterative deepening Bidirectional
Completeness: )منتهية bإذا (نعم نعم ال ) L>=dإذا ( نعم نعم نعم
Optimality: نعم نعم ال ال step)نعم cost=1) نعم
Time complexity O(bd) O(bf) O(bm) O(bL) O(bd) O(bd/2)
Space complexity O(bd) O(bf) O(b*m) O(b*L) O(b*d) O(bd/2)
جدول مقارنة إلستراتيجيات البحث العمياء
ية الحاالت المتكررة ، في حال عدم آشف الحاالت المتكررة فإن معضلة خط يتحاشيجب : ة ظحمالاسيةيمكن ان تتحول على معضلة
: من أجل ذلك يجب مقارنة وصف الحاالت • حفظ أثر الحاالت المستكشفة •لعقدة إذا آان الالحق لعقدة ما هو حالة قد سبق استكشافها فيجب حذف هذه ا •