You are on page 1of 19

‫هوش مصنوعي‬

‫فصل چهارم‬
‫‪Artificial Intelligence‬‬
‫نام كتاب ‪ :‬هوش مصنوعي رهياتي نوين‬
‫موﻟﻒ ‪ :‬راسل و نورويگ‬ ‫روش هاي جستجوي آگاهانه‬

‫مهدي بازرگاني‬
‫دانشگاه آزاد اسﻼمي زنجان‬

‫‪http://mbzir.com‬‬ ‫‪, http://csiz.ir‬‬


‫‪.‬‬

‫مﻘﺪمه‬ ‫مشكﻼت روش هاي جستجوي ناآگاهانه‬


‫‪3‬‬ ‫‪4‬‬

‫جستجوي اول‪-‬بهترين )‪(Best-First Search‬‬ ‫‪‬‬


‫معيار انتخاب گره بعﺪي براي گسترش دادن تنها به شماره سطح آن‬ ‫‪‬‬
‫جستجوي حريصانه )‪(Greedy search‬‬ ‫•‬
‫جستجوي *‪ A‬و خصوصيات آن‬ ‫•‬
‫بستگي دارد‪.‬‬
‫جستجوي عميق كننﺪه تكراري *‪ A‬و *‪SMA‬‬ ‫‪‬‬ ‫از ساختار مسأﻟه بهره نمي برنﺪ‪.‬‬ ‫‪‬‬

‫جستجوي اول بهترين بازگشتي )*‪(RBFA‬‬ ‫‪‬‬ ‫درخت جستجو را به يك روش از پيش تعريﻒ شﺪه گسترش مي دهنﺪ‪.‬‬ ‫‪‬‬
‫هيوريستيك ها )‪(Heuristics‬‬ ‫‪‬‬ ‫يعني قابليت تطبيق پذيري با آنچه كه تا كنون در مسير جستجو دريافته‬
‫اﻟگوريتم هاي جستجوي محلي‬ ‫‪‬‬
‫انﺪ و نيز حركتي كه مي توانﺪ خوب باشﺪ نﺪارنﺪ‪.‬‬
‫جستجوي تپه نوردي )‪(Hill Climbing‬‬ ‫•‬
‫جستجوي ‪Simulated Annealing‬‬ ‫•‬
‫اﻟگوريتم هاي ژنتيك‬ ‫•‬

‫‪١‬‬
‫مرور‪ :‬جستجوي درخت‬ ‫جستجوي اول‪ -‬بهترين‬
‫‪5‬‬ ‫‪6‬‬

‫‪function GENERAL-SEARCH( problem, strategy) returns a solution , or failure‬‬ ‫ايﺪه‪ :‬براي هر گره از يك تابع ارزيابي )‪ (evaluation function‬استفاده كن‪.‬‬ ‫‪‬‬
‫◦ تخمين “ميزان مطلوب بودن” گره‬
‫‪initialize the search tree using the initial state of problem‬‬
‫‪‬هربار مطلوب ترين گره گسترش نيافته را بسط مي دهﺪ‪.‬‬
‫‪loop do‬‬
‫‪if there are no candidates for expansion then return failure‬‬ ‫پياده سازي‪:‬‬ ‫‪‬‬

‫‪choose a leaf node for expansion according to strategy‬‬ ‫‪ fringe‬يك صﻒ مي باشﺪ كه بر اساس ميزان مطلوب بودن گره ها مرتب مي‬
‫‪if the node contains the goal state then return the corresponding solution‬‬
‫باشﺪ‪.‬‬
‫‪else expand the node and add the resulting node to the search tree‬‬
‫موارد خاص‪:‬‬ ‫‪‬‬
‫‪end‬‬
‫جستجوي حريصانه )‪(Greedy search‬‬ ‫◦‬
‫جستجوي *‪A‬‬ ‫◦‬

‫استراتژي توسط ترتيب گسترش يافتن گره ها تعريﻒ مي شود‪.‬‬ ‫‪‬‬

‫نﻘشه روماني به همراه هزينه مراحل برحسب ‪km‬‬ ‫جستجوي اول‪-‬بهترين حريصانه‬
‫‪7‬‬ ‫‪8‬‬

‫تابع ارزيابي )‪ ) f(n) = h( n‬هيوريستيك(‬ ‫‪‬‬

‫= هزينه تخميني از گره ‪ n‬تا نزديكترين هﺪف‬ ‫‪‬‬

‫مثال‪ = hSLD(n) :‬فاصله مستﻘيم از ‪ n‬تا بخارست‪.‬‬ ‫‪‬‬

‫جستجوي حريصانه گره اي را گسترش مي دهﺪ كه به نظر مي رسﺪ‬ ‫‪‬‬

‫نزديكترين گره به هﺪف ) بخارست( باشﺪ‪.‬‬

‫‪٢‬‬
‫مثال جستجوي حريصانه‬ ‫خواص جستجوي حريصانه‬
‫‪9‬‬ ‫‪10‬‬

‫‪Arad‬‬
‫كامل؟ خير‪ ،‬ممكن است در حلﻘه گير كنﺪ‪.‬‬ ‫‪‬‬

‫مثال‪ :‬حاﻟت اوﻟيه ‪ ،Iasi‬حاﻟت هﺪف ‪Fagaras‬‬ ‫◦‬

‫‪Sibiu‬‬ ‫‪Timisoara‬‬ ‫‪Zerind‬‬ ‫… ‪Iasi  Neamt  Iasi  Neamt ‬‬


‫‪253‬‬ ‫‪329‬‬ ‫‪374‬‬
‫پيچيدگي زماني؟ )‪ ،O(bm‬اما با يك هيوريستيك خوب مي توانﺪ بسيار بهبود يابﺪ‪.‬‬ ‫‪‬‬
‫‪Rimnicu‬‬
‫‪Arad‬‬ ‫‪Fagaras‬‬ ‫‪Oradea‬‬ ‫‪Vilcea‬‬ ‫])‪0: [A(366‬‬

‫‪176‬‬ ‫‪380‬‬ ‫‪193‬‬ ‫])‪1: [S(253), T(329), Z(374‬‬


‫‪366‬‬
‫‪2: [F(176), R(193), T(329), A(366),‬‬
‫پيچيدگي حافظه؟ )‪ ،O(bm‬تمام گره ها را در حافظه نگه مي دارد‪.‬‬ ‫‪‬‬

‫‪Sibiu‬‬ ‫‪Bucharest‬‬ ‫])‪Z(374), O(380‬‬

‫‪253‬‬ ‫‪0‬‬
‫‪3: [B(0), R(193), S(253), T(329), A(366),‬‬
‫])‪Z(374), O(380‬‬
‫بهينه؟ خير‪ ) ،‬با توجه به مثال قبل(‬ ‫‪‬‬

‫‪4: [R(193), S(253), T(329), A(366),‬‬


‫])‪Z(374), O(380‬‬

‫جستجوي *‪A‬‬ ‫مثال جستجوي *‪A‬‬


‫‪11‬‬ ‫‪12‬‬ ‫‪Arad‬‬
‫ايﺪه‪ :‬از گسترش مسيرهايي كه تاكنون مشخص شﺪه پرهزينه مي باشنﺪ‪ ،‬اجتناب كن‪.‬‬ ‫‪‬‬ ‫‪366=0+366‬‬

‫‪Sibiu‬‬ ‫‪Timisoara‬‬ ‫‪Zerind‬‬


‫*‪ : A‬تركيب مزاياي ‪ UCS‬و جستجوي حريصانه‪:‬‬ ‫‪‬‬
‫جستجوي حريصانه )‪ h(n‬را حﺪاقل مي كنﺪ‪ ،‬نه كامل و نه بهينه‬ ‫◦‬ ‫‪393=140+253‬‬ ‫‪447=118+329‬‬ ‫‪449=75+374‬‬
‫جستجوي ‪ ،UCS‬هزينه مسير را حﺪاقل مي كنﺪ؛ كامل و بهينه است؛ مي توانﺪ بسيار زمانبر باشﺪ‪.‬‬ ‫◦‬
‫‪Rimnicu‬‬
‫‪Arad‬‬ ‫‪Fagaras‬‬ ‫‪Oradea‬‬ ‫‪Vilcea‬‬
‫تابع ارزيابي‬ ‫‪‬‬ ‫‪646=280+366 415=293+176 671=291+380‬‬ ‫‪413=220+193‬‬

‫)‪f( n) = g( n) + h( n‬‬
‫‪Sibiu‬‬ ‫‪Bucharest‬‬ ‫‪Craiova‬‬ ‫‪Pitesti‬‬ ‫‪Sibiu‬‬
‫)‪ :g( n‬هزينه مسير پيموده شﺪه تا ‪.n‬‬ ‫‪‬‬
‫‪591=338+253‬‬ ‫‪450=450+0‬‬
‫)‪ :h( n‬هزينه تخميني ارزانترين مسير راه حل از ‪ n‬تا هدف‪.‬‬ ‫‪‬‬ ‫‪526=366+160‬‬ ‫‪417=317+100‬‬ ‫‪553=300+253‬‬

‫)‪ :f( n‬هزينه تخميني ارزانترين راه حل كه از ‪ n‬مي گذرد‪.‬‬ ‫‪‬‬ ‫‪Rimnicu‬‬
‫‪Bucharest‬‬ ‫‪Craiova‬‬ ‫‪vilcea‬‬
‫‪418=418+0‬‬ ‫‪615=455+160‬‬ ‫‪607=414+193‬‬

‫‪٣‬‬
‫جستجوي *‪A‬‬ ‫هيوريستيك قابل قبول‬
‫‪13‬‬ ‫‪14‬‬

‫*‪ A‬از يك هيوريستيك قابل قبول )‪ (admissible‬استفاده مي كنﺪ‪،‬‬


‫يك هيوريستيك ماننﺪ )‪ h(n‬قابل قبول است اگر براي هر گره ‪ n‬داشته باشيم‪:‬‬ ‫‪‬‬
‫يعني‪ ،‬همواره )‪ h(n) ≤ h*(n‬كه در آن )‪ h*(n‬هزينه واقعي ‪ n‬تا هﺪف‬ ‫)‪ h(n) ≤ h*(n‬كه )‪ h*(n‬هزينه واقعي براي رسيﺪن به هﺪف از گره ‪ n‬مي باشﺪ‪.‬‬
‫مي باشﺪ‪.‬‬
‫هم چنين داريم‬
‫يك هيوريستيك قابل قبول هرگز هزينه رسيﺪن به هﺪف را بيش از حﺪ تخمين‬ ‫‪‬‬
‫‪ h(n) ≥ 0‬و‬ ‫نمي زنﺪ‪ ،‬يعني خوش بينانه است‪.‬‬
‫‪ G ) h(G) = 0‬يك هﺪف مي باشﺪ(‪.‬‬
‫به طور كلي ‪:‬‬
‫مثال‪ :‬هيوريستيك )‪) hSLD(n‬هيچگاه فاصله واقعي را بيش از حﺪ تخمين نمي‬ ‫‪‬‬
‫)‪0 ≤ h(n) ≤ h*(n‬‬ ‫زنﺪ (‪.‬‬
‫مثال‪ :‬در هيوريستيك )‪ hSLD(n‬هيچگاه هزينه تخميني بيشتر از هزينه‬
‫واقعي نخواهﺪ بود‪) .‬كوتاهترين فاصله بين دو نﻘطه‪ ،‬فاصله مستﻘيم آن‬
‫دو نﻘطه مي باشﺪ(‪.‬‬ ‫قضيه‪ :‬اگر )‪ h(n‬قابل قبول باشﺪ‪ A* ،‬با استفاده از ‪ TREE-SEARCH‬بهينه‬ ‫‪‬‬
‫است‪.‬‬

‫اثبات ﻟم‪ :‬سازگاري )‪(Consistency‬‬


‫بهينگي *‪) A‬اثبات(‬
‫‪15‬‬ ‫‪16‬‬

‫فرض كنيﺪ يك جواب زير بهينه ماننﺪ ‪ G2‬توﻟيﺪ شﺪه و در صﻒ قرار دارد‪.‬‬ ‫‪‬‬
‫)’‪h(n) ≤ c(n, a, n’) + h(n‬‬ ‫• يك هيوريستيك سازگار است اگر ‪:‬‬
‫هم چنين فرض كنيﺪ ‪ n‬يك گره گسترش نيافته روي كوتاهترين مسير به هﺪف بهينه ‪ G‬باشﺪ)؟؟(‬ ‫• اگر ‪ h‬سازگار باﺷﺪ‪ ،‬داريم‪:‬‬

‫)’‪f(n’) = g(n’) + h(n‬‬


‫چون‪h(G2) = 0 ،‬‬ ‫)’‪= g(n) + c(n, a, n’) + h(n‬‬
‫)‪f(G2) = g(G2‬‬
‫چون‪ G2 ،‬زير بهينه است‬ ‫)‪≥ g(n) + h(n‬‬
‫چون‪ h ،‬قابل قبول است‬ ‫)‪> g(G‬‬
‫)‪≥ f(n‬‬
‫)‪≥ f(n‬‬
‫چون )‪ ،f(G2) ≥ f(n‬اﻟگوريتم *‪ A‬هيچ وقت ‪ G2‬را براي گسترش يافتن انتخاب نمي كنﺪ‪.‬‬
‫• يعني‪ f(n) ،‬در طول هر مسيري غير كاهشي مي باﺷﺪ‪) .‬يكنوايي‪(monotonicity ،‬‬
‫• قضيه‪ :‬اگر )‪ h(n‬سازگار باﺷﺪ‪ A* ،‬با استفاده از ‪ GRAPH-SEARCH‬بهينه است‪.‬‬

‫‪٤‬‬
‫بهينگي *‪A‬‬ ‫خصوصيات *‪A‬‬
‫‪17‬‬ ‫‪18‬‬

‫ﻟﻢ‪ A* :‬گره ها را براساس ترتيب صعودي مﻘادير ‪ f‬گسترش مي دهﺪ‪.‬‬ ‫‪‬‬ ‫‪ ‬كامل؟ بله‪ ،‬مگر اينكه تعﺪادي نامحﺪود گره با )‪ f ≤ f(G‬وجود داشته‬
‫باشﺪ‪ A* .‬در گراف هاي متناهي محلي ) با فاكتور انشعاب محﺪود( كامل‬
‫*‪ A‬به تﺪريج ‪ f-contour‬ها را اضافه مي كنﺪ‪.‬‬ ‫‪‬‬ ‫است به شرط آنكه هزينه تمام عملگرها مثبت باشﺪ‪.‬‬
‫كانتور ‪ i‬شامل تمام گره ها با ‪ f = fi‬مي باشﺪ‪ ،‬كه ‪fi < fi+1‬‬ ‫‪‬‬ ‫‪ -‬گره اي با فاكتور انشعاب نامحﺪود وجود داشته باشﺪ‪.‬‬
‫‪ -‬مسيري با هزينه محﺪود اما با تعﺪاد گره هاي نامحﺪود وجود داشته‬
‫باشﺪ‪.‬‬
‫‪ ‬پيچيﺪگي زماني؟ نمايي بر حسب ] خطاي نسبي ‪ * h‬طول راه حل[‬
‫مگر اينكه خطا در تابع كشﻒ كننﺪه رشﺪي سريعتر از ﻟگاريتم هزينه مسير‬
‫واقعي نﺪاشته باشﺪ‪ ،‬به زبان رياضي‪:‬‬
‫))‪| h(n) – h*(n)| ≤ O (log h*(n‬‬

‫خصوصيات *‪A‬‬ ‫جستجوي هيوريستيك با حافظه محﺪود‬


‫‪19‬‬ ‫‪20‬‬

‫پيچيﺪگي فضا؟؟ تمام گره ها را در حافظه نگه مي دارد‪.‬‬ ‫‪‬‬ ‫چنﺪ راه حل براي مسأﻟه حافظه در *‪) A‬با حفﻆ خصوصيات كامل‬ ‫‪‬‬
‫بودن و بهينگي(‪:‬‬
‫بهينه؟؟ بله – نمي توانﺪ ‪ fi+1‬را گسترش دهﺪ مگر ‪ fi‬تمام شﺪه باشﺪ‪.‬‬ ‫‪‬‬
‫‪ ‬جستجوي عميق كننﺪه تكراري *‪(IDA*) A‬‬
‫*‪ A‬تمام گره ها با *‪ f(n) < f‬را گسترش مي دهﺪ‪.‬‬ ‫◦‬
‫‪ ‬ماننﺪ ‪ IDS‬وﻟي به جاي محﺪوده عمﻘي از محﺪوده ‪ (g + h) f-cost‬استفاده مي‬
‫*‪ A‬برخي از گره ها با *‪ f(n) = f‬را گسترش مي دهﺪ‪.‬‬ ‫◦‬ ‫شود‬
‫*‪ A‬گره اي با *‪ f(n) > f‬را هرگز گسترش نمي دهﺪ‪.‬‬ ‫◦‬ ‫‪ ‬جستجوي اول‪-‬بهترين بازگشتي )‪(RBFS‬‬
‫‪ ‬يك اﻟگوريتم بازگشتي با فضاي خطي كه سعي مي كنﺪ از جستجوي اول‪-‬بهترين‬
‫استانﺪارد تﻘليﺪ كنﺪ‬
‫*‪ A‬داراي كارآيي بهينه )‪ (optimally efficient‬مي باشﺪ!‬ ‫‪‬‬ ‫‪ ‬جستجوي )ساده شﺪه( *‪ A‬با حافظه محﺪود )*‪((S)MBA‬‬
‫‪ ‬حذف بﺪترين گره وقتي كه حافظه پر مي باشﺪ‬

‫‪٥‬‬
(RBFS)‫بهترين بازگشتي‬-‫جستوي اول‬ RBFS ‫جستجوي‬
21 22

function RECURSIVE-BEST-FIRST-SEARCH(problem) return a solution or failure


return RFBS(problem,MAKE-NODE(INITIAL-STATE[problem]),∞)
‫ مربوط به بهترين مسير جايگزين موجود را نگهﺪاري‬f-value ‫مﻘﺪار‬ 
.‫مي كنﺪ‬
function RFBS( problem, node, f_limit) return a solution or failure and a new f-cost limit ‫ آنگاه به اين‬،‫ مسير جايگزين تجاوز كنﺪ‬f-value ‫ فعلي از‬f-value ‫ اگر‬
if GOAL-TEST[problem](STATE[node]) then return node .‫مسير جايگزين بازگشت مي كنﺪ‬
successors  EXPAND(node, problem)
if successors is empty then return failure, ∞ ‫ مربوط به هر گره موجود در مسير را‬f-value ‫ در بازگشت به عﻘب مﻘﺪار‬
for each s in successors do .‫ فرزنﺪانش جايگزين مي كنﺪ‬f-value ‫با بهترين مﻘﺪار‬
f [s]  max(g(s) + h(s), f [node]) .‫ بنابراين گسترش مجﺪد نتيجه فعلي هنوز ممكن مي باشﺪ‬
repeat
best  the lowest f-value node in successors
if f [best] > f_limit then return failure, f [best]
alternative  the second lowest f-value among successors
result, f [best]  RBFS(problem, best, min(f_limit, alternative))
if result  failure then return result

RBFS ‫مثال جستجوي‬ RBFS ‫مثال جستجوي‬


∞ ∞

23 Arad 24 Arad
366 366

447 447

Sibiu Timisoara Zerind Sibiu Timisoara Zerind


393 447 449 393 447 449

415 417
Rimnicu Rimnicu
Arad Fagaras Oradea Vilcea Arad Fagaras Oradea Vilcea
646 415 526 413 417 646 415 450 526 413 417

Craiova Pitesti Sibiu Sibiu Bucharest


526 417 553 591 450

٦
‫مثال جستجوي ‪RBFS‬‬ ‫ارزيابي ‪RBFS‬‬
‫∞‬

‫‪25‬‬ ‫‪Arad‬‬ ‫‪26‬‬


‫‪366‬‬
‫‪ RBFS‬كمي كارآتر از *‪ IDA‬مي باشﺪ‬ ‫‪‬‬
‫‪447‬‬
‫‪ ‬هنوز گسترش اضافي گره ها وجود دارد) تغيير عﻘيﺪه(‬
‫‪Sibiu‬‬
‫‪393‬‬
‫‪Timisoara‬‬
‫‪447‬‬
‫‪Zerind‬‬
‫‪449‬‬
‫‪ RBFS‬هم ماننﺪ *‪ ،A‬اگر )‪ h(n‬قابل قبول باشﺪ بهينه است‬ ‫‪‬‬

‫‪447‬‬
‫پيچيﺪگي حافظه )‪O(bd‬‬ ‫‪‬‬
‫‪Rimnicu‬‬ ‫‪ IDA* ‬فﻘط يك عﺪد را نگهﺪاري مي كنﺪ )حﺪ فعلي ‪(f-cost‬‬
‫‪Arad‬‬ ‫‪Fagaras‬‬ ‫‪Oradea‬‬
‫‪646‬‬ ‫‪450‬‬ ‫‪526‬‬
‫‪Vilcea‬‬
‫‪417‬‬ ‫تعيين پيچﺪگي زماني مشكل است‬ ‫‪‬‬

‫‪447‬‬ ‫‪ ‬به دقت تابع هيوريستيك و ميزان تغيير بهترين مسير در اثر بسط گره ها‬
‫بستگي دارد‪.‬‬
‫‪Craiova‬‬ ‫‪Pitesti‬‬ ‫‪Sibiu‬‬
‫‪526‬‬ ‫‪417‬‬ ‫‪553‬‬ ‫‪ ‬ماننﺪ *‪ IDA‬در معرض افزايش نمايي پيچيﺪگي زماني قرار دارد‬
‫‪ RBFS‬و *‪ IDA‬هر دو از ميزان بسيار كم حافظه رنج مي برنﺪ‪.‬‬ ‫‪‬‬

‫‪Bucharest‬‬ ‫‪Craiova‬‬
‫‪Rimnicu‬‬
‫‪vilcea‬‬
‫‪ ‬با اينكه حافظه زيادي وجود دارد‪ ،‬نمي تواننﺪ از ان استفاده كننﺪ‪.‬‬
‫‪418‬‬ ‫‪615‬‬ ‫‪607‬‬

‫*‪(Simplified) Memory Bounded A‬‬


‫هيوريستيك هاي قابل قبول‬
‫‪27‬‬ ‫‪28‬‬

‫ايﺪه‪ :‬استفاده از تمامي حافظه موجود‬ ‫‪‬‬ ‫مثال براي معماي هشت‪:‬‬
‫‪ ‬يعني‪ ،‬گسترش بهترين گره هاي برگي تا زماني كه حافظه موجود پر شود‬
‫‪h1(n) = number of misplaced tiles‬‬
‫‪ ‬در صورت پر شﺪن حافظه‪ SMA* ،‬بﺪترين گره برگ ) با بيشترين مﻘﺪار ‪ (f-value‬را از‬
‫حافظه حذف مي كنﺪ‬ ‫‪h2(n) = total Manhattan distance‬‬
‫‪ ‬ماننﺪ ‪ RBFS‬اطﻼعات گره هاي فراموش شﺪه را در پﺪرشان ذخيره مي كنﺪ‬

‫اگر تمام برگ ها داراي ‪ f-value‬برابر باشنﺪ چه مي شود؟‬ ‫‪‬‬


‫‪ ‬ممكن است يك گره را هم براي گسترش و هم براي حذف انتخاب كنﺪ‬
‫‪ ‬راه حل *‪:SMA‬‬
‫گسترش‪ :‬بهترين گره برگ كه از همه جﺪيﺪ تر است‬ ‫‪‬‬
‫حذف‪ :‬بﺪترين گره كه از همه قﺪيمي تر است‬ ‫‪‬‬
‫‪h1(S) = 6‬‬
‫‪h2(S) = 4 + 0 + 3 + 3 + 1 + 0 + 2 + 1 = 14‬‬
‫‪ SMA* ‬كامل است اگر راه حل قابل دستيابي وجود داشته باشﺪ و بهينه است اگر راه‬
‫حل بهينه قابل دستيابي باشﺪ‬

‫‪٧‬‬
‫‪0+4‬‬
‫‪283‬‬
‫‪164‬‬ ‫•مثال‪ :‬جستجوي *‪ A‬با ‪h1‬‬ ‫‪0+5‬‬
‫‪283‬‬
‫‪164‬‬ ‫•مثال‪ :‬جستجوي *‪ A‬با ‪h2‬‬
‫‪7_ 5‬‬ ‫‪7_ 5‬‬

‫‪29‬‬ ‫‪30‬‬
‫‪283‬‬ ‫‪283‬‬ ‫‪283‬‬ ‫‪283‬‬ ‫‪283‬‬ ‫‪283‬‬
‫‪1+5‬‬ ‫‪164‬‬ ‫‪1+3‬‬ ‫‪1_4‬‬ ‫‪1+5‬‬ ‫‪164‬‬ ‫‪1+6‬‬ ‫‪164‬‬ ‫‪1+4‬‬ ‫‪1_4‬‬ ‫‪1+6‬‬ ‫‪164‬‬
‫‪_ 75‬‬ ‫‪765‬‬ ‫_‪75‬‬ ‫‪_ 75‬‬ ‫‪765‬‬ ‫_‪75‬‬

‫‪283‬‬ ‫‪2_3‬‬ ‫‪283‬‬ ‫‪283‬‬ ‫‪2_3‬‬ ‫‪283‬‬


‫‪2+3‬‬ ‫‪_ 14‬‬ ‫‪2+3‬‬ ‫‪184‬‬ ‫‪2+4‬‬ ‫_‪14‬‬
‫‪2+5‬‬ ‫‪_ 14‬‬ ‫‪2+3‬‬ ‫‪184‬‬ ‫‪2+5‬‬ ‫_‪14‬‬
‫‪765‬‬ ‫‪765‬‬ ‫‪765‬‬ ‫‪765‬‬ ‫‪765‬‬ ‫‪765‬‬

‫‪_ 83‬‬ ‫‪2 83‬‬ ‫‪_23‬‬ ‫_‪23‬‬ ‫_‪23‬‬


‫‪_23‬‬
‫‪3+3‬‬ ‫‪214‬‬ ‫‪3+4‬‬ ‫‪714‬‬ ‫‪3+2‬‬ ‫‪184‬‬ ‫‪3+4‬‬ ‫‪184‬‬
‫‪3+2‬‬ ‫‪184‬‬ ‫‪3+4‬‬ ‫‪184‬‬
‫‪765‬‬ ‫‪-65‬‬ ‫‪765‬‬ ‫‪765‬‬ ‫‪765‬‬
‫‪765‬‬

‫‪123‬‬ ‫‪123‬‬
‫‪4+1‬‬ ‫‪_84‬‬ ‫‪4+1‬‬ ‫‪_84‬‬
‫‪765‬‬ ‫‪765‬‬

‫‪123‬‬ ‫‪123‬‬ ‫‪123‬‬ ‫‪123‬‬


‫‪5+0‬‬ ‫‪8_4‬‬
‫‪5+2‬‬ ‫‪784‬‬ ‫‪5+0‬‬ ‫‪8_4‬‬
‫‪5+2‬‬ ‫‪784‬‬
‫‪765‬‬ ‫‪_65‬‬ ‫‪765‬‬ ‫‪_65‬‬

‫تسلط )‪(Dominance‬‬ ‫فاكتور انشعاب موثر )*‪(b‬‬


‫‪31‬‬ ‫‪32‬‬

‫اگر بازاء هر ‪ n‬داشته باشيم‪h2(n) ≥ h1(n) ،‬‬ ‫‪‬‬ ‫‪ ‬فاكتور انشعاب موثر )‪:(EBF‬‬
‫)و هر دو هيوريستيك قابل قبول باشنﺪ(‬ ‫اگر تعﺪاد گره هاي گسترش يافته توسط روال جستجو ‪ N‬باشﺪ و عمق راه حل ‪d‬‬
‫آنگاه ‪ h2‬بر ‪ h1‬تسلط دارد و براي جستجو بهتر مي باشﺪ‪.‬‬ ‫‪‬‬ ‫باشﺪ‪ b* ،‬به صورت زير محاسبه مي شود‪:‬‬
‫مثال هزينه جستجو‪ :‬تعﺪاد گره هاي توﻟيﺪ شﺪه در عمق هاي مختلﻒ‪:‬‬ ‫‪‬‬ ‫‪N + 1 = 1 + b* + (b*)2 + … + (b*)d‬‬

‫‪d = 14  IDS = 3,473,941‬‬ ‫‪ ‬مثال‪ :‬اگر *‪ A‬راه حلي را در عمق ‪ ٥‬با استفاده از ‪ ٥٢‬گره پيﺪا كنﺪ‪ ،‬فاكتور انشعاب‬
‫‪A*(h1) = 539‬‬ ‫موثر را محاسبه كنيﺪ‪.‬‬
‫‪A*(h2) = 113‬‬ ‫پاسﺦ‪:‬‬
‫‪53 = 1 + b* + (b*)2 + … (b*)5  b* = 1.92‬‬
‫‪d = 24  IDS = 54,000,000,000‬‬
‫‪A*(h1) = 39,135‬‬
‫در يك هيوريستيك هر چه فاكتور انشعاب به يك نزديكتر باشﺪ‪ ،‬بهتر است و آن‬ ‫‪‬‬
‫‪A*(h2) = 1641‬‬ ‫هيوريستيك كيفيت كشﻒ كننﺪگي بيشتري دارد‪.‬‬

‫‪٨‬‬
‫مﻘايسه بين هزينه جستجو و فاكتور انشعاب موثر‬ ‫ابﺪاع توابع هيوريستيك‬
‫‪33‬‬ ‫‪34‬‬

‫مي توان هيوريستيكهاي قابل قبول را براي يك مسأﻟه‪ ،‬از هزينه دقيق راه حل يك‬ ‫‪‬‬
‫‪Search Cost‬‬ ‫‪Effective Branching Factor‬‬
‫نسخه راحت )‪ (relaxed‬از مسأﻟه بﺪست آورد‪.‬‬
‫‪d‬‬ ‫‪IDS‬‬ ‫)‪A*(h1‬‬ ‫)‪A*(h2‬‬ ‫‪IDS‬‬ ‫)‪A*(h1‬‬ ‫)‪A*(h2‬‬
‫‪2‬‬ ‫‪10‬‬ ‫‪6‬‬ ‫‪6‬‬ ‫‪2.45‬‬ ‫‪1.79‬‬ ‫‪1.79‬‬ ‫مثال‪ :‬قانون معماي هشت‪ .‬يك كاشي مي توانﺪ از خانه ‪ A‬به خانه ‪ B‬برود‪ ،‬اگر ‪A‬‬ ‫‪‬‬
‫‪4‬‬ ‫‪112‬‬ ‫‪13‬‬ ‫‪12‬‬ ‫‪2.87‬‬ ‫‪1.48‬‬ ‫‪1.45‬‬ ‫مجاور ‪ B‬باشﺪ و ‪ B‬خاﻟي باشﺪ‪.‬‬
‫‪6‬‬ ‫‪680‬‬ ‫‪20‬‬ ‫‪18‬‬ ‫‪2.73‬‬ ‫‪1.34‬‬ ‫‪1.30‬‬
‫‪8‬‬ ‫‪6,384‬‬ ‫‪39‬‬ ‫‪25‬‬ ‫‪2.80‬‬ ‫‪1.33‬‬ ‫‪1.24‬‬
‫اگر قوانين معماي هشت به گونه اي راحت شونﺪ كه يك كاشي بتوانﺪ به هر خانه اي‬ ‫‪‬‬
‫‪10‬‬ ‫‪47,127‬‬ ‫‪93‬‬ ‫‪39‬‬ ‫‪2.79‬‬ ‫‪1.38‬‬ ‫‪1.22‬‬ ‫حركت كنﺪ‪ ،‬هيوريستيك )‪ h1(n‬كوتاهترين راه حل را مي دهﺪ‪.‬‬
‫‪12‬‬ ‫‪364,404‬‬ ‫‪227‬‬ ‫‪73‬‬ ‫‪2.78‬‬ ‫‪1.42‬‬ ‫‪1.24‬‬
‫‪14‬‬ ‫‪3,473,941‬‬ ‫‪539‬‬ ‫‪113‬‬ ‫‪2.83‬‬ ‫‪1.44‬‬ ‫‪1.23‬‬
‫اگر قوانين به گونه اي راحت شونﺪ كه يك كاشي بتوانﺪ به هر خانه مجاور حركت‬ ‫‪‬‬
‫‪16‬‬ ‫‪-‬‬ ‫‪1,301‬‬ ‫‪211‬‬ ‫‪-‬‬ ‫‪1.45‬‬ ‫‪1.25‬‬
‫كنﺪ‪ ،‬هيوريستيك )‪ h2(n‬كوتاهترين راه حل را مي دهﺪ‪.‬‬
‫‪18‬‬ ‫‪-‬‬ ‫‪3,056‬‬ ‫‪363‬‬ ‫‪-‬‬ ‫‪1.46‬‬ ‫‪1.26‬‬
‫‪20‬‬ ‫‪-‬‬ ‫‪7,276‬‬ ‫‪679‬‬ ‫‪-‬‬ ‫‪1.47‬‬ ‫‪1.27‬‬
‫‪22‬‬ ‫‪-‬‬ ‫‪18,094‬‬ ‫‪1,219‬‬ ‫‪-‬‬ ‫‪1.48‬‬ ‫‪1.28‬‬
‫نكته كليﺪي‪ :‬هزينه راه حل بهينه يك مسأﻟه راحت‪ ،‬بيشتر از هزينه راه حل بهينه‬ ‫‪‬‬

‫‪24‬‬ ‫‪-‬‬ ‫‪39,135‬‬ ‫‪1,641‬‬ ‫‪-‬‬ ‫‪1.48‬‬ ‫‪1.26‬‬


‫در مسأﻟه واقعي نيست‪.‬‬

‫اﻟگوريتم هاي جستجوي محلي و مسائل بهينه سازي‬ ‫اﻟگوريتم هاي جستجوي محلي و مسائل بهينه سازي‬
‫‪35‬‬ ‫‪36‬‬

‫در بسياري از مسائل بهينه سازي‪ ،‬مسير راه حل اهميت نﺪارد؛ خود‬ ‫‪‬‬ ‫جستجوي محلي = استفاده از يك حاﻟت فعلي و حركت به حاﻟت هاي‬ ‫‪‬‬
‫حاﻟت هﺪف پاسﺦ مسأﻟه مي باشﺪ‪.‬‬ ‫همسايه‬
‫فضاي حاﻟت = مجموعه پيكره بنﺪي هاي»كامل«؛‬ ‫‪‬‬

‫يافتن پيكره بنﺪي بهينه‪ ،‬ماننﺪ ‪TSP‬‬ ‫‪‬‬


‫يافتن يك پيكره بنﺪي كه محﺪوديت هاي مسأﻟه را ارضاء كنﺪ‪ ،‬ماننﺪ‬ ‫‪‬‬
‫مزايا‪:‬‬ ‫‪‬‬

‫مساﻟه ‪-n‬وزير‬ ‫استفاده از حافظه بسيار كم‬ ‫◦‬

‫در چنين مواردي مي توان از اﻟگوريتم هاي جستجوي محلي بهره‬ ‫‪‬‬ ‫يافتن راه حل هاي معﻘول در اغلب موارد در فضاهاي حاﻟت بزرگ و يا نامحﺪود‬ ‫◦‬
‫گرفت‪.‬‬
‫يك حاﻟت» فعلي« را به تنهايي در نظر بگير؛ سعي كن آن را بهبود‬ ‫‪‬‬ ‫مفيﺪ براي مسائل بهينه سازي محض‬ ‫‪‬‬
‫بخشي‪.‬‬ ‫يافتن بهترين حاﻟت بر طبق تابع هﺪف )‪(objective function‬‬ ‫◦‬

‫‪٩‬‬
‫مثال‪-n :‬وزير‬ ‫تپه نوردي) يا گراديان صعودي‪/‬نزوﻟي(‬
‫‪37‬‬ ‫‪38‬‬

‫مسأﻟه ‪ n :‬وزير را در يك صفحه شطرنج ‪ n * n‬به گونه اي قرار بﺪه كه‬ ‫‪‬‬ ‫»ماننﺪ باﻻ رفتن از كوه اورست در مه غليﻆ با ضعﻒ حافظه«‬
‫هيچ دو وزيري در يك سطر‪ ،‬ستون و يا قطر قرار نگيرنﺪ‪.‬‬

‫يكي از وزيرها را در ستون خودش به گونه اي جابه جا كن كه تعﺪاد‬ ‫‪‬‬

‫برخورد ها كاهش يابﺪ‪.‬‬

‫مثال‪ :‬جستجوي تپه نوردي‬ ‫مثال‪ :‬جستجوي تپه نوردي‬


‫‪39‬‬ ‫‪40‬‬

‫‪A‬‬ ‫‪D‬‬ ‫بهينه سراسري‬ ‫‪A‬‬ ‫‪D‬‬


‫‪h=5‬‬ ‫‪h=2‬‬ ‫‪h=5‬‬
‫حالت شروع‬
‫‪S‬‬ ‫‪G‬‬ ‫‪S‬‬ ‫‪G‬‬ ‫حالت فعلي‬
‫‪h=7‬‬ ‫‪h=0‬‬ ‫‪h=7‬‬
‫‪B‬‬
‫‪h=4‬‬
‫‪E‬‬ ‫‪B‬‬
‫‪h=4‬‬
‫‪E‬‬ ‫بهترين همسايه‬
‫‪h=2‬‬
‫‪F‬‬ ‫‪F‬‬ ‫حالت همسايه‬
‫‪h=1‬‬
‫‪C‬‬ ‫‪H‬‬ ‫‪C‬‬ ‫‪H‬‬
‫‪h=5‬‬ ‫‪h=4‬‬

‫‪١٠‬‬
‫مثال‪ :‬جستجوي تپه نوردي‬ ‫مثال‪ :‬جستجوي تپه نوردي‬
‫‪41‬‬ ‫‪42‬‬

‫‪A‬‬ ‫‪D‬‬ ‫‪A‬‬ ‫‪D‬‬


‫‪h=5‬‬ ‫‪h=2‬‬

‫‪S‬‬ ‫‪G‬‬ ‫حالت فعلي‬ ‫‪S‬‬ ‫‪G‬‬ ‫حالت فعلي‬


‫‪h=7‬‬
‫‪B‬‬
‫‪h=4‬‬
‫‪E‬‬ ‫بهترين همسايه‬ ‫‪B‬‬
‫‪h=4‬‬
‫‪E‬‬ ‫بهترين همسايه‬
‫‪h=2‬‬ ‫‪h=2‬‬
‫‪F‬‬ ‫حالت همسايه‬ ‫‪F‬‬ ‫حالت همسايه‬
‫‪h=1‬‬
‫‪C‬‬ ‫‪H‬‬ ‫‪C‬‬ ‫‪H‬‬
‫‪h=5‬‬

‫مثال‪ :‬جستجوي تپه نوردي‬ ‫مثال‪ :‬جستجوي تپه نوردي‬


‫‪43‬‬ ‫‪44‬‬

‫‪A‬‬ ‫‪D‬‬ ‫‪A‬‬ ‫‪D‬‬


‫‪h=5‬‬ ‫‪h=2‬‬

‫‪S‬‬ ‫‪G‬‬ ‫حالت فعلي‬ ‫‪S‬‬ ‫‪G‬‬ ‫حالت فعلي‬


‫‪h=7‬‬ ‫‪h=0‬‬
‫‪B‬‬ ‫‪E‬‬ ‫بهترين همسايه‬ ‫‪B‬‬
‫‪h=4‬‬
‫‪E‬‬ ‫بهترين همسايه‬
‫‪h=2‬‬ ‫‪h=2‬‬
‫‪F‬‬ ‫حالت همسايه‬ ‫‪F‬‬ ‫حالت همسايه‬
‫‪h=1‬‬ ‫‪h=1‬‬
‫‪C‬‬ ‫‪H‬‬ ‫‪C‬‬ ‫‪H‬‬
‫‪h=5‬‬ ‫‪h=4‬‬
‫مينيمم محلي‬

‫‪١١‬‬
‫جستوي تپه نوردي ‪ :‬مثال ‪ ٨‬وزير‬ ‫تپه نوردي ) ادامه(‬
‫‪45‬‬ ‫‪46‬‬

‫مشكل‪ :‬بسته به حاﻟت اوﻟيه مسأﻟه ممكن است در ماكزيمم محلي گير‬ ‫‪‬‬

‫كنﺪ‪.‬‬

‫‪ ٥‬حركت‬

‫‪h = 17‬‬ ‫‪h=1‬‬

‫‪ = h‬تعﺪاد جفت وزيرهايي كه بطور مستقيم و يا بطور غير مستقيم يكﺪيگر را تهﺪيﺪ مي كننﺪ‪.‬‬

‫انواع ديگر تپه نوردي )تپه نوردي اتفاقي(‬ ‫انواع ديگر تپه نوردي )تپه نوردي اتفاقي(‬
‫‪47‬‬ ‫‪48‬‬

‫تپه نوردي اتفاقي‬ ‫‪‬‬ ‫تپه نوردي اتفاقي‬ ‫‪‬‬

‫‪ ‬انتخاب تصادفي در ميان حركت هاي رو به باﻻ‬ ‫‪ ‬انتخاب تصادفي در ميان حركت هاي رو به باﻻ‬
‫‪ ‬احتمال انتخاب مي توانﺪ متناسب با شيب حركت تغيير كنﺪ‬ ‫‪ ‬احتمال انتخاب مي توانﺪ متناسب با شيب حركت تغيير كنﺪ‬

‫‪2‬‬
‫‪3‬‬ ‫‪0‬‬
‫‪4‬‬ ‫‪A‬‬ ‫‪D‬‬ ‫‪A‬‬ ‫‪D‬‬ ‫‪A‬‬ ‫‪D‬‬ ‫‪A‬‬ ‫‪D‬‬
‫‪9‬‬ ‫‪h=5‬‬ ‫‪h=2‬‬ ‫‪0‬‬ ‫‪h=5‬‬ ‫‪h=2‬‬ ‫‪h=5‬‬ ‫‪h=2‬‬ ‫‪1‬‬ ‫‪h=5‬‬ ‫‪h=2‬‬ ‫‪0‬‬

‫‪S‬‬ ‫‪G‬‬ ‫‪S‬‬ ‫‪1‬‬ ‫‪G‬‬ ‫‪S‬‬ ‫‪0‬‬ ‫‪G‬‬ ‫‪S‬‬ ‫‪G‬‬
‫‪3‬‬
‫‪h=7‬‬ ‫‪h=0‬‬ ‫‪h=7‬‬ ‫‪h=0‬‬ ‫‪h=7‬‬ ‫‪h=0‬‬ ‫‪h=7‬‬ ‫‪h=0‬‬
‫‪5‬‬
‫‪9‬‬ ‫‪B‬‬ ‫‪E‬‬ ‫‪B‬‬ ‫‪E‬‬ ‫‪B‬‬ ‫‪E‬‬ ‫‪B‬‬ ‫‪E‬‬
‫‪h=4‬‬ ‫‪h=4‬‬ ‫‪h=4‬‬ ‫‪h=4‬‬
‫‪h=2‬‬ ‫‪h=2‬‬ ‫‪h=2‬‬ ‫‪h=2‬‬
‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬
‫‪h=1‬‬ ‫‪h=1‬‬ ‫‪h=1‬‬ ‫‪h=1‬‬
‫‪C‬‬ ‫‪H‬‬ ‫‪C‬‬ ‫‪H‬‬ ‫‪C‬‬ ‫‪H‬‬ ‫‪C‬‬ ‫‪H‬‬
‫‪h=5‬‬ ‫‪h=4‬‬ ‫‪h=5‬‬ ‫‪h=4‬‬ ‫‪h=5‬‬ ‫‪h=4‬‬ ‫‪h=5‬‬ ‫‪h=4‬‬

‫‪١٢‬‬
‫انواع ديگر تپه نوردي )تپه نوردي اوﻟين انتخاب(‬ ‫انواع ديگر تپه نوردي )تپه نوردي با شروع مجﺪد تصادفي(‬
‫‪49‬‬ ‫‪50‬‬

‫تپه نوردي اوﻟين انتخاب‬ ‫‪‬‬ ‫تپه نوردي با شروع مجﺪد تصادفي )ايﺪه‪ :‬اگر شكست خوردي دوباره سعي كن(‬ ‫‪‬‬
‫‪ ‬همان تپه نوردي اتفاقي كه حاﻟت هاي بعﺪي را به طور تصادفي توﻟيﺪ مي كنﺪ تا‬ ‫سعي مي كنﺪ كه از گير افتادن در ماكزيمم محلي اجتناب كنﺪ‬ ‫‪‬‬
‫يكي از آنها بهتر از حاﻟت فعلي باشﺪ‬
‫‪A‬‬
‫‪h=5‬‬ ‫‪h=2‬‬
‫‪D‬‬ ‫‪SBEF‬‬
‫)‪S(7‬‬ ‫)‪A(5‬‬
‫‪A‬‬
‫‪h=5‬‬ ‫‪h=2‬‬
‫‪D‬‬ ‫‪S‬‬ ‫‪G‬‬ ‫‪CBEF‬‬
‫‪h=7‬‬ ‫‪h=0‬‬

‫‪S‬‬ ‫‪G‬‬
‫)‪S(7‬‬
‫‪B‬‬
‫‪h=4‬‬
‫‪E‬‬ ‫‪H‬‬
‫‪h=2‬‬
‫‪h=7‬‬ ‫‪h=0‬‬ ‫)‪A(5‬‬ ‫)‪B(4‬‬
‫‪B‬‬ ‫‪E‬‬ ‫‪F‬‬ ‫‪CH‬‬
‫‪h=4‬‬ ‫‪h=1‬‬
‫‪h=2‬‬ ‫)‪C(5‬‬
‫‪F‬‬ ‫‪C‬‬ ‫‪H‬‬ ‫‪ADG‬‬
‫)‪B(4‬‬ ‫)‪S(7‬‬ ‫‪h=5‬‬ ‫‪h=4‬‬
‫‪h=1‬‬
‫‪C‬‬ ‫‪H‬‬
‫‪h=5‬‬ ‫‪h=4‬‬
‫)‪E(2‬‬ ‫مشكل‪ :‬معموﻻً در يك مسأﻟه در دنياي واقعي‪ ،‬قبل از حل مسأﻟه جواب بهينه را نمي دانيم !‬
‫)‪E(2‬‬ ‫)‪F(1‬‬ ‫راه حل‪ :‬تكرار تپه نوردي تا زماني كه وقت داريم‪.‬‬

‫انواع ديگر تپه نوردي )تپه نوردي با شروع مجﺪد تصادفي(‬ ‫‪Simulated Annealing‬‬
‫‪51‬‬ ‫‪52‬‬
‫محاسبه تعﺪاد متوسط مراحل در تپه نوردي با شروع تصادفي مجﺪد‬ ‫‪‬‬
‫ايده‪ :‬از ماكزيمم هاي محلي با انجام حركت هاي» بﺪ« فرار كن‬ ‫‪‬‬
‫تعﺪاد تكرارها = عكس احتمال موفﻘيت‬ ‫‪‬‬

‫تعﺪاد متوسط مراحل = تعﺪاد شكست ها * تعﺪاد متوسط مراحل شكست ‪ * ١ +‬تعﺪاد متوسط‬ ‫‪‬‬
‫اما به تﺪريج انﺪازه و تعﺪاد حركات بﺪ ) به سمت پايين( را كم كن‬
‫مراحل موفﻘيت‬
‫)‪A(2‬‬ ‫)‪D(1‬‬
‫‪h=5‬‬ ‫‪h=2‬‬
‫‪1‬‬ ‫احتمال موفقيت =‬
‫)‪S(3‬‬ ‫)‪G(0‬‬ ‫‪3‬‬
‫‪h=7‬‬ ‫‪h=0‬‬ ‫تعداد تكرارها = ‪3‬‬
‫تعداد متوسط مراحل موفقيت = ‪1‬‬
‫)‪B(2‬‬ ‫)‪E(1‬‬
‫‪h=4‬‬
‫‪h=2‬‬
‫)‪F(0‬‬ ‫تعداد متوسط مراحل شكست = ‪8‬‬
‫‪6‬‬
‫‪h=1‬‬
‫)‪C(2‬‬ ‫)‪H(0‬‬
‫‪h=5‬‬ ‫‪h=4‬‬ ‫‪3‬‬ ‫‪ 1  8‬‬
‫‪6‬‬
‫‪ 11  4‬‬

‫‪١٣‬‬
‫آنلينگ شبيه سازي شﺪه‬ ‫خصوصيات آنلينگ شبيه سازي شﺪه‬
‫‪53‬‬ ‫‪54‬‬

‫پيشروي ماننﺪ تپه نوردي مي باشﺪ‪ ،‬اما در هر مرحله حاﻟت بعﺪي به‬ ‫‪‬‬
‫در مﻘادير باﻻتر ‪ ،T‬احتمال انجام حركات بﺪ ) رفتن به سمت پايين (بيشتر است‪) .‬ماننﺪ جستجوي‬ ‫‪‬‬
‫تصادفي رفتار مي كنﺪ(‬
‫طور تصادفي انتخاب مي شود‪.‬‬
‫با كاهش ‪ T‬اين احتمال كاهش يافته و در ‪ T = 0‬اين احتمال به صفر مي رسﺪ‪ ) .‬ماننﺪ تپه نوردي‬
‫اگر حاﻟت بعﺪي انتخاب شﺪه بهتر باشﺪ‪ ،‬همواره به آن حاﻟت بعﺪي‬ ‫‪‬‬ ‫رفتار مي كنﺪ(‬
‫‪‬‬

‫خواهيم رفت‪.‬‬
‫مي توان ثابت كرد كه اگر ‪ T‬به به انﺪازه كافي آرام كاهش بيابﺪ‪ ،‬جستجوي ‪ SA‬يك پاسﺦ بهينه‬
‫در غير اين صورت‪ ،‬تنها با يك احتمال به آن حاﻟت خواهيم رفت و اين‬
‫‪‬‬
‫‪‬‬ ‫)‪ (global optimum‬با احتماﻟي كه به سمت يك ميل مي كنﺪ خواهﺪ يافت‪.‬‬
‫احتمال به صورت نمايي كاهش مي يابﺪ‪.‬‬
‫كاربردها‪:‬‬ ‫‪‬‬
‫تابع احتمال‪:‬‬
‫‪e‬‬ ‫‪ΔE/T‬‬ ‫‪‬‬ ‫حل مسائل ‪VLSI‬‬
‫برنامه ريزي‬
‫‪‬‬

‫‪ :T‬تعﺪاد مراحل بهبود راه حل‬ ‫اعمال بهينه سازي‬


‫‪‬‬
‫‪‬‬

‫‪ :ΔE‬ميزان كاهش در هر مرحله‬ ‫زمانبنﺪي خطوط هوايي‬ ‫‪‬‬

‫)جستجوي محلي دسته اي(‪Local beam search‬‬ ‫اﻟگوريتم ژنتيك‬


‫‪55‬‬ ‫‪56‬‬

‫شروع با ‪ k‬حاﻟت كه به طور تصادفي ايجاد شﺪه انﺪ‪.‬‬ ‫‪‬‬ ‫نوعي از ‪ local beam search‬به همراه تركيب جنسي‬ ‫‪‬‬

‫در هر تكرار‪ ،‬تمام فرزنﺪان براي هر ‪ k‬حاﻟت توﻟيﺪ مي شونﺪ‪.‬‬ ‫‪‬‬

‫اگر يكي از آنها حاﻟت هﺪف بود جستجو متوقﻒ مي شود و در غير اين‬ ‫‪‬‬

‫صورت از ميان ﻟيست كامل فرزنﺪان ‪ k‬تا از بهترين ها انتخاب مي‬


‫شونﺪ و مرحله باﻻ تكرار مي شود‪.‬‬

‫‪١٤‬‬
‫اﻟگوريتم هاي ژنتيك‬ ‫اﻟگوريتم هاي ژنتيك‬
57 58

.‫يك حاﻟت بعﺪي با تركيب دو حاﻟت پﺪر ايجاد مي شود‬ 

(‫ حاﻟت تصادفي )جمعيت‬k ‫شروع با‬ 


‫يك حاﻟت با يك رشته بر روي يك مجموعه محﺪود بازنمايي مي شود‬ 
( ‫) اغلب رشته اي از صفر و يك( – )كروموزوم‬
‫ مﻘادير باﻻتري را‬: (Fitness function – ‫تابع ارزيابي ) تابع برازنﺪگي‬ 
.‫براي حاﻻت بهتر ايجاد مي كنﺪ‬
‫نسل بعﺪي جمعيت با انجام اعمال زير روي جمعيت فعلي توﻟيﺪ مي‬ 
‫ تعﺪاد جفت وزير هايي كه يكﺪيگر را تهﺪيﺪ نمي كننﺪ‬: ‫تابع برازنﺪگي‬ 
:‫شود‬
(Selection) ‫ انتخاب‬ (8 * 7/2 = 28 :‫ ماكزيمم‬،‫ صفر‬:‫)مينيمم‬
(Crossover) ‫ آميزش‬ 24 / (24+23+20+11) = 31% 
(Mutation) ‫ جهش‬
23 / (24+23+20+11) = 29% 

‫اﻟگوريتم هاي ژنتيك‬ ‫اﻟگوريتم ژنتيك‬


59 60

Crossover ‫يك مثال براي عمل‬  function GENETIC-ALGORITHM( population, FITNESS-FN) returns an individual
Parent1 Parent2 Offspring input: population, a set of individuals
FITNESS-FN, a function that measures the fitness of an individual
1
repeat
new_population  empty set
loop for i from 1 to SIZE(population) do
y x  RANDOM_SELECTION(population, FITNESS_FN)
RANDOM_SELECTION(population, FITNESS_FN)
child  REPRODUCE(x,y)
if (small random probability) then child  MUTATE(child )
add child to new_population
population  new_population
until some individual is fit enough or enough time has elapsed
(3, 2, 7, 5, 2, 4, 1, 1) + (2, 4, 7, 4, 8, 5, 5, 2) = (3, 2, 7, 4, 8, 5, 5,
2) return the best individual in population, according to FITNESS-FN

١٥
‫دسته بنﺪي استراتژي هاي جستجو‬ ‫مسائل اكتشافي‬
‫‪61‬‬ ‫‪62‬‬

‫تا كنون تمام اﻟگوريتم ها ‪ offline‬بودنﺪ‬ ‫‪‬‬

‫‪ = Offline ‬راه حل قبل از اجراي آن معين است‬


‫‪ = Online ‬محاسبه و عمل بصورت يك در ميان‬
‫‪ ‬جستجوي ‪ online‬براي محيط هاي پويا و نيمه پويا ضروري مي باشﺪ‬
‫‪DFS‬‬ ‫‪Greedy‬‬ ‫‪BFS‬‬ ‫‪UCS‬‬ ‫*‪A‬‬ ‫‪A‬‬ ‫‪Best‬‬ ‫‪General‬‬
‫‪f=h‬‬ ‫‪g = depth‬‬ ‫‪First‬‬ ‫‪Search‬‬ ‫‪ ‬در نظر گرفتن تمامي امكان هاي مختلﻒ غير ممكن است‬
‫‪h=0‬‬ ‫*‪h ≤ h‬‬ ‫‪f=g+h‬‬
‫استفاده شﺪه در مسائل اكتشافي‬ ‫‪‬‬

‫‪ ‬حاﻟت ها و اعمال ناشناخته‬


‫‪ ‬مثال‪ :‬يك روبات در يك محيط جﺪيﺪ‪ ،‬يك نوزاد و ‪...‬‬

‫مسائل جستجوي ‪online‬‬ ‫مسائل جستجوي ‪online‬‬


‫‪63‬‬ ‫‪64‬‬

‫دانش عامل‪:‬‬ ‫‪‬‬ ‫هﺪف‪ :‬رسيﺪن به حاﻟت هﺪف با حﺪاقل هزينه‬ ‫‪‬‬

‫‪ ‬عمل )ها(‪ :‬ﻟيست اعمال مجاز در حاﻟت ‪s‬‬ ‫‪ ‬هزينه = كل هزينه مسير پيموده شﺪه‬
‫‪ :c(s, a, s’) ‬تابع هزينه گام ) پس از تعيين ’‪(s‬‬ ‫‪ ‬نسبت رقابتي = مﻘايسه هزينه با هزينه مسير راه حل در حاﻟتي كه فضاي‬
‫‪GOAL-TEST(s) ‬‬ ‫جستجو شناخته شﺪه باشﺪ‬
‫عامل مي توانﺪ حاﻟت قبلي را تشخيص دهﺪ‬ ‫‪‬‬
‫‪ ‬مي توانﺪ نا محﺪود باشﺪ‬
‫‪ ‬در مواردي كه عامل به طور تصادفي‬
‫اعمال قطعي هستنﺪ‬ ‫‪‬‬
‫به يك بن بست مي رسﺪ‬
‫دستيابي به هيوريستيك قابل قبول )‪h(s‬‬ ‫‪‬‬

‫ماننﺪ فاصله مانهاتاني‬ ‫‪‬‬

‫‪١٦‬‬
‫استﺪﻻل دشمنانه‬ Online ‫عامل هاي جستجوي‬
65 66

‫عامل يك نﻘشه از محيط نگهﺪاري مي كنﺪ‬ 

‫ نﻘشه بر اساس ورودي ادراكي بهنگام مي شود‬


‫ از اين نﻘشه براي انتخاب عمل بعﺪي استفاده مي شود‬

‫يك دشمن را تصور كنيﺪ كه قادر است در حين كاوش عامل فضاي‬  ‫ دقت كنيﺪ‬A* ‫به تفاوت مثﻼ با‬ 

‫حاﻟت را بسازد‬ ‫ تنها مي توانﺪ گرهي را گسترش دهﺪ كه به طور‬online ‫ يك نسخه‬


‫فيزيكي در آن قرار داشته باشﺪ‬
‫ حاﻟت بعﺪي؟‬.A ‫ و‬S ‫حاﻟت هاي مﻼقات شﺪه‬ 

‫ در يكي از فضاهاي حاﻟت شكست مي خورد‬


‫ هيچ اﻟگوريتمي نمي توانﺪ از بن بست ها در تمامي فضاهاي حاﻟت اجتناب كنﺪ‬

Online DFS-Agent
‫ مثال‬، online ‫جستجوي عمﻘي‬
67 68

function ONLINE-DFS-AGENT(s’) returns an action


input: s’, a percept identifying current state
‫مساﻟه مسير پر پيچ و خم بر روي يك‬ 
static: result, a table indexed by action and state, initially empty ٣*٣ ‫صفحه‬
unexplored, a table that lists for each visited state, the action not yet tried
unbacktracked, a table that lists for each visited state, the backtrack not yet tried s’=(1, 1) :‫حاﻟت اوﻟيه‬ 
s,a, the previous state and action, initially null
 Result ‫ و‬Unexplored(UX) ‫و‬
if GOAL-TEST(s’) then return stop Unbacktracked(UB) ...‫و‬
if s’ is a new state then unexplored[s’]  ACTIONS(s’)
if s is not null then do ‫تهي هستنﺪ‬
result[a,s]  s’
add s to the front of unbackedtracked[s’]  S ‫ و‬a‫نيز تهي هستنﺪ‬
if unexplored[s’] is empty then
if unbacktracked[s’] is empty then return stop
else a  an action b such that result[b, s’]=POP(unbacktracked[s’])
else a  POP(unexplored[s’])
s  s’
return a

١٧
‫ مثال‬،online ‫جستجوي عمﻘي‬ ‫ مثال‬،online ‫جستجوي عمﻘي‬
69 70

• GOAL-TEST((1, 1))?
– S not = G thus false
• GOAL-TEST((1,1))?
• (1,1) a new state? S’=(1,1) – S not = G thus false
– True
– ACTION((1,1)) -> UX[(1,1)]
• (1,1) a new state?
• {RIGHT,UP} – false
• s is null? • s is null?
– True (initially) – false (s = (2, 1))
– result [DOWN, (2, 1)] <- (1,1)
• UX[(1,1)] empty?
– UB[(1,1)] = {(2,1)}
– False
• POP(UX[(1,1)]) -> a • UX[(1,1)] empty?
– False
– a = UP
• s = (1,1) • a = RIGHT, s = (1,1)
• Return a • return a

‫ مثال‬،online ‫جستجوي عمﻘي‬ ‫ مثال‬،online ‫جستجوي عمﻘي‬


71 72

• GOAL-TEST((1,2))? • GOAL-TEST((1, 1))?


S’=(1,2) – S not = G thus false S’=(1,1) – S not = G thus false
• (1, 1) a new state?
• (1,2) a new state? – false
– True,
• s is null?
UX[(1,2)]={RIGHT,UP,LEFT}
– false (s = (1, 2))
• s is null? – result [LEFT, (1, 2)] <- (1, 1)
– false (s = (1,1)) – UB[(1, 1)]={(1, 2), (2, 1)}
– result [RIGHT, (1,1)] <- (1, 2) • UX[(1, 1)] empty?
– UB[(1,2)] = {(1,1)} – True
• UX[(1, 2)] empty? – UB[(1, 1)] empty? False
– False • a = b for b in result [b, (1,1)] = (1, 2)
– b = RIGHT
• a = LEFT, s =(1, 2)
• a = RIGHT, s = (1, 1) …
• return a

١٨
‫ مثال‬،online ‫جستجوي عمﻘي‬ online ‫جستجوي محلي‬
73 74

‫ مي باشﺪ‬online ‫تپه نوردي‬ 


‫ هر گره دو بار مﻼقات شﺪه است‬:‫بﺪترين حاﻟت‬ 
‫ يك حاﻟت ذخيره شﺪه است‬
‫ يك راه‬،‫يك عامل ممكن است در حاﻟي كه به پاسﺦ نزديك است‬ 
‫عملكرد بﺪ به دﻟيل وجود ماكزيمم هاي محلي‬ 
‫طوﻻني را بپيمايﺪ‬
‫ شروع مجﺪد تصادفي غير ممكن است‬
‫ مي توانﺪ اين مشكل را حل‬online ‫يك روش عميق كننﺪه تكراي‬ 
‫ حركت تصادفي باعث كاوش مي شود ) مي توانﺪ حاﻻت بسياري‬:‫راه حل‬ 
‫كنﺪ‬
(‫را به صورت نمايي توﻟيﺪ كنﺪ‬
‫ فﻘط وقتي كار مي كنﺪ كه اعمال قابل‬online ‫جستجوي عمﻘي‬ 

‫برگشت باشنﺪ‬

online ‫جستجوي محلي‬ Learning real-time A*


75 76
function LRTA*-COST (s, a, s’,H) return an cost estimate
‫ اضافه نمودن حافظه به تپه نورد‬:٢ ‫راه حل‬  if s’ is undefined the return h(s)
else return c(s, a, s’) + H[s’]
‫ از هزينه رسيﺪن به هﺪف‬H(s) ‫ذخيره بهترين تخمين فعلي‬ 
function LRTA*-AGENT (s’) return an action
‫ مي باشﺪ‬h(s) ‫ در ابتﺪا تخمين هيوريستيك‬H(s)  input: s’, a percept identifying current state
static: result, a table indexed by action and state, initially empty
(‫پس از آن بر اساس تجربه بهنگام مي شود )شكل پايين‬  H, a table of cost estimates indexed by state, initially empty
s,a, the previous state and action, initially null

if GOAL-TEST (s’) then return stop


if s’ is a new state (not in H) then H[s’]  h(s’)
unless s is null
result[a,s]  s’
H[s]  MIN LRTA*-COST (s, b, result [b, s], H)
b  ACTIONS (s)
a  an action b in ACTIONS (s’) that minimizes LRTA*-COST (s’, b, result [b, s’], H)
s  s’
return a

١٩

You might also like