Lecture Notes: IDA*


1. Questions on A* or HW so far?

2. IDA* Intro

3. Examples

4. IDA* Pseudo Code

DF-Aux(Node, Cutoff)
  if f(Node) > Cutoff then return f(Node)
  if  solution(Node) then return Node
  Min = 
  for each Child of Node do
    Temp = DF-Aux(Child, Cutoff)
    if solution(Temp) then return Temp
    if Temp < Min then Min = Temp
  return Min


IDA*(Root)
  Cutoff = h(Root)
  loop
    Temp = DF-Aux(Root, Cutoff)
    if solution(Temp) then return Temp
    if Temp =  then return failure
    Cutoff = Temp

5. Resultant Complexity if a tree

O(BD) time worst case

O(D) or O(BD) space

Problem: how to prevent repeats of previous nodes? (Check parent? Check all ancestors?) How to quantify the time penalty? [Open Question for non-ancestors] E.g.:

6. Backquote (Shorthand for list/quote/append. Often used with macros).

           'Foo º 'Foo
           '(A ,B C) º (list 'A B 'C)
           
           (setq A '(Foo Bar))
           '(A ,A ,@A) --> (A (Foo Bar) Foo Bar)
             º (append (list 'A) (list A) A)
           
           '(,@(remove-if #'numberp Expression) 
         ,(apply (first Expression) (remove-if-not #'numberp Expression)))

Table of contents

1. - Questions on A* or HW so far?
2. - IDA* Intro
3. - Examples
4. - IDA* Pseudo Code
5. - Resultant Complexity if a tree
6. - Backquote (Shorthand for list/quote/append. Often used with macros).