どうやら私の先生は、何かを学ぶ時間がなくても(十分な例も)先に進むべきだと信じているので、今度はフロイド-ワーシャルとワーシャルのアルゴリズムをclispで作成する方法を知る必要があります。
私がプロローグで行ったように、私の問題はグラフから隣接行列を生成することです。この場合、それはリストのリストになります。例:
((A B) (A C) (A D) (B C) (C D))
それは生成するはずです:
((0 1 1 1) (1 0 1 9) (1 1 0 1) (1 9 1 0))
私はこれを持っています:
(defun floyd(graph)
(setf l (length graph))
(setf mat (matrix l graph))
)
(defun matrix(l graph)
(setf matrix (make-array (list l l)))
(dotimes (i l)
(dotimes (j l)
(if (= i j)
(setf (aref matrix i j) 0)
(setf (aref matrix i j) ???)
)
)
)
matrix
)
どんな助けでも大歓迎です。
また、ちょっとオフトピックです。自分の質問を解決できた場合、質問に答えるために自分自身に返信する必要がありますか?