Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1,20 @@
(defparameter *w* '((a (a b . 7) (a c . 9) (a f . 14))
(b (b c . 10) (b d . 15))
(c (c d . 11) (c f . 2))
(d (d e . 6))
(e (e f . 9))))
(defvar *r* nil)
(defun dijkstra-short-path (i g)
(setf *r* nil) (paths i g 0 `(,i))
(car (sort *r* #'< :key #'cadr)))
(defun paths (c g z v)
(if (eql c g) (push `(,(reverse v) ,z) *r*)
(loop for a in (nodes c) for b = (cadr a) do
(unless (member b v)
(paths b g (+ (cddr a) z) (cons b v))))))
(defun nodes (c)
(sort (cdr (assoc c *w*)) #'< :key #'cddr))

View file

@ -0,0 +1,16 @@
(defvar *r* nil)
(defun dijkstra-short-paths (z w)
(loop for (a b) in (loop for v on z nconc
(loop for e in (cdr v)
collect `(,(car v) ,e)))
do (setf *r* nil) (paths w a b 0 `(,a))
(format t "~{Path: ~A Distance: ~A~}~%"
(car (sort *r* #'< :key #'cadr)))))
(defun paths (w c g z v)
(if (eql c g) (push `(,(reverse v) ,z) *r*)
(loop for a in (sort (cdr (assoc c w)) #'< :key #'cddr)
for b = (cadr a) do (unless (member b v)
(paths w b g (+ (cddr a) z)
(cons b v))))))