Teori Kompleksitas Komputasional
Arsip Bulanan: Desember 2012
A quantitative approach for evaluating the quality of design pattern
Ulasan Paper
Identitas Paper
Travelling Salesman Problem: Aplikasi Dunia Nyata
1. Rute Transportasi
● Menemukan rute yang harus diambil untuk mengunjungi tiap lokasi dengan urutan tertentu, sehingga diperoleh jarak terpendek.
● Contoh:
– Salesman yang beroperasi door-to-door
– Band musik yang berkeliling (tour) dunia
– Pak pos yang mengantarkan banyak paket
● Dengan mengetahui rute optimal, akan banyak menghemat waktu dan biaya.
Representasi Dunia Nyata
● Node pada graf merepresentasikan lokasi geografis.
● Bobot edge merepresentasikan nilai metrik panjang jalan yang menghubungkan kedua lokasi tersebut.
2. Mesin Bor Otomatis
● Mesin bor otomatis pada rantai assembly yang bertugas untuk melubangi material.
● Kecepatan kerja tergantung pada jarak yang harus ditempuh oleh mata bor.
● TSP dapat digunakan untuk menemukan urutan pengeboran lubang yang optimal.
– node: posisi lubang yang akan dibor
– edge: jarak antar lubang
● Menghemat waktu dan meningkatkan produksi.
3. Penempatan Koneksi
Elektronik/Mekanik
● Pemasangan kabel listrik atau layout pipa di dalam gedung.
– node: lampu, saklar; kran
– edge: kabel; pipa
● Pada beberapa kasus, koneksi harus diatur agar tiap komponen tersambung membentuk
cycle.
● TSP digunakan untuk menghemat material dan memperlancar aliran.
4. Multiple Salesmen Model
● Terdapat m salesman, tiap kota harus dikunjungi sekali oleh salah satu salesman.
● Tiap salesman melakukan subtour, yang diawali dan diakhir dari kota yang sama.
● Objektif: salesman mana yang harus disewa dan subtour apa yang dipilih untuk meminimumkan total jarak dan biaya sewa.
● Model: dengan menambahkan (m – 1) node pada graf input (Lawler et al. 1985).
Tahap- tahap utama pada simulasi dengan NS-2
Terdapat tiga acuan langkah kunci dalam mendefinisikan skenario simulasi dalam NS-2, yaitu :
- 1. Tahap I : Merancang Simulasi
Tahap pertama dalam melakukan simulasi sebuah jaringan adalah untuk membuat perancangan simulasi. Pada langkah ini, perancang harus menentukan tujuan dari simulasi, konfigurasi jaringan dan asumsi-asumsi terhadap konfigurasi tersebut, perhitungan kehandalan jaringan, dan perkiraan hasil dari simulasi.
- 2. Tahap II : Melakukan konfigurasi dan menjalankan simulasi
Pada tahap ini dilakukan implementasi dari rancangan pada tahap pertama. Terdapat dua tahap yang harus dilakukan pada langkah ini, yaitu :
Tahap I : Konfigurasi Jaringan
Pada tahap ini, komponen jaringan diciptakan dan dikonfigurasi berdasarkan rancangan simulasi. Selain itu dilakukan pula penjadwalan terhadap kejadian-kejadian yang direncanakan pada proses simulasi. Parameter-parameter simulasi dikodekan dengan menggunakan bahasan pemrograman Tcl.
Tahap II : Simulasi
Pada tahap ini, proses simulasi pada perangkat lunak network simulator dilakukanberdasarkan konfigurasi yang telah dibuat pada tahap konfigurasi jaringan. Dalam proses simulasi tersebut eksekusi terhadap kejadian-kejadian yang dijadwalkan dilakukan secara berurutan. Tahap ini akan terus berjalan hingga batas waktu simulasi yang dispesifikasikan pada tahap konfigurasi jaringan tercapai.
- 3. Tahap III : Pemrosesan setelah simulasi
Fungsi pada tahap ini terdiri atas pembuktian integritas dari program dan melakukan evaluasi terhadap performansi dari jaringan yang disimulasikan. Fungsi pertama di atas mengacu pada proses debugging, sedangkan fungsi kedua dapat mengacu pada pencapaian hasil akhir simulasi dengan mengumpulkan dan melakukan kompilasi terhadap keluaran hasil simulasi. Visualisasi simulasi dapat diperoleh dengan melakukan pemrosesan terhadap trace file pada.
Arsitektur Dasar NS-2
NS-2 menyediakan sebuah perintah ns, yang merupakan sebuah perintah yang dapat dieksekusi (executable) oleh penggunanya. Dalam menjalankan simulasi pada NS-2, perintah ns tersebut membutuhkan argumen masukan. Argumen masukan yang dibutuhkan tersebut berupa nama dari skrip simulasi Tcl yang telah dipersiapkan untuk simulasi terlebih dahulu. NS-2 akan menjalankan simulasi berdasarkan skenario yang terdapat pada file skrip simulasi Tcl tersebut. Simulasi tersebut akan menghasilkan sebuah trace file yang berisikan data hasil simulasi. File tersebut akan digunakan sebagai dasar dalam menampilkan grafik hasil simulasi dan/atau menampilkan animasi simulasi. Gambar 11 menunjukkan arsitektur dari NS.
Gambar 16. Arsitektur dasar dari NS
Karakteristik sistem client server
1. Servis (layanan)
- Hubungan antara proses yang berjalan pada mesin yang berbeda
- Pemisahan fungsi berdasarkan ide layanannya.
- Server sebagai provider, client sebagai konsumen
2. Sharing resources (sumber daya)
- Server bisa melayani beberapa client pada waktu yang sama, dan meregulasi akses bersama untuk share sumber daya dalam menjamin konsistensinya.
3. Asymmetrical protocol (protokol yang tidak simetris )
- Many-to-one relationship antara client dan server. Client selalu menginisiasikan dialog melalui layanan permintaan, dan server menunggu secara pasif request dari client.
4. Transparansi lokasi
- Proses yang dilakukan server boleh terletak pada mesin yang sama atau pada mesin yang berbeda melalui jaringan. Lokasi server harus mudah diakses dari client.
5. Mix-and-Match
- Perbedaan server client platforms
6. Pesan berbasiskan komunikasi
- Interaksi server dan client melalui pengiriman pesan yang menyertakan permintaan dan jawaban.
7. Pemisahan interface dan implementasi
- Server bisa diupgrade tanpa mempengaruhi client selama interface pesan yang diterbitkan tidak berubah.
Gambar 1. Client Server System
Konsep kerja HTTP
- Saat kita membrowsing suatu alamat web memakai suatu web browser (client http), Sebuah client HTTP seperti web browser, biasanya memulai permintaan dengan membuat hubungan TCP/IP ke port tertentu di server Http ( port 80).
- Sebuah server HTTP yang mendengarkan di port tersebut menunggu client mengirim kode permintaan (request), seperti “GET /HTTP/1.1″ (yang akan meminta halaman yang sudah ditentukan), diikuti dengan pesan MIME yang memiliki beberapa informasi kode head yang menjelaskan aspek dari permintaan tersebut, diikut dengan body dari data tertentu.
Begitu menerima kode permintaan (dan pesan, bila ada), server mengirim kembali kode jawaban, seperti “200 OK”, dan sebuah pesan yang diminta, atau sebuah pesan error atau pesan lainnya,seperti 404 (Not Found), 500 (Internal Server Error)
Web Server
Web server adalah komputer yang tergabung dalam jaringan atau internet yang memberikan informasi. Web client adalah komputer yang tergabung dalam jaringan atau internet yang meminta informasi. Untuk dapat mengakses web server, web client menggunakan aplikasi yang disebut Web browser [9]. Web server merupakan software yang menjadi tulang belakang dari world wide web (www). Web server menunggu permintaan dari client yang menggunakan browser seperti Netscape Navigator, Internet Explorer, Modzilla, dan program browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format yang standar, disebut dengan format SGML (standar general markup language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser tersebut. Web server, untuk berkomunikasi dengan client-nya (web browser) mempunyai protokol sendiri, yaitu HTTP (hypertext transfer protocol).
Dengan protokol ini, komunikasi antar web server dengan client-nya dapat saling dimengerti dan lebih mudah. Para pengguna internet saat ini lebih banyak menggunakan format HTML (hypertext markup language) karena penggunaannya lebih sederhana dan mudah dipelajari. Kata HyperText mempunyai arti bahwa seorang pengguna internet dengan web browsernya dapat membuka dan membaca dokumen-dokumen yang ada dalam komputernya atau bahkan jauh tempatnya sekalipun.
Hal ini memberikan cita rasa dari suatu proses yang tridimensional, artinya pengguna internet dapat membaca dari satu dokumen ke dokumen yang lain hanya dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu. Proses yang dimulai dari permintaan webclient (browser), diterima web server, diproses, dan dikembalikan hasil prosesnya oleh web server ke web client lagi dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa yang terjadi pada tiap-tiap proses. Secara garis besarnya web server hanya memproses semua masukan yang diperolehnya dari web clientnya
Contoh soal Backtracking
Algoritme Greedy untuk Pewarnaan Graf
Masalah
Pewarnaan graf tidak berarah dengan maksimum M warna dengan syarat tidak ada simpul tetangga yang memiliki warna yang sama.
Tujuan
Setiap simpul yang bertetangga memiliki warna yang berbeda, dengan meminimumkan jumlah warna yang digunakan untuk mewarnai graf tersebut.
Elemen Algoritme Greedy
1. Himpunan kandidat: himpunan simpul yang akan diwarnai
2. Himpunan solusi: himpunan simpul yang bisa diberikan warna yang sama (simpul yang tidak bertetangga), jika tidak ada kandidat yang memenuhi maka dibuat himpunan solusi warna yang
baru. Simpul yang sudah diberikan warna dikeluarkan dari himpunan kandidat, masuk ke himpunan solusi. Proses berakhir jika himpunan kandidat kosong.
3. Fungsi seleksi: simpul diurutkan dari derajat (jumlah edge simpul) yang paling besar. Simpul dengan derajat terbesar diberikan warna dahulu.
4. Fungsi kelayakan: tidak ada simpul bertetangga yang berwarna sama.
5. Fungsi objektif: jumlah warna minimum yang digunakan.
Solusi Optimal
Solusi optimal algoritme greedy bergantung pada penomoran simpul yang mempunyai derajat sama.