4.4.1. תיאור האלגוריתם

נתונים:

  1. מצב התחלתי plot:\[{S_i}\].
  2. פרדיקט לבדיקת מצב סופי: plot:\[G\left( s \right) = TRUE \Leftrightarrow s \in {S_g}\].
  3. פונקצית מעבר plot:\[succ:S \to {2^S}\] המקבלת מצב ומחזירה קבוצת מצבים.
  4. פונקצית מחיר plot:\[Cost:\left\{ {\left\langle {{s_1},{s_2}} \right\rangle |{s_1} \in
      S,{s_2} \in succ\left( {{s_1}} \right)} \right\} \to {\mathbb{R}^ + }\] החסומה מלמטה.
  5. פונקציה יוריסטית plot:\[h:S \to {\mathbb{R}^ + }\] המקבלת מצב ומחזירה הערכה של מחיר המסלול המינימלי למצב כלשהו בקבוצת מצבים המטרה.

כמו כן, נגדיר כל צומת על ידי החמישיה Node(state, parent, g, h, f).



ASTAR(state)
  OPEN plot:\[
 \leftarrow \] (node(state, NIL, 0, h(state), h(state)))
  While OPEN ≠ ( )
    ; Take the next node to process, mark it is closed.
    next plot:\[ \leftarrow \] pop(OPEN)
    push (next, CLOSE)

    ; If we reached the target, print the way to it and
    ; finish. We knows that it is the shortest way we can find.
    if goalp(next.state) then return(trace(next))

    ; For each son s of the selected node
    for s in succ(next.state)

      ; Calculate the cost of s
      new-cost plot:\[
 \leftarrow \] next.g+cost(next.state, s)

      ; Check if we already found it earlier,
      ; and also we didn't pass it yet (Not in close list)
      old-node plot:\[ \leftarrow \] find-state(s, OPEN)

      if old-node ≠ {} then

        ; OK, we found it earlier. Let check if we found
        ; better path to that node. If yes, we need to reenter
        ; it to the open list, according to its new cost
        if old-node.g > new-cost then
          old-node.g plot:\[ \leftarrow \] new-cost; old-node.f plot:\[ \leftarrow \] old-node.g+old-node.
         old-node.parent plot:\[ \leftarrow \] next; delete(old-node, OPEN);
          ; Reinsert old node according to new f
          insert(old-node, OPEN, f)
        end

      ; If the node is already in the closed list, and also
      ; we find better cost for it, we should take it
      ; back to the OPEN list
      else old-node plot:\[ \leftarrow \] find-state(s, CLOSE)
      if old-node ≠ {} then
      if old-node.g > new-cost then
        old-node.g plot:\[ \leftarrow \] new-cost; old-node.f plot:\[ \leftarrow \] old-node.g+old-node.
        old-node.parent plot:\[ \leftarrow \] next; delete(old-node, CLOSE);
        insert(old-node, OPEN, f)
      end

      ; If we are here, it means that we just reached that node
      ; in the first time. insert it to the OPEN list as new node
      else
        insert(node(s, next, new-cost, h(s), h(s)+new-cost), OPEN, f)
      end;
  end;
  return FAIL



מאת: אוריה

אבל הוא עדיין לא נפתח...

מאת: אוריה

סליחה, זה ב-9

והקובץ יורד בסדר
מאת: ניר

אני עם אקרובט 8.1.1

הקובץ נפתח בלי שום בעייה
מאת: shoshan

אני מציע שתנסה שוב ב-acrobat 8

כי זה עובד לי בסדר גמור ב-Acrobat 9 וב-Foxit...

יכול להיות שהקובץ ירד לך לא טוב או חתוך או קטן מידי ?
מאת: אוריה

ב-5 זה נפתח

מאת: אוריה

לא נפתח

לא נפתח ב Acrobat Reader 8, הוא כותב שהקובץ לא נתמך או שהוא ניזוק.
שיתוף:
| עוד