MyGit

satoukennta-cit/satokennga

Fork: 0 Star: 0 (更新于 2024-11-19 13:19:16)

license: MIT

Language: Common Lisp .

GitHub网址

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 ???)
多分早い

screenshot from 2018-07-12 02-44-41

特徴

手続き型を貫いたつもり。
擬似的なルーレット選択を採用している。
交叉の方法は一様交叉を実装している。

これからやること

関数名がひどいねこれ

改良点

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