satoukennta-cit/satokennga
satokennga
sbcl(common lisp)でとりあえず動くgenetic algorithmを実装してみた。
動かし方
eval-ga2に適応度関数を書けばok
(defparameter invididual 300) は個体数
(defparameter point 51) は遺伝子の要素 51で0~50まで
(defparameter gene-length 1000) 遺伝子長
(defparameter elite 1) エリート戦略の個体数
(defparameter cross-point2 2) 染色体が交差するかの確率 2で2割
(defparameter cross-point 5) 遺伝子1つに対しての一様交叉確率 5で5割
(defparameter mutation-point 1) 突然変異確率 1で1/遺伝子長
そのまま使うならquicklispを導入してclgplotを入れておかないといけません
common lisp
ターミナルを開いて
git clone https://github.com/satoukennta-cit/satokennga
cd satokennga
clisp
(load "satokennga")
(run-gene1 ???)
???のところは世代数を入力する。
(run-gene1 10)と入力すれば10世代分のgenetic algorithmを行う。
sbclでclgplotを使うにはroswellを導入しないといけません
https://github.com/roswell/roswell/wiki/Installation#building-from-source
ubuntuならソースからのビルドで導入できました。
sbcl
ターミナルを開いて
ros run
(load "satokennga.lisp")
(compile-file "satokennga.lisp")
(load "satokennga.fasl")
(run-gene1 ???)
多分早い
特徴
手続き型を貫いたつもり。
擬似的なルーレット選択を採用している。
交叉の方法は一様交叉を実装している。
これからやること
関数名がひどいねこれ
改良点
ver.2.11
突然変異確率が1/遺伝子長じゃなかったから修正
ver.2.10
エリート戦略実装
画像も貼ったよ
ver.2.00
sbclで動くようにしました。
clgplotで適応度をグラフ表示できるようにしました。
バグを修正
ver. 1.00~1.02
汚物
最近版本更新:(数据更新于 2024-09-03 01:00:39)
satoukennta-cit/satokennga同语言 Common Lisp最近更新仓库
2024-04-27 09:24:59 slime/slime
1970-01-01 00:00:00 reddit-archive/reddit1.0
1970-01-01 00:00:00 fukamachi/cl-dbi
1970-01-01 00:00:00 acl2/acl2
1970-01-01 00:00:00 oblivia-simplex/roper