Professional Documents
Culture Documents
Algen Nirezacho
Algen Nirezacho
Pembahasan Penjelasan
Source code Algoritma Genetika Untuk TSP
1. Tahapan Inisialisasi Populasi
Script
if (!empty($_POST)) {
Baris 198-199
define('CITY_COUNT',
7);
$population
= Baris 200-214
$_POST['population'] + 0;
if ($population > 999)
$population =
999;
$generations
=
$_POST['generations'] + 0;
$elitism
=
$_POST['elitism'] + 0;
$names = array();
$distances = array();
$initialPopulation
array();
$currentPopulation
array();
=
=
Penjelasan
Define disini berfungsi untuk
mendefinisikan dari 7 kota.
-$_POST['population'],
$_POST['generations'], dan
$_POST['elitism']
ialah
mengambil
data
dari
database tau nilai yang di
inputkan.
-Kondisi jika populasi lebih
besar dari 999 maka populasi
sama dengan 999, kemudian
generasi diambil dari form
generasi ditambah 0, elitism
diambil dari -form elitism
ditambah 0.
Variable name, distances,
initialPopulation,
currentPopulation
ialah
Mengambil
nama
kota
pengguna dan memasukkan
-Perulangan
untuk
menginisialisasi
populasi
annya ke dalam sebuah array
Membangun
inisialisasi
populasi awal
2. Seleksi
Script
$i = 0;
Penjelasan
$distanceSum = 0;
$biggest = 0;
Baris
238-240
= 241-242
Baris
251-254
$currentPopulation[$i]['metric']
=
$biggest
$currentPopulation[$i]['rate'];
$chancesSum +=
$currentPopulation[$i]['metric'];
}
for ($i = 0; $i < $population; $i++ ) {
Baris
$currentPopulation[$i]['chances']
= $currentPopulation[$i]['metric'] /
$chancesSum;
}
util::sort($currentPopulation, 'rate');
$ceilSum = 0;
for ($i = 0; $i <
$population; $i++ ) {
$currentPopulation[$i]['floor'] =
$ceilSum;
$ceilSum
+=
$currentPopulation[$i]['chances'];
}
debug($currentPopulation);
echo "</pre>\n";
if
(converging($initialPopulation))
break;
255-257
Baris
258-263
Baris
264-267
Proses
seleksi
dna
menggunakan
roulete
wheel yang terdapat dalam
fungsi rate.
Script
ini
berfungsi
membangkitkan nilai acak
yang mana terdapat fungsi
rand
dan
juga
menampilkan nilai acak dari
populasi yang telah di input.
Pada baris ke 277 dan 286
merupakan
penyeleksian
nilai
yang
akan
di
croosoverkan.
Penjelasan
Baris
292-294
5. Fitness Terbaik
Script
Penjelasan
$initialPopulation = array();
Baris
for ($j = 0; $j < $elitism; $j++) 269-272
$initialPopulation[] =
$currentPopulation[$j]['dna'];
}