遺伝的アルゴリズム(GA)をPackageを使わずにRでスクリプトを作成する例です。 基本的なGAの流れに沿って、各ステップを関数として実装し、最後にそれらを組み合わせてGAを実行するスクリプトを作成しました。 1. 目的関数の設定 まずは、GAで最適化したい目的関数を定義します。 ここでは、簡単な例として、 与えられたバイナリベクトル(0と1の配列)中の1の数を最大化する という問題を考えます。 # 目的関数:バイナリベクトル中の1の数を数える objective_function <- function ( chromosome ) { sum ( chromosome ) } 2. パラメータ設定 GAの動作を制御するためのパラメータを設定します。 # パラメータ設定 population_size <- 50 # 個体数 chromosome_length <- 20 # 染色体の長さ(バイナリベクトルの長さ) generations <- 100 # 世代数 mutation_rate <- 0.01 # 突然変異率 crossover_rate <- 0.7 # 交叉率 3. 個体群の初期化 ランダムなバイナリベクトルを生成して、初期個体群を作成します。 # 初期個体群の生成 initialize_population <- function ( population_size , chromosome_length ) { population <- list ( ) for ( i in 1 : population_size ) { # ランダムな0と1のベクトルを生成 chromosome <- sample ( c ( 0 , 1 ) , chromosome_length , replace = TRUE ) population [ [ i ] ] <- chromosome } population } population <- initialize_p...