巨人の肩の上に登る

先人の積み重ねた発見に基づいて、なにかを発見しようとすることを指す。

最適化問題

Clojureでナップサック問題を動的計画法で解く

ナップサック問題とは ある容量Cのナップサックと,n個の品物が与えられたとする.n個の品物は,それぞれ異なる容量Ciと価値piだとする.このとき,ナップサックの容量Cを超えない範囲で,品物の価値の総和を最大にする組み合わせを求める. 詳しくは,ナッ…

遺伝的アルゴリズムをやってみた

遺伝的アルゴリズムを Cython で実装してみたGithub. 遺伝的アルゴリズムとは ざっくりと説明すると, 初期値として,N個の個体を無作為に生成する 評価関数を用いて,上位のM個の個体を選ぶ(エリート主義) 一定の確率に従い,交差や突然変異を行い,N個…