VIXEP - Make it, Share it, Play it
Welcome to VIXEP CITY :vixep:!

Silahkan Log In terlebih dahulu jika anda sudah memiliki VIXEP Account, supaya anda dapat melakukan posting dan bergabung dengan VIXEP Citizen yang lainnya :D

Jika anda belum memiliki VIXEP Account, silahkan Register terlebih dahulu untuk memulai kehidupan baru di VIXEP CITY :D

- VIXEP Staff -
VIXEP - Make it, Share it, Play it
Welcome to VIXEP CITY :vixep:!

Silahkan Log In terlebih dahulu jika anda sudah memiliki VIXEP Account, supaya anda dapat melakukan posting dan bergabung dengan VIXEP Citizen yang lainnya :D

Jika anda belum memiliki VIXEP Account, silahkan Register terlebih dahulu untuk memulai kehidupan baru di VIXEP CITY :D

- VIXEP Staff -
VIXEP - Make it, Share it, Play it
Would you like to react to this message? Create an account in a few clicks or log in to continue.


VIXEP - Make it, Share it, Play it
 
HomePortalUUDLatest imagesSearchRegisterLog in

Share | 
 

 [GML] Dijkstra's Algorithm (Beta)

View previous topic View next topic Go down 
AuthorMessage
ListRA-92
Adv. Citizen A
Adv. Citizen A
ListRA-92

Lokasi : antara ada dan tiada~ :-
Status : Who says a woman has to be weak?!!
Jumlah Post : 407
Voucher Voucher : 4451
Reppo : 2
Join Date : 2010-10-09

[GML] Dijkstra's Algorithm (Beta) Empty
PostSubject: [GML] Dijkstra's Algorithm (Beta)   [GML] Dijkstra's Algorithm (Beta) EmptySun 24 Oct 2010, 23:46

Overview:

Script: hapus
Code:
// hapus(ii)
//where ii is index of vertex to be removed from unvisited vertex array q.
 ii=argument0
 for(iii=1;iii<=nq;iii+=1)
  if(q[iii]==ii)
  iv=iii;
 if(iv<=nq){
  if(iv<nq){
  for(iii=iv;iii<=nq-1;iii+=1){
    q[iii]=q[iii+1]
  }
  }
  nq-=1
 }

Script: ketemu
Code:
// ketemu(ii)
//where ii is index of vertex to be searched in vertex array q.
 ii=argument0
 ff=false
 for(iii=1;iii<=nq;iii+=1){
  if(q[iii]==ii)
  ff=true
 }
 return ff

Script: dijkstra
Code:
// dijkstra(s)
//where s is index of source vertex.
//
//Required data
//vertices_dist[i]: Path distance from i to source s
//vertices_prev[i]: Previous path vertex from vertex i
//vertices_neighbors[i]: Number of neighbors of vertex i
//vertices_neighbor[i,j]: j-th neighbor vertex index of vertex i
//vertices_distb[i,j]: Distance between vertex i and j-th neighbor vertex of vertex i
 s=argument0
 for(i=1;i<=n;i+=1){
  vertices_dist[i]=99999
  vertices_prev[i]=0
  q[i]=i
  nq=n
 }
 vertices_dist[s]=0;
 while(nq>0){
 
  d=vertices_dist[q[1]]
  u=q[1]
  if(nq>1){
  for(ii=2;ii<=nq;i+=1){
  if(vertices_dist[q[ii]]<d){
    d=vertices_dist[q[ii]];
    u=q[ii];
  }
  }
  }

  if(vertices_dist[u]==99999) break;
  hapus(u);
  if(vertices_neighbors[u]>0){
  for(i=1;i<=vertices_neighbors[u];i+=1){
    v=vertices_neighbor[u,i]
    if(ketemu(v)){
    alt=vertices_dist[u]+vertices_distb[u,i]
    if(alt<vertices_dist[v]){
      vertices_dist[v]=alt;
      vertices_prev[v]=u;
    }
    }
  }
  }
 }

Fungsi: mencari "jalan" terpendek menuju "titik" tujuan dari "titik" asal

Cara pemasangan:
- Buat tiga script baru, kasi nama hapus, ketemu, dan dijkstra
- Copas masing-masing bagian code di atas ke masing2 script tersebut
- Implementasikan script-script tersebut ke action Execute a piece of code. Namun array-array (vertices_*) harus diinisialisasi datanya terlebih dahulu.

Created by: Listra the Gunmanner :kabur:

Credits
- http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

NB: Lihat konsep dan prinsip Algoritma Dijkstra di: http://ancuracademy.forumotion.net/programming-f13/programming-dijkstra-s-algorithm-t11.htm :kabur:
Script Algoritma Dijkstra versi bahasa Pascal: http://prodig.forumotion.net/pascal-f54/pascal-dijkstra-s-algorithm-t271.htm :kabur:
Back to top Go down
https://bungatepijalan.wordpress.com
 

[GML] Dijkstra's Algorithm (Beta)

View previous topic View next topic Back to top 

 Similar topics

-
» [RGSS2] RSA Algorithm (Beta)
» [GML] RSA Algorithm
» [R2] Login System (BETA)
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
VIXEP - Make it, Share it, Play it :: Bengkel :: Script Lainnya-