Assalamualaikum Wr Wb...

Selasa, 08 Juni 2010

djikstra

<html>
<head><title>Dijkstra Algorithms</title>
</head>

<body>
<script language = "javascript">
<!--
var nilaiacuan = 10000;
var takterdefinisi = -1;
var namaverteks = new Array('A', 'B', 'C', 'D', 'E', 'F');
var matriks = new Array(6);

function bobot(a,b)
{
return matriks[a][b];
}

function dijkstra(jumlahverteks,awal,d)
{
var posisi = new Array(jumlahverteks);
var i;
var kunjungan = new Array(jumlahverteks);
var sebelum = new Array(jumlahverteks);

for (i=0; i<jumlahverteks; i++)
{
posisi[i] = nilaiacuan;
sebelum[i] = takterdefinisi;
kunjungan[i] = false;
}

posisi[Awal] = 0;

var verteks;
for (verteks=0; verteks<jumlahverteks; verteks++)
{
var jarakterpendek = nilaiacuan, berhenti = -1;
for (i=0; i<jumlahverteks; i++)
{
if (!kunjungan[i])
{
if posisi[i] <= jarakterpendek)
{
jarakterpendek = posisi[i];
berhenti = i;
}
}
}
kunjungan[berhenti] = true;
for (i=0; i<jumlahverteks; i++)
{
if (!kunjungan[i])
{
var w = bobot(berhenti, i);
if (posisi[berhenti]+w < posisi[i])
{
posisi[i] = posisi[berhenti] + w;
sebelum[i] = berhenti;
}
}
}
}

i = d;
if (posisi[i] < nilaiacuan)
{
var lintasan = namaverteks[i];
var verteks = i;
while (verteks>0)
{
verteks = sebelum[verteks];
if (verteks >= 0)

lintasan = namaverteks[verteks] + '->' + lintasan;
{
message ("Jarak :" + posisi[i] + ' (' + lintasan + ')' + '<br>');
}
else
{
message ("Tidak ada jalur");
}
}
}

function init()
{
var x = nilaiacuan;
matriks[0] = new Array(0,2,3,x,x,x);
matriks[1] = new Array(2,0,3,6,x,x);
matriks[2] = new Array(3,3,0,3,5,x);
matriks[3] = new Array(x,6,3,0,1,3);
matriks[4] = new Array(x,x,5,1,0,1);
matriks[5] = new Array(x,x,x,3,1,0);

var awal = '<pre>';
awal = awal + 'A--2-B-6--D--3-F'+ '<br>';
awal = awal + ' \ | /| /'+ '<br>';
awal = awal + ' 3 3 3 1 1'+ '<br>';
awal = awal + ' \ | / | /'+ '<br>';
awal = awal + ' \|/ |/'+ '<br>';
awal = awal + ' C--5-E'+ '<br>';
awal = awal + '</pre>';

message(awal.replace(/(\d)+/g, '<font color="red">$1</font>'));
}

init();
var dari=0; // A
var ke = 5; // F

dijkstra(matriks.length,dari,ke);
//-->
</script>
</body>
</html>

Tidak ada komentar:

Posting Komentar