Ejemplo n.º 1
0
    #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>";
}
Ejemplo n.º 2
0
Archivo: my.php Proyecto: 0-php/AI
<?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>