450 likes | 532 Views
Solving problems by searching. Chapter 3, part 2 Modified by Vali Derhami. Implementation: general tree search. انتخاب گره از مجموعه لبه براي گسترش بر اساس استراتژی جستجو. بررسي رسيدن به هدف براي گره انتخابي. بسط گره انتخابي و درج در صف. Implementation: general tree search.
E N D
Solving problems by searching Chapter 3, part 2 Modified by Vali Derhami
Implementation: general tree search • انتخاب گره از مجموعه لبه براي گسترشبر اساس استراتژی جستجو. • بررسي رسيدن به هدف براي گره انتخابي. • بسط گره انتخابي و درج در صف
Implementation: general tree search • The operations on a queue are as follows: • MAKE-QUEUE(elemen,...) creates a queue with the given element(s). • EMPTY?(queue) returns true only if there are no more elements in the queue. • FlRST(queue) returns the first element of the queue. • REMOVE-FiRST (queue) returns First(queue) and removes it from the queue. • lNSERT(element, queue) inserts an element into the queue and returns the resulting queue. (We will see that different types of queues insert elements in different orders.) • Insert- ALL(elements, queue) inserts a set of elements into the queue and returns the resulting queue.
Search strategies • A search strategy is defined by picking the order of node expansion • Strategies are evaluated along the following dimensions: • completeness: does it always find a solution if one exists? • time complexity: How long does it take to find solution (number of nodes generated) • space complexity: How much memory is needed to perform the search? maximum number of nodes in memory • optimality: does it always find a optimal solution? • Time and space complexity are measured in terms of • b: maximum branching factor of the search tree حداكثر تعداد پسين هاي هر درخت • d: depth of the least-cost solution كم ترين عمق هدف. • m: maximum depth of the state space (may be ∞) طولاني ترين مسير در فضاي حالت
Uninformed search strategies • 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
Breadth-first searchجستجوي اول سطح • Expand shallowest unexpanded node گسترش دادن سطحي ترين گره هاي گسترش نيافته • Implementation: • fringe is a FIFO queue, i.e., new successors go at end
Breadth-first searchجستجوي اول سطح • Expand shallowest unexpanded node گسترش دادن سطحي ترين گره هاي گسترش نيافته • Implementation: • fringe is a FIFO queue, i.e., new successors go at end
Breadth-first searchجستجوي اول سطح • Expand shallowest unexpanded node گسترش دادن سطحي ترين گره هاي گسترش نيافته • Implementation: • fringe is a FIFO queue, i.e., new successors go at end
Breadth-first searchجستجوي اول سطح • Expand shallowest unexpanded node گسترش دادن سطحي ترين گره هاي گسترش نيافته • Implementation: • fringe is a FIFO queue, i.e., new successors go at end
Properties of breadth-first search • Complete?Yes (if b is finite) • Time? • :تعداد گره هاي توليد شدهb+b2+b3+… +bd + b(bd-1) = O(bd+1) • Space?O(bd+1) (keeps every node in memory) Optimal? Yes (if cost = 1 per step) • Space is the bigger problem (more than time) مسائل با جستجوي پيچيدگي نمايي به جز براي نمونه هاي كوچك توسط روشهاي ناآگاهانه قابل حل نيستند
Uniform-cost searchجستجوي هزينه يكنواخت • Expand least-cost unexpanded node Implementation: • fringe = queue ordered by path cost • Equivalent to breadth-first if step costs all equal Complete? Yes, if step cost ≥ εTime? # of nodes with g ≤ cost of optimal solution, O(b[1+(C*/ ε)]) where C* is the cost of the optimal solution O(b[1+(C*/ ε)]) can be much greater than O(bd) • Space? # of nodes with g≤ cost of optimal solution, O(b [(C*/ ε)])Optimal? Yes –if step cost ≥ ε
Depth-first searchجستجوي عمق اول • Expand deepest unexpanded node گسترش عميق ترين گره گسترش نيافته • Implementation: • fringe = LIFO queue, i.e., put successors at front
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front اين سه گره مشكي ازحافظه پاك مي شود.
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front
Depth-first search • Expand deepest unexpanded node Implementation: • fringe = LIFO queue, i.e., put successors at front
Properties of depth-first search • Complete? No: fails in infinite-depth spaces, spaces with loops • Modify to avoid repeated states along path • complete in finite spaces • Time?O(bm): terrible if m is much larger than d mحداكثر عمق هر گره • but if solutions are dense, may be much faster than breadth-first • Space? bm+1,O(bm), i.e., linear space! Optimal? No
Depth-first search • Back tracking search: A type of Depth- firt search • Back Traking: only one successor is generated at a time rather than all successors • Space: O(m)
Depth-limited search = depth-first search with depth limit l,i.e., nodes at depth l اگر d>l آنگاه كامل نيست حتي اگر m محدود باشد اگر d<l انتخاب شود غير بهينه است. • Time?O(b l ), • Space? bl+1,O(bl), • L=∞ => Depth firth
Depth-limited search Recursive implementation:
Iterative deepening searchجستجوي عميق شونده تكراري جستجوي اول عمق كه بهترين محدوديت عمق را با افزايش تدريجي محدوديت تا زماني كه به هدف رسد ،مي يابد. مزاياي هر دو روش اول عمق و جستجوي سطح اول.
Iterative deepening search • Number of nodes generated in a depth-limited search to depth d with branching factor b: NDLS = 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 b1 + (d-1)b2 + … + 3bd-2 +2bd-1 + 1bd • For b = 10, d = 5, • NIDS = 50 + 400 + 3,000 + 20,000 + 100,000 = 123,450 • NBFS = 10 + 100 + 1,000 + 10,000 + 100,000 + 999,990 = 1,111,100. • Overhead = (123,456 - 111,111)/111,111 = 11%
Properties of iterative deepening search • Complete? Yes • Time?d b1 + (d-1)b2 + … + bd = O(bd) • Space?O(bd) • Optimal? Yes, if step cost = 1
Bidirectional searchجستجوي دو طرفه • انجام جستجوي همزمان يكي از حالت اوليه به سمت جلو و ديگري از هدف به سمت عقب • توقف وقتي كه دو جستجو به هم مي رسند. • Time: O(bd/2)+ O(bd/2)= O(bd/2) << O(bd) • Space: O(bd/2) • مهمترين ضعف هم اين نياز به فضا است. • Complete and optimal (for uniform step costs) if both searches are breadth-first; other combinations may sacrifice completeness, optimality, or both.
Repeated states • Failure to detect repeated states can turn a linear problem into an exponential one!
انواع مساله 1- مسايل تك حالته • در محيط هاي قطعي و كاملا رويت پذير Deterministic, fully observable • عامل اطلاعات كامل (Global information)از محيط و اثر عمليات خود را مي داند. 2- مسايل بدون حس گر (منطبق) (چند حالته هم ناميده مي شود.) • در محيطهاي قطعي • عامل وضعيت فعلي خود را نميداند ولي اثر عمليات خود را مي داند. 3- مسايل اقتضايي Contingency • محيط نيمه رويت پذير و يا غير قطعي • عامل اثر عمليات خود را نمي داند. • اگر نايقيني ناشي از اقدام عامل ديگر مساله را تخاصمي (Adversarial) گويند. 4- مسايل اكتشافي exploration Problem • حالتها و اقدامات ناشناخته
Example: vacuum world • Single-state, start in #5. Solution?
Example: vacuum world • Single-state, start in #5. Solution?[Right, Suck] • Sensorless, start in {1,2,3,4,5,6,7,8}e.g., Right goes to {2,4,6,8} Solution?
Example: vacuum world • Sensorless, start in {1,2,3,4,5,6,7,8}e.g., Right goes to {2,4,6,8} Solution?[Right,Suck,Left,Suck] • Contingency • Nondeterministic: Suck may dirty a clean carpet • Partially observable: location, dirt at current location. • Percept: [L, Clean], i.e., start in #5 or #7Solution?
Example: vacuum world • Sensorless, start in {1,2,3,4,5,6,7,8}e.g., Right goes to {2,4,6,8} Solution?[Right,Suck,Left,Suck] • Contingency • Nondeterministic: Suck may dirty a clean carpet • Partially observable: location, dirt at current location. • Percept: [L, Clean], i.e., start in #5 or #7Solution?[Right, if dirt then Suck]