StructSoftLab Community

Member Area

#Graph

Graph ဆိုတာ သင်္ချာဘာသာရပ်တခု ဖြစ်ပြီး အချက်အလက်စုစည်းမှု နည်းစံနစ်တခုလို့လည်း သတ်မှတ်ပါတယ်၊ Graph ဆိုတာနားလည်ဘို့ဆိုရင် #Set လို့ခေါ်တဲ့ အချက်အလက် (data) အစုအဝေး ကနေစပြောရင်နားလည်နိုင်ပါတယ်။

Set(အစု) ဆိုတာ အစီအစဥ်တကျ မရှိတဲ့ အချက်အလက်အစုအဝေးပါ၊ Set နဲ့ပါတ်သက်တဲ့ သီဝရီ တွေကိုတော့ လူအများသင်ဘူး ကြားဘူးကြပါတယ်၊ ဘယ်မှာ အသုံးချသလည်းဆိုတာကို တော့သိသူနည်းပါမယ်၊ ထင်ရှားတဲ့ အသုံးချမှုကတော့ #Sorting ဆိုတဲ့ အမျိုးအစားခွဲခြားရာမှာသုံးပါတယ်၊

ဥပမာ … ကျောင်းသားများ အစုအဝေးတခုမှ ဥပဒေသများအသုံးပြု၍ ကျောင်းသားများကို သီးခြားအုပ်စုများ ခွဲခြားခြင်းပါ၊ တက္ကသိုလ်ဝင်ခွင့် လျောက်သူများအနက် ဘာသာရပ်အလိုက်အမှတ် စိစစ်၍ ၎င်း၊ ဘာသာရပ်အတန်းများ၏ လက်ခံနိုင်သော အရေအတွက် အရ၎င်း၊ လျောက်ထားသူ၏ဦးစားပေး အစီအစဥ်အရ၎င်း၊ တက်ရောက်သင်ကြားခွင့်ရမည့် သင်တန်းအုပ်စုခွဲခြားပေးခြင်းသည် sorting process တခုဖြစ်ပြီး အစု သီဝရီများကို အသုံးချနိုင်သည်။

#Graph သည် #Set(အစု) တခုဖြစ်ပြီး ထူးခြားသည်မှာ အစုဝင်များအချင်းချင်းတွင် ဆက်စပ်မှု (#relation) ရှိခြင်းဖြစ်သည်၊ ဥပမာ နိုင်ငံအတွင်းရှိမြို့များသည် အစု တခုဖြစ်ပြီး မြို့များသည် လမ်းများနှင့်ဆက်ထားကြသည်၊ မြို့များသည် အစုဝင် #Nodes များဖြစ်၍ ဆက်စပ်သောလမ်းများသည် #Edges များဖြစ်ကြသည်၊ မြို့များကို nodes အနေနှင့်၎င်း လမ်းများကို မြှားပါသော edges များအနေဆွဲထားသော ပုံသည် transportation network တခုဖြစ်ပြီး Graph ကို ကိုယ်စားပြုသည်။

အလားတူ civil network system များမှာ ကုန်းလမ်းကြောင်းကွန်ရက်၊ ရေလမ်းကြောင်းကွန်ရက်၊ မဟာဓါတ်အားလိုင်းကွန်ရက်၊ မြို့ရေပေးဝေရေး ကွန်ရက်၊ ဆက်သွယ်ရေးကွန်ယက်၊ အုပ်ချုပ်မှုနှင့်စီမံခန့်ခွဲမှုကွန်ရက်… စသည်တို့ဖြစ်ကြသည်။

Graph နှင့်ပါတ်သက်သော ပြဿနာများ ဖြေရှင်းနိုင်ရန် javascript language ကိုအသုံးပြု၍ OOP Class model တခုကိုတည်ဆောက်ထားပါသည်၊ source code နှင့် နမူနာ အသုံးပြုပုံကို လည်း html file တွင်ကြည့်ရှုနိုင်ပါသည်၊ Graph ၏ အခြေခံ algorithm များလည်း ထည့်သွင်းပေးထားပါသည်၊

  1. DFS: Traversing Depth First Search Algorithm
  2. BFS: Traversing Breadth First Search Algorithm
  3. DIJKSTRA Algorythm: Minimum cost spanning algorithm.
  4. DIJKSTRA value may be any of cost, travelling distance, fuel consumption or any value like cost.
  5. MST: Minimum Spanning Tree. Prime's Algorithm.
DEMO: ကို လင့်တွင်ကြည့်ပါ၊ DEMO Source code ကို အောက်ပါလင့်တွင်ယူပါ၊ Source Code

#Javascript-Graph-Class

#Graph class implementing several algorythm such as #DFS, #BFS, #DIJKSTRA and #PRIME.

#Graph is implemented using javascript associative array. Associative array represented #adjacency list. Basic algorythms are prototyped and usage can be seen in example html file. HTML Canvas is drawn to show directed graph with nodes and arrowed edges. Some drawing #primatives are also included for canvas drawing. Arbitrary associative array can be used as nodal property and edge's property without modifying origional Graph class. Node property array must include #location and edge property need #value. User may add any other properties.

#javascript #sourcecode

https://github.com/winaungcho/Javascript-Graph-Class