グラフ表現

node

:super = ** propertied-object**
:slots arc-list image

:image &optional im

:unlink n

:remove-all-arcs **

:remove-arc a

:add-arc a

:successors **

:arc-list **

:init n &optional image

arc

:super = ** propertied-object**
:slots from to

:prin1 &optional (strm t) &rest msgs

:to **

:from **

:init from_ to_

directed-graph

:super = ** propertied-object**
:slots nodes

:write-to-dot-stream &optional (strm standard-output) result-path (title output)

write graph structure to stream as dot(graphviz) style
Args:
strm: stream class for output
result-path: list of solver-node, it’s result of (send solver :solve graph)
title: title of graph

:write-to-dot fname &optional result-path (title output)

write graph structure to dot(graphviz) file
Args:
fname: filename for output
result-path: list of solver-node, it’s result of (send solver :solve graph)
title: title of graph

:write-to-file basename &optional result-path title (type pdf)

write graph structure to various type of file
Args:
basename: basename for output (output filename is ’basename.type’)
result-path: list of solver-node, it’s result of (send solver :solve graph)
title: title of graph
type: type of output

:write-to-pdf fname &optional result-path (title (string-right-trim .pdf fname))

write graph structure to pdf
Args:
fname: filename for output
result-path: list of solver-node, it’s result of (send solver :solve graph)
title: title of graph

:write-to-png fname &optional result-path (title (string-right-trim .png fname))

write graph structure to png
Args:
fname: filename for output
result-path: list of solver-node, it’s result of (send solver :solve graph)
title: title of graph

:original-draw-mode **

change draw-mode to original mode

:current-draw-mode **

change draw-mode to latest mode

:draw-both-arc &optional (bothq :both)

change draw-mode, if true is set, draw bidirectional arc as two arcs

:draw-arc-label &optional (writeq :write)

change draw-mode, if true is set, draw label(name) of arcs

:draw-merged-result &optional (mergeq :merge)

change draw-mode, if true is set, draw result arc as red. if not, draw red arc independently

:init **

:successors node &rest args

:node name

:nodes &optional arg

:add-node n

:remove-node n

:clear-nodes **

:add-arc-from-to from to

:remove-arc arc

:adjacency-matrix **

:adjacency-list **

:adjacency-list **

:adjacency-matrix **

:remove-arc arc

:add-arc-from-to from to

:clear-nodes **

:remove-node n

:add-node n

:nodes &optional arg

:node name

:successors node &rest args

:init **

costed-arc

:super = ** arc**
:slots cost

:cost **

:init from to c

costed-graph

:super = ** directed-graph**
:slots nil

:path-cost from arc to

:add-arc-from-to from to cost &key (both nil)

:add-arc from to cost &key (both nil)

graph

:super = ** costed-graph**
:slots start-state goal-state

:add-arc-from-to from to &key (both nil)

:add-arc from to &key (both nil)

:goal-state &optional arg

:start-state &optional arg

:path-cost from arc to

:goal-test gs

:draw-merged-result &optional (mergeq :merge)

change draw-mode, if true is set, draw result arc as red. if not, draw red arc independently

:draw-arc-label &optional (writeq :write)

change draw-mode, if true is set, draw label(name) of arcs

:draw-both-arc &optional (bothq :both)

change draw-mode, if true is set, draw bidirectional arc as two arcs

:current-draw-mode **

change draw-mode to latest mode

:original-draw-mode **

change draw-mode to original mode

:write-to-png fname &optional result-path (title (string-right-trim .png fname))

write graph structure to png
Args:
fname: filename for output
result-path: list of solver-node, it’s result of (send solver :solve graph)
title: title of graph

:write-to-pdf fname &optional result-path (title (string-right-trim .pdf fname))

write graph structure to pdf
Args:
fname: filename for output
result-path: list of solver-node, it’s result of (send solver :solve graph)
title: title of graph

:write-to-file basename &optional result-path title (type pdf)

write graph structure to various type of file
Args:
basename: basename for output (output filename is ’basename.type’)
result-path: list of solver-node, it’s result of (send solver :solve graph)
title: title of graph
type: type of output

:write-to-dot fname &optional result-path (title output)

write graph structure to dot(graphviz) file
Args:
fname: filename for output
result-path: list of solver-node, it’s result of (send solver :solve graph)
title: title of graph

:write-to-dot-stream &optional (strm standard-output) result-path (title output)

write graph structure to stream as dot(graphviz) style
Args:
strm: stream class for output
result-path: list of solver-node, it’s result of (send solver :solve graph)
title: title of graph

:neighbors &optional args

:add-neighbor n &optional a

arced-node

:super = ** node**
:slots nil

:neighbor-action-alist **

:find-action n

:init &key name

solver-node

:super = ** propertied-object**
:slots state cost parent action memorized-path

:action &optional arg

:parent &optional arg

:cost &optional arg

:state &optional arg

:expand prblm &rest args

:path &optional (prev nil)

:init st &key ((:cost c) 0) ((:parent p) nil) ((:action a) nil)

solver

:super = ** propertied-object**
:slots nil

:solve-by-name prblm s g &key (verbose nil)

:solve prblm

:init **

graph-search-solver

:super = ** solver**
:slots open-list close-list

:close-list &optional arg

:open-list &optional arg

:pop-from-open-list &key (debug)

:add-object-to-open-list lst

:add-list-to-open-list lst

:clear-open-list **

:null-open-list? **

:add-to-open-list obj/list

:solve prblm &key (verbose nil)

:find-node-in-close-list n

:solve-init prblm

breadth-first-graph-search-solver

:super = ** graph-search-solver**
:slots nil

:pop-from-open-list &key (debug)

:add-object-to-open-list obj

:add-list-to-open-list lst

:clear-open-list **

:init **

depth-first-graph-search-solver

:super = ** graph-search-solver**
:slots nil

:pop-from-open-list &key (debug)

:add-object-to-open-list obj

:add-list-to-open-list lst

:clear-open-list **

:init **

best-first-graph-search-solver

:super = ** graph-search-solver**
:slots aproblem

:fn n p

:pop-from-open-list &key (debug nil)

:add-object-to-open-list obj

:add-list-to-open-list lst

:clear-open-list **

:init p

a-graph-search-solver

:super = ** best-first-graph-search-solver**
:slots nil

:hn n p

:gn n p

:fn n p &key (debug nil)

:init p