#foreach ($mutasi as $key => $value) { # list_fitness($mutasi[$key], $fitness[$key]); #} # Hasil Crossover & Mutasi di Gabungkan ke dalam Populasi $populasi = array_merge($populasi, $mutasi); $fitness = fitness($populasi, $arr_kesediaan); #echo "<h2>Seluruh Populasi sebelum Update Generasi</h2>"; #foreach ($populasi as $key => $value) { # list_fitness($populasi[$key], $fitness[$key]); #} $populasi = update_generasi($populasi, 5); $fitness = fitness($populasi, $arr_kesediaan); #foreach ($populasi as $key => $value) { # list_fitness($populasi[$key], $fitness[$key]); #} } #echo "<h2>Solusi</h2>"; $fitness_sum = fitness_sum($fitness); $fitness = fitness($populasi, $arr_kesediaan); foreach ($populasi as $key => $value) { list_fitness($populasi[$key], $fitness[$key]); } $solusi = tampilkan_solusi($populasi, $fitness); echo "<pre>"; print_r($solusi); echo "</pre>"; if (in_array(1, $fitness_sum)) { echo "<h1>Solusi Optimal</h1>"; } else { echo "<h1>Mendekati Optimal</h1>"; }
<?php $digit = 10; $population_size = 100; $generations = 100; for ($i = 0; $i < $generations; $i++) { $population = new_population($population_size); $fitness = fitness($population); $fitness = mutate($fitness); echo "Fitness: " . $fitness . "<br>"; if ($fitness == 0) { echo "Done at generation " . $i; break; } } //Creating population function new_population($size) { $population = array(); for ($i = 0; $i < $size; $i++) { $population[] = new Thing(); } return $population; } //Computing fitness function function fitness($population) { $best = 100; for ($i = 0; $i < $population; $i++) { $fitness = abs($population[$i]->digit - $digit); if ($fitness < $best) {
} ksort($offspring1); while (in_array($offspring1, $new_chromosome)) { shuffle($offspring1); } $new_chromosome[$count++] = $offspring1; ksort($offspring2); while (in_array($offspring2, $new_chromosome)) { shuffle($offspring2); } $new_chromosome[$count++] = $offspring2; } } // fitness(); $weight_vector = calculate_weight($rsize); $fitness = fitness($weight_vector, $new_chromosome, $rel_arr, $rsize); $new_data = create_generation($new_chromosome, $fitness, count($new_gen)); $data = array_merge($new_gen, $new_data); $f = array(); foreach ($data as $key => $row) { $f[$key] = $row['fitness']; } array_multisort($f, SORT_DESC, $data); //set session variables $_SESSION['data'] = $data; } ?> <!DOCTYPE html> <html>