kogad blog

進化計算とかプログラミングとか,勉強したことを書きます.

プログラミング

Julia の多重ディスパッチを使って木構造で表現される数式を評価する

はじめに 以前,遺伝的プログラミングを実装したとき,木構造で表現された数式を評価する処理を,再帰を使って書いたことがありました. よく考えると,多重ディスパッチも使うとスッキリ書けそうだなと思ったので,試しにやってみました. 実装 演算子,変…

遺伝的アルゴリズムでクラスタリング(GA-clustering)

はじめに この記事では遺伝的アルゴリズム(Genetic Algorithm; GA)を用いてクラスタリングを行う GA-clustering についてまとめます. 以下の論文を参考にして書いています.この記事になにかおかしい点があれば,この論文を参照してください. U.Maulik, …

すべてのビット列を出力する

ある長さのすべてのビット列のパターンが欲しい場面があったんだけど,意外とハマってしまった. 正直とても簡単だけど,怪電波を受信してしまって訳わからんことをしてしまったので,自戒の念を込めて記事にする. 長さ L のすべてのビット列が欲しければ,…

Julia で機械学習 〜 Flux.jl で XOR を学習させてみる

はじめに この記事では, Julia の機械学習用フレームワークの Flux.jl を使って,簡単なニューラルネットワークに XOR を学習させてみます. Flux.jl の詳細についてはドキュメントを参照してください.また,この記事はドキュメントを参考にしています. f…

CGA(Compact GA)〜遺伝子の分布を推定する遺伝的アルゴリズム

目次 目次 はじめに アルゴリズム 実装 参考 はじめに CGA(Compact GA)とは,確率ベクトルから個体を生成・評価し確率ベクトルを修正していくことで最適化を行う遺伝的アルゴリズム(GA)の1つです. CGA の特徴は,同時に存在する個体は2つのみであるとい…