| Paste number 96735: | defin fitness cases |
| Pasted by: | bytecolor |
| When: | 1 year, 10 months ago |
| Share: | Tweet this! | http://paste.lisp.org/+22N3 |
| Channel: | #lisp |
| Paste contents: |
(defstruct 11-MULTIPLEXER-fitness-case
input-bits ; list of t or nil
output-bit) ; t or nil
(defun define-fitness-cases-for-11-MULTIPLEXER ()
(format t "~&Fitness cases")
(let ((index 0)
(all-cases (make-array gp:*number-of-fitness-cases*)))
(loop
for i from 0 below gp:*number-of-fitness-cases*
do
(let ((fitness-case (make-11-MULTIPLEXER-fitness-case))
(bits (map 'list (lambda (c) (if (eq c #\1) t nil))
(format nil "~11,'0B" i))))
(setf (11-MULTIPLEXER-fitness-case-input-bits fitness-case) bits)
(destructuring-bind (a2 a1 a0 d7 d6 d5 d4 d3 d2 d1 d0)
bits
(setf (11-MULTIPLEXER-fitness-case-output-bit fitness-case)
(if a2 (if a1 d6 d4)
(if a2 d4 (if a1 d2 (if a2 d7 d0)))))
(setf (aref all-cases index) fitness-case)
(incf index)
(format t "~&~5,D ~{~:[0~;1~]~} ~:[0~;1~]"
index
(11-MULTIPLEXER-fitness-case-input-bits fitness-case)
(11-MULTIPLEXER-fitness-case-output-bit fitness-case)))))
all-cases))
This paste has no annotations.