Pemanfaatan Teori Graf Dan Otomata Dalam Masalah Riil

10

description

Problem Solving untuk permasalahan riil mengenai Teori Graf dan Otomata

Transcript of Pemanfaatan Teori Graf Dan Otomata Dalam Masalah Riil

  • Prims Algorithm adalah sebuah algoritma dalam teori graf untuk minimum spanning tree untuk sebuah graf berbobot yang saling terhubung.

    Instruksi :

    1.Tentukan terlebih dahulu satu vertex untuk titik awal

    2. Buatlah sebuah himpunan yang terdiri dari edges yang terhubung dengan vertex yang dipilih kemudian pilih edges terkecil dan yang tidak membentuk sirkuit jika ditambahkan dari himpunan tersebut

    3. Ulangi langkah ke-2 sampai semua vertex terhubung menjadi sebuah minimum spanning tree

  • afghijedcbPertama memilih edge sembarang dan disini dipilih edge AEKemudian dari vertex A dan E terdapat edge AF,AB,EJ,ED dan terpilih AF yang merupakan edge dengan bobot minimumLalu dari vertex A,Edan F terdapat edge AB,EJ,ED,FJ,FG dan terpilih AB yang merupakan edge dengan bobot minimumLalu dari vertex B,E dan F terdapat edge BC,BG,EJ,ED,FJ,FG dan terpilih BC yang merupakan edge dengan bobot minimum yaitu 4Lalu dari vertex B,C,E dan F tepilih CD yang merupakan edge dengan bobot minimum yaitu 5Selanjutnya dari vertex B,C,D,E dan F terpilih EJ karena ED dengan bobot minimum dari EJ yaitu bobot 6 akan membentuk sirkuit jika ditambahkanKemudian dari vertex B,C, D,F dan J terpilih DI yang merupakan edge dengan bobot minimum Lalu dari vertex B,C, F,H dan J terpilih CH yang merupakan edge dengan bobot minimum Kemudian dari vertex B,F,H ,I dan J terpilih BG yang merupakan edge dengan bobot minimum Maka, jumlah pematang minimum yang dilubangi agar air terkuras habis adalah : 1+2+3+4+5+7+8+9+10=49

  • Masalah largest increasingmonotonically subsequence adalah untuk mencari subsequence dari suatu urutan dimana elemen subsequence dalam urutan terurut, terkecil hingga tertinggi, dan dimana urutan tersebut dibuat sepanjang mungkin.

    Instruksi / Algoritmanya :Inputkan jumlah elemen dalam urutan (integer)Inputkan urutan angka, inputan bilangan bulat dipisahkan oleh spasiProgram mencari seluruh urutan, satu indeks dalam satu waktuProgram menemukan monoton sub urutan yang terus bertambahProgram menyimpan sub urutan ke dalam temporaryLooping dari program akan berhenti ketika sub urutan telah mencapai maksProgram menampilkan sub urutan yang terpanjang, dan posisi dari bilangan pertama sub urutan tersebut

  • /*Algoritma :1. Buat treenya2. Cari panjang maksimum LMISnya (dfs)3. Cari setiap subsequence yang sesuai dengan panjang maksimum*/#include#include#include#include

    using namespace std;typedef vector vi;

    void dfs(int v, int d);void track(int v, int d);int maxx = 0;vector tree;vi lmis;map m;bool visited[100];

  • int main(){vi in;int N,x;scanf("%d",&N); // masukkan banyak angkain.push_back(-1); // roottree.push_back(vi());for(int i=0;i
  • void dfs(int v, int d){if (visited[m[v]]) return;visited[m[v]] = 1;for(int i=0;i maxx) maxx = d;for(vi::iterator it=tree[m[v]].begin();it!=tree[m[v]].end();++it){if (!visited[m[*it]]){dfs(*it,d+1);visited[m[*it]] = 0;}}}

  • void track(int v, int d){if (visited[m[v]]) return;visited[m[v]] = 1;if (v != -1) lmis.push_back(v);if (d==maxx){for(int i=0;i
  • Ini termasuk contoh tree karena tidak terdapat siklus (aliran listrik satu arah menuju akhir rumah dan tidak timbal balik) dan semua rumah/Vertex sudah teraliri listrik. Pemilihan lajur aliran listrik berdasarkan bobot terendah / efesiensi terbesar.