Jumat, 04 Juli 2014
MATSim (Multi Agent Transport Simulation)
Taufiq Ramadhan (56410837)
Imam F (53410454)
Agnes Niati (50410282)
Rachman Aji (55410494)
Probo Adi N. (58410915)
4IA08
1 PENDAHULUAN
Menurut tradisi, perencanaan transportasi model simulasi cenderung makroskopik atau mesoscopic (misalnya de Palma & Marchal, 2002; PTV, 2008). Alasan untuk hal ini adalah akses ke data agregat saja (misalnya jumlah lalu lintas, matriks komuter, dll) dan keterbatasan dalam hardware komputasi untuk menghitung dan menyimpan perhitungan rinci. Keterbatasan ini telah berubah dalam beberapa dekade terakhir.
Kinerja perangkat keras komputer telah terus-menerus tumbuh dan masih tumbuh-sementara biaya mesin tetap tetap. Untuk perencanaan transportasi, perkembangan yang relevan dalam komputer hardware adalah:
Kapasitas cepat random access memory (RAM) telah meningkat secara dramatis.
Prosesor hardware multi memungkinkan seseorang untuk melakukan komputasi paralel tanpa menggunakan (perawatan intensif) cluster komputer.
arsitektur Memori bersama memungkinkan cepat akses on-demand ke memori fisik untuk sewenang-wenang sejumlah proses.
Dalam cara yang sama, data yang tersedia yang digunakan dalam perencanaan transportasi yang semakin rinci dan kompleks. Contoh yang baik untuk itu adalah survei orang diary (misalnya Hanson & Burnett, 1982; Axhausen et al, 2002; Schonfelder et al, 2002), dan analisis perilaku transportasi individu berdasarkan data GPS (mis. Serigala et al, 2004). Oleh karena itu, tuntutan yang dibuat untuk mengangkut perangkat lunak perencanaan semakin kompleks, juga. Micro-simulasi menjadi semakin penting dalam simulasi lalu lintas, analisis lalu lintas, dan peramalan lalu lintas. Beberapa keunggulan dibandingkan model konvensional adalah:
penghematan Komputasi bila dibandingkan dengan perhitungan dan penyimpanan besar array multidimensi probabilitas diperlukan dalam metode lain.
rentang yang lebih besar pilihan output, dari statistik keseluruhan untuk informasi tentang masing-masing sintetis wisatawan dalam simulasi.
pemodelan eksplisit dari proses pengambilan keputusan individu.
Titik terakhir ini penting karena tidak kendaraan yang menghasilkan lalu lintas; itu adalah orang yang mendorong kendaraan. Orang tidak hanya menghasilkan lalu lintas; sebaliknya mereka mencoba untuk mengelola hari mereka (minggu, hidup) dengan cara yang memuaskan. Mereka pergi bekerja untuk mendapatkan uang, mereka pergi hiking untuk kesehatan dan kesenangan mereka, mereka mengunjungi kerabat mereka untuk kesenangan atau karena mereka merasa berkewajiban untuk melakukannya, mereka berbelanja untuk memasak makan malam yang menyenangkan di rumah, dan sebagainya. Karena tidak semua ini dapat dilakukan di lokasi yang sama, mereka melakukan perjalanan, yang menghasilkan lalu lintas. Untuk merencanakan hari yang efisien, banyak keputusan harus dibuat oleh setiap orang. Mereka memutuskan di mana untuk melakukan kegiatan, modus yang memilih untuk mendapatkan dari satu lokasi ke lokasi lain, di mana memesan dan di mana waktu kegiatan harus dilakukan, dengan siapa untuk melakukan kegiatan tertentu, dan sebagainya. Beberapa keputusan dibuat jam (hari, bulan) di muka sementara lain dibuat secara spontan sebagai reaksi terhadap keadaan tertentu. Selain itu, banyak keputusan menginduksi keputusan lainnya. Oleh karena itu, penting untuk model horizon waktu lengkap para pengambil keputusan.
Model simulasi transportasi harus mampu menerapkan (setidaknya sebagian dari) perorangan tersebut Keputusan cakrawala dan menetapkan hasil untuk model lalu lintas, karena merupakan hari lengkap jadwal (dan keputusan belakang) yang menghasilkan lalu lintas. Bab ini menyajikan microsimulation seperti itu, disebut MATSim-T (multi Agen Transportasi Simulasi Toolkit), diimplementasikan sebagai Aplikasi Java, dapat digunakan pada sistem operasi apapun. Pekerjaan yang merupakan bagian dari proyek penelitian MATSim (http://matsim.org). Dalam bab sini fokus terletak pada desain dan implementasi masalah serta kinerja komputasi dari berbagai bagian dari sistem. Atas dasar terpadu (harian) optimasi permintaan individu dalam MATSim-T, sistem ini diperpanjang seperti bahwa ia menyediakan penanganan fleksibel berbagai macam data input; diperpanjang model dan algoritma; antarmuka yang sederhana untuk model-model baru dan algoritma; (dis) agregasi untuk berbagai resolusi spasial; interface kuat untuk model pihak ketiga, program, dan kerangka kerja; tak terbatas jumlah individu; dan sebuah antarmuka mudah digunakan untuk menangani elemen input data baru.
Bab ini meletakkan fokus pada modul. Ini menganalisis bagaimana modul tertentu mempengaruhi fungsi toolkit serta bagaimana mereka mempengaruhi kecepatan komputasi keseluruhan sistem yang lengkap. Bab ini dimulai dengan gambaran MATSim-T dan kerja terkait (Bag. 2). Ini diikuti dengan bagian tentang modul dari bagian iteratif MATSim-T: lalu lintas aliran simulasi (Bag. 3), skor dan rencana modul pemilihan (Bag. 4), kembali perencanaan (Bag. 5), dan akhirnya pandangan yang komprehensif pada seluruh proses berulang (Bag. 6). Sec. 7 sketsa permintaan komputasi generasi permintaan awal. Meskipun proses yang berjalan pada awal penelitian, beberapa aspek itu lebih mudah untuk menjelaskan setelah bagian berulang dari MATSim ditata. Bab ini ditutup dengan gambaran dari proses pembangunan saat ini yang akan meningkatkan sistem dalam ukuran, kecepatan dan fungsionalitas.
2 Teori Yang Dikemukakan
2.1 MATSim-T
Istilah agen multi-mikro-simulasi digunakan dengan arti yang berbeda dalam penelitian transportasi. Seringkali, kata "mikroskopis" digunakan untuk menggambarkan suatu "model mobil berikut" (misalnya Wiedemann, 1974) yang juga digunakan dalam beberapa produk komersial (misalnya VISSIM: PTV, 2008). Di MATSim, yang Istilah ini digunakan untuk menggambarkan bahwa setiap orang dimodelkan berisi pengaturan benar-benar individu. Setiap orang dimodelkan sebagai agen, dan jumlah semua agen harus mencerminkan secara statistik demografi perwakilan daerah. Permintaan dimodelkan dan dioptimalkan secara individual untuk setiap agen-tidak hanya untuk beberapa bagian dari permintaan seperti keberangkatan waktu dan pilihan rute, tapi sebagai gambaran dinamis temporal yang lengkap dari permintaan harian dari setiap agen.
Permintaan agen disebut rencana di MATSim. Gambar 1 menunjukkan contoh dari satu rencana harian agen, ditulis dalam XML (W3C, 2008). Struktur ini tetap sama selama semua pemodelan dan simulasi permintaan. Secara khusus, tugas permintaan lalu lintas tidak hanya mengambil perjalanan tunggal ke rekening, tetapi lengkap harian rencana-termasuk kegiatan-adalah dieksekusi. Dengan demikian istilah micro-simulasi berkaitan dengan mikroskopis (individual) permintaan dari masing-masing orang dalam skenario. Untuk menghasilkan rencana individu untuk setiap agen dengan MATSim seperti yang ditunjukkan pada Gambar 1 perlu untuk menyediakan antarmuka pengguna sehingga ia / dia mampu menggeneralisasi dan sekering data yang tersedia untuk daerah bunga, sehingga dataset umum infrastruktur, populasi, dan permintaan dapat dibuat. Untuk struktur proses penciptaan permintaan / optimasi, MATSimT dapat dibagi menjadi empat bagian seperti yang ditunjukkan pada Gambar 2:
Proses pembuatan Skenario
Proses pemodelan permintaan individu Awal
proses optimasi permintaan Iteratif (termasuk eksekusi permintaan, penilaian, dan replanning)
Analisis Post-proses
MATSim-T adalah pendekatan modular, semua bagian yang ditunjukkan pada Gambar 1 (FUSION, IIDM, EXEC, SKOR dan replanning) diberikan sebagai antarmuka sehingga pengguna dapat plug-in mereka modul sendiri. Dua proses pertama bergantung pada data yang tersedia dari daerah bunga. Sejak kualitas,kuantitas, dan resolusi data dapat bervariasi banyak dari satu skenario yang lain, penciptaan skenario dan langkah-langkah proses pemodelan permintaan awal dapat bervariasi juga. Oleh karena itu MATSim-T menyediakan dalam intinya hanya representasi data yang dihasilkan dari infrastruktur (jaringan dan fasilitas) dan Populasi termasuk permintaan individual masing-masing orang, ditambah parser dan penulis untuk data XML representasi. Untuk memperjelas fungsi dari FUSION atau IIDM modul, berikut ini adalah contohnya: Mari kita asumsikan informasi penggunaan lahan sekitar daerah bunga diberikan berdasarkan resolusi kota, dan bahwa jumlah tempat kerja diberikan untuk masing-masing kota. pengguna mengimplementasikan modul MATSim-FUSION yang mem-parsing informasi ini dan menciptakan satu fasilitas (termasuk jumlah tempat kerja) per kota. Hal ini memberikan perkiraan kasar dari fasilitas kerja dan tempat-tempat kerja yang ada di wilayah tersebut. Mari sekarang kita asumsikan bahwa pada tahap berikutnya dari proyek pengguna memiliki akses ke data rinci termasuk bangunan fasilitas kerja. sistem memungkinkan seseorang untuk menambahkan modul lain yang menggantikan fasilitas kerja yang sudah dibuat dengan yang baru informasi dan mendistribusikan jumlah tempat kerja dengan fasilitas kerja yang lebih realistis dari yang daerah. Sementara fasilitas yang dihasilkan dari kedua situasi yang cocok untuk MATSim-T untuk memulai ketiga langkah dari proses keseluruhan (optimasi permintaan; Gambar 1), versi kedua dari fasilitas memberikan hasil yang lebih rinci. Meskipun dua modul dijelaskan diimplementasikan untuk skenario tertentu, mereka dapat menjadi bagian dari toolkit MATSim dan oleh karena itu, pengguna lain dengan kebutuhan yang sama mampu menggunakan kembali modul untuk / skenario sendiri nya.
rencana ...
1932 1933 1934 1947
1934 1933
...
Penjelasan mengenai permintaan orang sintetis (termasuk data demografis) untuk hari lengkap. Agen dengan ID 393241 rencana untuk meninggalkan rumah-terletak pada link 58-nya untuk melakukan perjalanan ke tempat kerja. Dia menggunakan rute terkemuka sepanjang 4 node (5 link) dengan waktu tempuh yang diharapkan dari 25 menit. Agen tetap bekerja selama 9 jam, kemudian perjalanan kembali ke rumah dengan waktu tempuh yang diharapkan 14 menit. Permintaan tidak hanya menggambarkan bagian tunggal hari, tetapi urutan lengkap untuk agent 393241 terus-menerus dalam waktu. - Sumber: Balmer, 2007. Gambar 2: Struktur Proses MATSim-T Pasca-proses analisis bagian dari MATSim-T (bagian keempat dari Gambar 2) bekerja dengan cara yang sama, dengan perbedaan bahwa sekarang input data berikut MATSim standar (MATSim format XML jaringan, fasilitas, populasi dan permintaan) dan karena itu bisa digunakan untuk setiap skenario yang diberikan. Proses optimasi permintaan berulang (bagian ketiga dari Gambar 1) adalah, dengan cara, inti dari MATSim-T. Sementara semua langkah-langkah lain dijalankan sekali dalam urutan yang didefinisikan oleh pengguna, bagian tiga mengoptimalkan permintaan untuk setiap traveler sintetis individu dalam skenario sedemikian rupa sehingga mereka menghormati kendala (jaringan, fasilitas) dari skenario dan interaksi dengan semua lain pelaku wilayah itu. Biasanya, metode relaksasi digunakan untuk mencari keadaan setimbang. Untuk pilihan rute Wardrop ekuilibrium (Wardrop, 1952) menggambarkan suatu keadaan santai. Tapi yang paling penting, tidak hanya rute dioptimalkan di MATSim-T. Sebaliknya, harian merencanakan rute-termasuk lengkap, kali, lokasi, urutan kegiatan, jenis kegiatan, dan sebagainya-tiap agen dioptimalkan. Setiap agen mencoba untuk menjalankan hari dengan utilitas tertinggi. Utilitas dari rencana harian tergantung pada kendala infrastruktur (kapasitas jalan, membuka times toko-toko, dll) dan pada hari rencana agen lain dalam sistem. Ini berarti bahwa utilitas efektif dari rencana harian dapat hanya ditentukan oleh interaksi dari semua agen. Ini adalah tempat di mana co-evolusi algoritma (Holland, 1992; Palmer et al, 1994) ikut bermain. Sebuah algoritma evolusioner pada dasarnya terdiri dari langkah-langkah berikut:
Inisialisasi P (t = 0) - Membuat populasi individu pada waktu t = 0
Skor P (t) - Hitung "kebugaran"
Pilih P ’(t) dari P (t) - "survival of the fittest"
Duplikat dan memodifikasi rencana harian
Membuat rencana tersebut rencana relevan untuk iterasi berikutnya; meningkatkan iterasi counter demi satu
Goto 2.
Hal ini penting untuk dicatat bahwa "individu" dari algoritma evolusioner adalah rencana sedangkan pelancong sintetis adalah entitas yang co-berevolusi. Gambar 2 (c) menunjukkan optimasi lingkaran ini. Untuk setiap langkah-langkah yang tercantum di atas, modul khusus tersedia. Pelaksanaan rencana harian (EXEC) ditangani oleh arus lalu lintas yang sesuai modul simulasi, di mana individu berinteraksi satu sama lain, yaitu individu mungkin menghasilkan kemacetan di jalan-jalan penggunaan yang tinggi. Modul SKOR menghitung utilitas dari semua rencana harian dieksekusi. Rencana dengan utilitas tinggi (high "kebugaran") bertahan hidup, sementara rencana dengan rendah utilitas (misalnya disebabkan oleh waktu tempuh lama karena kemacetan lalu lintas) yang akhirnya dihapus. Penciptaan dan variasi rencana harian (replanning) didistribusikan di antara yang berbeda modul yang khusus pada berbagai aspek-aspek tertentu dari rencana harian. Modifikasi dalam rencana agen tunggal benar-benar independen pada perencanaan ulang dari semua agen lain rencana.
2.1.1 Fitur
Daftar berikut menunjukkan fitur kunci dari MATSim:
Agent-Based, Multi-Modal Simulasi Harian Mobility Perilaku. MATSim mampu mensimulasikan tra mobil pribadi? C dan transportasi umum secara rinci besar, dan mampu mendukung mode tambahan (misalnya pejalan kaki atau pengendara sepeda) juga. Simulasi biasanya mencakup satu hari penuh, dan perilaku mobilitas sejumlah besar orang tunggal (\ agen ") disimulasikan secara bersamaan. Hal ini memungkinkan untuk melacak agen tunggal melalui sepanjang hari mereka, dari rumah untuk bekerja, untuk liburan atau belanja dan kembali ke rumah.
Cepat, bahkan untuk Skenario Besar. MATSim mampu mensimulasikan skenario dengan beberapa agen juta pada jaringan dengan ratusan ribu ruas jalan. Yang Anda butuhkan adalah, komputer desktop cepat saat ini dengan memori yang cukup. Bahkan dalam kasus tersebut, MATSim sering hanya membutuhkan waktu beberapa menit untuk simulasi satu hari penuh.
Analisis Serbaguna dan Simulasi output. Selama simulasi, MATSim mengumpulkan beberapa nilai kunci dari simulasi dan output mereka untuk memberikan gambaran singkat dari keadaan saat simulasi. Di antara hasil lainnya, dapat membandingkan tra simulasi? C data dunia nyata dari stasiun menghitung, menampilkan hasil interaktif di Google Earth. Selain itu, MATSim menyediakan output rinci dari simulasi, yang dapat dengan mudah diurai oleh aplikasi lain untuk membuat analisis khusus Anda sendiri.
Pendekatan modular. MATSim memungkinkan untuk penggantian mudah atau penambahan fungsi. Hal ini memungkinkan Anda untuk menambahkan algoritma Anda sendiri untuk agen-perilaku dan plug mereka ke MATSim, atau menggunakan simulasi transportasi sendiri saat menggunakan fitur replanning MATSim itu.
Open Source & Multi-Platform. MATSim didistribusikan di bawah Gnu Public License (GPL), yang berarti bahwa MATSim dapat didownload dan digunakan secara gratis. Selain itu, Anda mendapatkan kode sumber lengkap yang dapat Anda memodifikasi dalam batasan tertentu (lihat lisensi untuk lebih jelasnya). Ditulis di Jawa, MATSim berjalan pada semua sistem operasi utama, termasuk Linux, Windows dan Mac OS X.
Pengembangan aktif dan Penggunaan serbaguna dari MATSim. Para peneliti dari beberapa lokasi yang saat ini bekerja pada MATSim. Pengembangan inti terjadi di seluruh dunia, dengan e? Orts dipimpin oleh Berlin Institute of Technology (TU Berlin), Swiss Federal Institute of Technology (ETH) di Zurich, serta Senozon, sebuah perusahaan swasta yang didirikan oleh dua mantan mahasiswa PhD . Pengembangan tambahan (sejauh kita menyadari) saat ini berlangsung di Afrika Selatan, Jerman, Kanada serta tempat-tempat lain di seluruh dunia. Ini pemerataan pembangunan memastikan bahwa MATSim tidak hanya bekerja untuk satu skenario / konteks, tetapi dapat disesuaikan dengan banyak Skenario berbeda-beda.
2.2 Transportasi
Transportasi adalah pemindahan manusia atau barang dari satu tempat ke tempat lainnya dengan menggunakan sebuah kendaraan yang digerakkan oleh manusia atau mesin. Transportasi digunakan untuk memudahkan manusia dalam melakukan aktivitas sehari-hari. Di negara maju, mereka biasanya menggunakan kereta bawah tanah (subway) dan taksi. Penduduk di sana jarang yang mempunyai kendaraan pribadi karena mereka sebagian besar menggunakan angkutan umum sebagai transportasi mereka. Transportasi sendiri dibagi 3 yaitu, transportasi darat, laut, dan udara. Transportasi udara merupakan transportasi yang membutuhkan banyak uang untuk memakainya. Selain karena memiliki teknologi yang lebih canggih, transportasi udara merupakan alat transportasi tercepat dibandingkan dengan alat transportasi lainnya.
Di dalam transportasi, terdapat unsur-unsur yang terkait erat dalam berjalannya konsep transportasi itu sendiri. Unsur-unsur tersebut adalah sebagai berikut:
Manusia yang membutuhkan
Barang yang dibutuhkan
Kendaraan sebagai alat/sarana
Jalan dan terminal sebagai prasarana transportasi
Organisasi (pengelola transportasi)
Sedangkan manfaat transportasi menjadi tiga klasifikasi yaitu:
Manfaat Ekonomi
Manfaat Sosial
Manfaat Politis
Manfaat Kewilayahan
Jenis-jenis transportasi terbagi menjadi tiga yaitu:
Transportasi darat: kendaraan bermotor, kereta api, gerobak yang ditarik oleh hewan (kuda, sapi,kerbau), atau manusia. Moda transportasi darat dipilih berdasarkan faktor-faktor seperti jenis dan spesifikasi kendaraan, jarak perjalanan, tujuan perjalanan, ketersediaan moda, ukuran kota dan kerapatan permukiman, faktor sosial-ekonomi.
Transportasi air (sungai, danau, laut): kapal,tongkang, perahu, rakit.
Transportasi udara: pesawat terbang.
Transportasi udara dapat menjangkau tempat – tempat yang tidak dapat ditempuh dengan moda darat atau laut, di samping mampu bergerak lebih cepat dan mempunyai lintasan yang lurus, serta praktis bebas hambatan.
transportasi publik adalah seluruh alat transportasi di mana penumpang tidak bepergian menggunakan kendaraannya sendiri. Transportasi publik umumnya termasuk kereta dan bis, namun juga termasuk pelayanan maskapai penerbangan, feri, taxi, dan lain-lain. Konsep transportasi publik sendiri tidak dapat dilepaskan dari konsep kendaraan umum. Pengertian kendaraan umum berdasarkan Keputusan Menteri Perhubungan Nomor. 35 Tahun 2003 Tentang Penyelenggaraan Angkutan Orang di Jalan dengan kendaraan umum yaitu Kendaraan umum adalah setiap kendaraan bermotor yang disediakan untuk dipergunakan oleh umum dengan dipungut bayaran baik langsung maupun tidak langsung.
2.3 Simulasi
Simulasi adalah suatu teknik numerik untuk melakukan percobaan – percobaan pada suatu komputer digital, Yang melibatkan bentuk – bentuk fungsi matematika dan logika tertentu untuk menjelaskan tingkah laku dan struktur suatu sistem nyata yang kompleks. Simulasi dapat digunakan untuk merancang, menganalisa dan menilai suatu sistem.
2.3.1 Klasifikasi Simulasi
Klasifikasi simulasi dalam tiga dimensi:
Model Simulasi Statik vs. Dinamik
Model statik: representasi sistem pada waktu tertentu. Waktu tidak berperan di sini.
Contoh: model Monte Carlo.
Model dinamik: merepresentasikan sistem dalam perubahannya terhadap waktu.
Contoh: sistem conveyor di pabrik.
Model Simulasi Deterministik vs. Stokastik
Model deterministik: tidak memiliki komponen probabilistik (random). Model stokastik: memiliki komponen input random, dan menghasilkan output yang random pula.
Model Simulasi Kontinu vs. Diskrit
Model kontinu: status berubah secara kontinu terhadap waktu. Contoh : gerakan pesawat terbang.
Model diskrit: status berubah secara instan pada titik-titik waktu yang terpisah. Contoh : jumlah customer di bank.
2.3.2 Terapan Simulasi
Contoh-contoh area aplikasi simulasi:
Sistem antrian
Perancangan dan analisis sistem manufacturing.
Evaluasi persyaratan hardware dan software untuk sistem komputer.
Evaluasi sistem senjata atau taktik militer yang baru.
Perancangan sistem komunikasi dan message protocol.
Perancangan dan pengoperasian fasilitas transportasi, mis. jalan tol, bandara, rel kereta, atau pelabuhan.
Evaluasi perancangan organisasi jasa, mis. rumah sakit, kantor pos, atau restoran fast food.
Analisis sistem keuangan atau ekonomi.
2.4 Bahasa Pemrograman Java
Java adalah bahasa pemrograman berorientasi objek murni yang dibuat berdasarkan kemampuan-kemampuan terbaik bahasa pemrograman objek sebelumnya (C++, Ada, Simula). Java diciptakan oleh James Gosling, developer dari Sun Microsystems pada tahun 1991.Karakteristik Java antara lain :
Sederhana (Simple)
Berorientasi Objek (Object Oriented)
Terdistribusi (Distributed)
Interpreted
Robust
Aman (Secure)
Architecture Neutral
Portable
Performance
Multithreaded
Dinamis
Macam-macam Java 2 Software Developer Kit (J2SDK) antara lain :
J2SE (Java 2 Standard Edition)
J2EE (Java 2 Enterprise Edition)
J2ME (Java 2 Micro Edition)
Cara kerja Java dapat digambarkan sebagai berikut :
Java mempunyai platform yaitu :
Java Virtual Machine (Java VM)
Java Application Programming Interface (Java API)
figure java3.png
Figure 2.3 Java Platform
Struktur program java yaitu :
/** * Program Java untuk menuliskan kata Hello, world! * HelloWorld.java */
// Deklarasi kelas
class HelloWorld {
// Deklarasi fungsi yang mewakili program utama
public static void main(String args[])
{
System.out.println("Hello, world!");
}
}
Output Program
2.4.1 Kata Kunci Simpanan (Keywords)
Kata kunci simpanan adalah identifier khusus yang disimpan oleh bahasa Java untuk mengendalikan bagaimana program didefinisikan. Kata kunci ini digunakan untuk mengenali tipe-tipe, pengubah, dan mekanisme pengaturan aliran program. Kata kunci ini hanya dapat digunakan untuk fungsi tertentu dan tidak dapat digunakan sebagai identifier nama suatu variabel, class dan method. Sampai denga Versi 1.0 terdapat 59 kata kunci seperti terlihat dalam tabel
2.4.2 Identifier
Digunakan untuk nama class, method, dan variabel. Suatu variabel dapat berupa urutan tertentu huruf (besar atau kecil), angka, garis bawah, dan tanda dolar. Tidak boleh diawali oleh angka dan bersifat case sensitive. Kelompok Java mengikuti aturan penamaan identifier untuk semua method public dan variabel instans dengan huruf awal kecil dan menandai bagian kata selanjutnya dengan huruf besar, misalnya nextItem, currentValue, getTimeOfDay. Untuk variabel provate dan lokal identifier akan berupa huruf kecil semua dikombinasikan dengan garis bawah, misalnya next_val, temp_val. Untuk variabel final yang mewakili suatu konstanta, digunakan huruf besar semua, misalnya TOK_BRACE, DAY_FRIDAY.
2.4.3 Literal
Besaran konstanta pada Java dihasilkan dengan menggunakan literal yang mewakilinya. Setiap literal merepresentasikan nilai suatu tipe, dimana tipe itu sendiri menjelaskan bagaimana sifat nilai tersebut dan bagaimana penyimpanannya.
2.4.4 Tipe Data
Java merupakan contoh bahasa yang strongly typed language. Hal ini berarti bahwa setiap variabel harus memiliki tipe yang sudah dideklarasikan. Terdapat 8 tipe primitif, 6 diantaranya adalah tipe bilangan ( 4 tipe integer, 2 tipe floating point), 1 tipe karakter char, digunakan mengawa-sandi (encode) Unicode, dan 1 tipe boolean.
2.4.4.1 Integer Tipe Tempat yang Diperlukan Jangkauan (inclusive)
int 4 byte - 2.147.483.648 sampai 2.147.483.647 (hanya lebih dari 2 miliar)
short 2 byte - 32.768 sampai 32.767
long 8 byte - 9.223.372.036.854.775.808L sampai 9.223.372.036.854.775.807L
byte 1 byte - 128 sampai 127
2.4.4.2 Floating Point Tipe Tempat Yang Dibutuhkan Jangkauan
float 4 byte secara kasar 3,40282347E+38F ( 7 digit desimal signifikan)
double 8 byte secara kasar 1,79769313486231570E+308 (15 digit desimal siignifikan)
2.4.4.3 Char
Tipe char menggunakan tanda kutip tunggal untuk menyatakan suatu char. Tipe char juga menyatakan karakter dalam upaya mengawal-sandi unicode, yang merupakan kode 2-byte. Karakter unicode paling sering dinyatakan dalam istilah skema pengkodean hexadesimal yang dimulai dari \u0000 sampai \uFFFF. Selain karakter bebas (escape \u yang menyatakan karakter unicode di Java terdapat juga
\b backspace \u0008
\t tab \u0009
\n linefeed \u000a
\r carriage
return
\u000d
\ double quote \u0022
\ single quote \u0027
\\ a backslash \u005c
2.4.4.4 Boolean
Tipe boolean memiliki nilai true dan false. Tipe ini digunakan untul logical testing dengan menggunakan operator relasional.
2.5 Java Applet
Applet berjalan pada Browser atau pada halaman WEB menggunakan HTML Java Applet adalah sebuah class yang dapat diaktifkan pada Web Browser seperti Internet explorer. Java Applet dienkapsulasi sebagai bagian dari HTML
2.5.1 Langkah-langkah membuat applet.
Membuat sebuah class Applet.
Membuat dokumen html yang berasosiasi dengan class Applet yang telah dibuat pada langkah pertama.
2.6 Framework
Framework adalah kerangka kerja. Framework juga dapat diartikan sebagai kumpulan script (terutama class dan function) yang dapat membantu developer/programmer dalam menangani berbagai masalah-masalah dalam pemrograman seperti koneksi ke database, pemanggilan variabel, file,dll sehingga developer lebih fokus dan lebih cepat membangun aplikasi.
Bisa juga dikatakan Framework adalah komponen pemrorgaman yang siap re-use kapan saja, sehingga programmer tidak harus membuat skrip yang sama untuk tugas yang sama. Misalkan saat anda membuat aplikasi web berbasis ajax yang setiap kali harus melakukan XMLHttpRequest, maka Xajax telah mempurmudahnya untuk anda dengan menciptakan sebuah objek khusus yang siap digunakan untuk operasiAjax berbasis PHP. Itu adalah salah satu contoh kecil, selebihnya Framework jauh lebih luas dari itu.
2.6.1 Macam-macam framework
Framework PHP
CakePHP
CodeIgniter (CI)
Symphony
Zend
Yii
Framework Javascript
JQuery
Mootools
Framework Ruby
Ruby on Rails (ROR)
2.6.2 Manfaat Framework
Manfaatnya dapat membantu kerja developer dalam membangun aplikasi sehingga aplikasi bisa selesai dalam waktu yang singkat.
Penerapan Design Patterns memudahkan dalam rancangan, pengembangan dan pemeliharaan sistem
Stability dan Reliability, aplikasi yang kita bangun lebih stabil dan handal karena berbasis pada framework yang sudah teruji stabilitas dan kehandalannya.
Coding Style konsisten, memudahkan dalam membaca kode dan dalam menemukan bugs
Security Concern, framework mengantisipasi dan memasang perisai terhadap adanya berbagai masalah keamanan yang mungkin timbul
Dokumentasi, framework dapat mendisiplinkan kita untuk menulis dokumentasi untuk apa yang kita tulis
Contoh:
Di dalam Framework tersedia library “Pagination“ misalnya, yang mana dalam class tersebut terdapat fungsi yang memberikan nilai balik(return) link ke halaman berikutnya, sebelumnya, awal, akir dll. nah dalam pengembangan system kita bisa menggunakan class Pagination ini untuk semua proses yang membutuhkan adanya Pagination. ini adalah sebagian kecil dari contoh library yang disediakan oleh framework.
Namun framework sendiri kelebihan utamanya bukan dari seberapa banyak library yang di sediakan, meski hal itu tentunya akan sangat membantu proses development. Kelebihan yang bisa kita ambil dari framework adalah kerangka kerja dari framework tersebut dalam menyelesaikan modul-modul yang dikembangkan sehinga mengeluarkan sebuah metode pekerjaan yang lebih effisien, lebih rapi, lebih bersifat general, dan lebih homogen.
2.6.3 Kelebihan dari Framework
Pertama kelebihan dengan adanya framework akan lebih mempermudah memahami mekanisme kerja dari sebuah aplikasi. Ini tentunya akan sangat membantu proses pengembangan system yang dilakukan secara team. Semua anggota di wajibkan untuk memahami dari pola kerja framework tersebut selebihnya anggota team hanya mempelajari proses bisnis yang di kehendaki oleh system untuk kemudian di tuangkan kedalam framework tersebut. Dalam artian setiap orang harus mempunyai metode yang sama dalam menyelesaikan applikasi tersebut.
Kedua dengan memakai framework akan menghemat waktu pengerjaan suatu applikasi, karena setiap anggota sudah memiliki sebuah acuan dalam menyelesaikan modul. Dalam hal ini misalnya semakin banyak library yang ada semakin mempercepat anggota untuk menemukan solusi karena tidak setiap anggota harus membuat Class atau fungsi untuk kasus yang relatif sama.
Berikutnya Team tidak akan di susahkan dengan adanya perputaran anggota dalam artian jika ada anggota yang tidak bisa melanjutkan lagi pekerjaannya anggota yang lain bisa meng-cover kekosongan tersebut. Bayangkan jika setiap modul yang dikembangkan mempunyai logika yang berbeda tentunya akan memakan waktu yang banyak untuk proses pemahan akan system tersebut.
Kesekian-kalinya dengan adanya framework akan menjaga integritas dari modul-modul yang dikembangkan. Tentunya hal ini juga tergantung dari metode yang dikembangkan sendiri. framework hanya membantu dan memungkinkan/mempermudah proses integrasi, tidak berarti dengan adanya framework system otomatis akan ter-integrasi. Dan masih ada kelebihan-kelebihan lain yang dimiliki oleh framework.
2.6.4 Kekurangan Framework
Para programmer mungkin akan menemukan batasan-batasan ketika merancang aplikasi menggunakan framework
Kemungkinan akan menambah biaya development apabila framework yg digunakan kurang terdokumentasi dan kurang di support
Performa dan kecepatan eksekusi
Kesimpulan : Dengan adanya framework akan sangat membantu proses penyelesaian pekerjaan didukung oleh analisa sistem yang baik dan pertimbangan sumberdaya yang ada.
2.6.5 Contoh Framework
JQuery
JQuery adalah framework sekaligus kumpulan script-script yang berguna untuk membuat web menjadi lebih interaktif, terlihat powerfull dan animasi yang bagus. Jquery ditulis dengan menggunakan javascript sebagai sebuah file tunggal. JQuery ini memiliki keunggulan pluginable,artinya JQuery bisa ditambahi dengan berbagai plugin. Sayangnya JQuery ini cukup sulit untuk dipelajari, paling tidak harus mengenal javascript dan konsep OOP.
Ajax
Dengan menggunakan ajax framework anda tidak perlu lagi membuat script ajax. Tetapi apa yang dimaksud dengan ajax framework? adalah lingkungan pengembangan aplikasi ajax, didalamnya berisi sejumlah fungsi yang bisa digunakan untuk membangun aplikasi ajax. misalkan fungsi request data, mengirim data melalui form, meload halaman dll, tergantung skala dan tujuan pembuatan ajax framework tersebut. Adabanyak ukuran ajax framework, dari yang paling sederhana sampai rumit. Jadi dengan menggunakan ajax framework tersebut anda HANYA menggunakan fungsi yang sudah tersedia untuk mengembangkan web anda. Nantinya aplikasi yang dihasilkan akan sesuai dengan kemampuan framworknya. Jika ajax framework yang anda pilih hanya bisa mengirim data lewat form, dan merequest data, maka aplikasi anda hanya mampu menjalankan aksi tersebut, kecuali anda merubah ajax frameworknya
Ada banyak keuntungan menggunakan ajax framework, diantara menghemat pikiran dan tenaga, kenapa? anda tidak perlu pusing-pusing hanya karena membuat rutin-rutin ajax, serahkan saja pada ajax framework. Anda tinggal menggunakannya saja. Dan yang perlu diperhatikan ajax framework biasanya sudah dites, artinya kemungkinan ada bug kecil, jika nanti ditemukan, anda tinggal mengupdate ajax frameworknya saja. Keuntungan lain, aplikasi yang anda buat lebih terstruktur, stabil dan mudah dikembangkan.
Selain kelebihan ada juga kekurangan. Jika anda tidak pintar memilih ajax framework, bukan kecepatan aplikasi yang anda dapatkan, malah aplikasi anda terasa lambat, berat untuk diakses, kenapa? sebagian ajaxframework memiliki ukuran yang besar dengan jumlah baris kode yang banyak. file dengan banyak baris tersebut di-include-kan pada halaman awal, maka dibutuhkan waktu khusus untuk mendownload file ajaxframework tersebut. Saya sempat ragu ketika menggunakan ajax framework yang melebihi 100kb, karena saya pikir aplikasi saya menjadi lebih lambat. Lebih bagus memang, tetapi bagi saya tujuan penggunakanajax sendiri adalah untuk mempercepat proses browsing, kalau menggunakan ajax framework malah lebih lambat, ya sama saja.
CodeIgniter
Figure 2.6 Codeigniter
CodeIgniter (CI) sebuah framework untuk programmer yang ingin membangun website dengan PHP. CI merupakan langkah cepat untuk membuat sebuah website daripada membangun sebuah website dengan alur koding yang biasa. Dengan mempaketkan library-library, alur pemrograman akan terstruktur dan logika bisnis/proses akan lebih mudah dimengerti oleh developer/programmer lain. CI telah mempaketkan itu semua sehingga mampu meminimalisirkan jumlah koding yang dibangun.
CodeIgniter dilisensikan dibawah lisensi Apache/BSD style open source license, ini berarti kita dapat menggunakannya sesuai dengan keinginan kita. Sekarang ini PHP sudah mencapai versi ke 5, meskipun begitu masih banyak orang yang tetap menggunakan PHP versi 4, oleh sebab itu CodeIgniter dikembangkan agar tetap kompatibel dengan PHP versi 4 dan dapat dijalankan pada PHP versi 5.Secara default CodeIgniter hanya berjalan dengan me load beberapa pustaka saja, dengan demikian hanya membutuhkan resource yang sedikit sehingga ringan dan cepat dijalankan. Pustaka-pustaka lain yang nantinya akan digunakan bisa di load sesuai dengan kebutuhan.CodeIgniter menggunakan lingkungan pengembangan dengan metode Model View Controller (MVC) yang membedakan antara logika dan presentasi/tampilan, sehingga tugas bisa lebih mudah dipecah-pecah. Ada bagian yang khusus membuat tampilan dan bagian yang membuat core programnya.
Salah satu hal yang bisa dijadikan barometer apakah sebuah aplikasi benar-benar dikembangkan atau tidak bisa dilihat dari dokumentasinya. Dalam hal ini CodeIgniter sangat luar biasa, terdapat dokumentasi yang sangat lengkap tentang semua hal yang ada dalam CodeIgniter. Mulai dari langkah instalasi sampai dokumentasi fungsi-fungsi nya tersedia. Adanya dokumentasi sangat memudahkan bagi pemula dalam mempelajari lingkungan pengembangan website dengan CodeIgniter.
CodeIgniter dilengkapi dengan berbagai pustaka siap pakai untuk berbagai kebutuhan, misalnya saja koneksi database, email, session dan cookies, keamanan, manipulasi gambar dan banyak lagi.
2.7 API (Application Program Interface)
Dalam contoh program sederhana di atas, dibutuhkan setidaknya ribuan system calls per detik. Oleh karena itu Kebanyakan programmer membuat aplikasi dengan menggunakan Application Programming Interface(API). Dalam API itu terdapat fungsi-fungsi/perintah-perintah untuk menggantikan bahasa yang digunakan dalam system calls dengan bahasa yang lebih terstruktur dan mudah dimengerti oleh programmer. Fungsi yang dibuat dengan menggunakan API tersebut kemudian akan memanggil system calls sesuai dengan sistem operasinya. Tidak tertutup kemungkinan nama dari system calls sama dengan nama di API.
Keuntungan memprogram dengan menggunakan API adalah:
Portabilitas. Programmer yang menggunakan API dapat menjalankan programnya dalam sistem operasi mana saja asalkan sudah ter- install API tersebut. Sedangkan system call berbeda antar sistem operasi, dengan catatan dalam implementasinya mungkin saja berbeda.
Lebih Mudah Dimengerti. API menggunakan bahasa yang lebih terstruktur dan mudah dimengerti daripada bahasa system call. Hal ini sangat penting dalam hal editing dan pengembangan.
System call interface ini berfungsi sebagai penghubung antara API dan system call yang dimengerti oleh sistem operasi. System call interface ini akan menerjemahkan perintah dalam API dan kemudian akan memanggil system calls yang diperlukan.
Untuk membuka suatu file tersebut user menggunakan program yang telah dibuat dengan menggunakan bantuan API, maka perintah dari user tersebut diterjemahkan dulu oleh program menjadi perintah open(). Perintah open() ini merupakan perintah dari API dan bukan perintah yang langsung dimengerti oleh kernel sistem operasi. Oleh karena itu, agar keinginan user dapat dimengerti oleh sistem operasi, maka perintah open() tadi diterjemahkan ke dalam bentuk system call oleh system call interface. Implementasi perintah open() tadi bisa bermacam-macam tergantung dari sistem operasi yang kita gunakan.
Cara Memakai API
Dilakukan dengan mengimpor package/kelas import java.util.Stack;
Ada beberapa kelas bernama sama dipackage yang berbeda, yaitu :
import salah satu dan gunakan nama lengkap untuk yang lain, atau gunakan nama lengkap semua kelas
Ada tiga jenis Bahasa Pemrograman Java Application Programming Interface (API):
inti resmi Java API, yang terdapat dalam JDK atau JRE, dari salah satu edisi dari Java Platform. Tiga edisi dari Java Platform adalah Java ME (Micro edition), Java SE (Standard edition), dan Java EE (Enterprise edition).
Resmi opsional API yang dapat didownload secara terpisah. Spesifikasi API ini didefinisikan sesuai dengan Spesifikasi Jawa Request (JSR), dan kadang-kadang beberapa API ini kemudian dimasukkan dalam API inti dari platform (contoh yang paling terkenal dari jenis ini adalah swing).
API tidak resmi, yang dikembangkan oleh pihak ketiga, tetapi tidak berkaitan dengan JSRs apapun.
Pihak-pihak ketiga dapat dengan bebas mengimplementasikan spesifikasi JSR API resmi (bahkan untuk API inti dari bahasa), memberikan bahwa mereka menyesuaikan diri dengan Teknologi Kompatibilitas Kit (TCK) untuk JSR ini (yang TCK adalah paket tes yang memeriksa kesesuaian dari implementasi untuk JSR). The result of this freedom is that many official APIs have more implementations than the Sun’s Reference implementation (RI). Hasil dari kebebasan ini adalah bahwa banyak API resmi memiliki lebih implementasi daripada Matahari pelaksanaan Referensi (RI). Anda dapat menggunakan kelas Java dan API untuk mengakses konten di berbagai server konten.
The DB2 Content Management pusat informasi yang menyediakan dokumentasi API berikut:
Kelas Java dan API
JavaBeans
C + + kelas dan API
Tabel kontrol sistem
Perpustakaan pengguna server keluar
DB2 Content Manager aturan sistem konektor
Berikut ini adalah sebagian daftar Application Programming Interface (API) untuk Java Programming Language.
Java Platform, Standard Edition (Java SE)
Bundled 1.1.1 API (bagian dari standar download)
Opsional 1.1.2 API (download terpisah)
Java Platform, Enterprise Edition (Java EE)
Bundled 1.2.1 API (bagian dari standar download)
Opsional 1.2.2 API (download terpisah)
Java Platform, Micro Edition (Java ME)
Unofficial API (Dirilis oleh pihak ketiga)
2.8 Object Oriented Programming
Object oriented programming adalah sebuah metode pemrograman dimana pengembang aplikasi tidak hanya mendefinisikan variabel yang berisi state dari sebuah struktur data, tetapi juga mendefinisikan fungsi untuk menunjukkan behavior yang diaplikasikan pada struktur data. Dalam hal ini, struktur data merupakan objek. Suatu objek dapat saling berkomunikasi satu sama lain dengan menggunakan fungsi yang ada di dalamnya tanpa perlu mengetahui internal state masing-masing objek (data encapsulation) (Webopedia, n.d).
Salah satu keuntungan dari object oriented programming dibandingkan procedural programming adalah memungkinkan pengembang aplikasi untuk membuat fungsi yang tidak perlu diubah ketika sebuah objek dengan tipe berbeda ditambahkan. Seorang pengembang aplikasi hanya perlu membuat objek baru yang mewarisi beberapa fungsi atau tipe data dari objek yang sudah ada (inheritance). Hal ini membuat object oriented programming mudah dalam pengembangannya (Webopedia, n.d).
Menurut Bennett, McRobb, dan Farmer (2006), dalam bukunya “Object-Oriented System Analysis And Design Using UML”, terdapat beberapa konsep dalam object oriented programming, yaitu :
Objek
Objek terdiri dari state dan behavior. Sebuah objek menyimpan state pada variabel dan menunjukkan behavior melalui fungsi. Fungsi bertugas mengubah internal state dan melayani komunikasi antara satu objek dengan objek lainnya (Oracle, n.d).
Class
Class adalah sekumpulan objek yang memiliki state dan behavior yang sama.
Instance
Instance adalah objek tunggal yang memiliki nilai state yang secara keseluruhan berbeda dengan objek lain.
Generalisasi
Generalisasi adalah konsep yang mengelompokkan state dan behavior yang sama dari beberapa class menjadi class tersendiri. Berikut adalah ciri-ciri dari generalisasi :
Inheritance
Mekanisme untuk mengimplementasikan generalisasi dalam bahasa pemrograman berorientasi objek. Class yang memiliki state dan behavior dari hasil pengelompokkan disebut superclass sedangkan class yang memiliki state dan behavior yang unik karena pengelompokkan disebut subclass.
Operasi transitif
Operasi yang menurunkan state dan behavior dari superclass ke subclass.
Disjoint nature
Aspek dimana class harus memiliki state dan behaviour yang unik dari class lain yang satu level.
Message passing
Message passing adalah komunikasi yang dilakukan objek untuk meminta informasi tertentu dari objek lain dengan menggunakan fungsi dari objek lain.
2.9 Unified Modeling Language ( UML )
Unified modeling language adalah bahasa yang digunakan untuk memodelkan sebuah sistem sehingga dapat mengambil keputusan dan memahami tentang sistem yang harus dibangun (Hermawan, 2004).
Menurut Whitten dan Bentley (2007), UML menawarkan sembilan diagram yang dikelompokkan ke dalam lima perspektif yang berbeda untuk memodelkan sebuah sistem. Lima perspektif tersebut adalah :
Use-Case Model Diagrams
Diagram yang ada dalam kelompok ini adalah use-case diagram ( diagram yang menggambarkan fungsi sistem dari sudut pandang pengguna ).
Static Structure Diagrams
Diagram yang ada dalam kelompok ini adalah class diagram ( diagram yang menggambarkan struktur objek dalam sistem ) dan object diagram ( diagram yang menggambarkan objek instance yang aktual ).
Interaction Diagrams
Interaction diagram memodelkan sebuah interaksi yang terdiri dari sekumpulan objek, hubungannya, dan pesan yang dikirimkan diantara objek tersebut. Diagram yang ada dalam kelompok ini adalah sequence diagram ( diagram yang menggambarkan interaksi antar objek dimana fokus pada timing dari pesan ) dan communication diagram ( diagram yang menggambarkan interaksi antara objek dengan network format )
State Diagrams
Diagram yang ada dalam kelompok ini adalah statechart diagram ( diagram yang mengilustrasikan daur hidup objek ) dan activity diagram ( diagram yang menggambarkan aliran dari sebuah use case).
Implementation Diagrams
Diagram yang ada dalam kelompok ini adalah component diagram ( diagram yang menggambarkan bagaimana code program dipecah menjadi komponen-kompnone dan ketergantungan diantara komponen tersebut) dan deployment diagram ( diagram yang menggambarkan arsitektur secara fisik dari hardware dan software dalam sistem )
2.9.1 Use Case Diagram
Use case adalah deskripsi fungsi sistem dari sudut pandang pengguna. Use case diagram digunakan untuk menunjukkan fungsi yang sistem akan sediakan dan menunjukkan pengguna mana yang akan berkomunikasi dengan sistem. Use case diagram ini dikembangkan oleh Jacobson et al. (1992), dan judul buku dimana use case diagram ini ditampilkan adalah A Use Case Driven Approach (Bennett, McRobb, dan Farmer, 2006).
Menurut Bennett, McRobb, dan Farmer (2006), use case diagram menunjukkan tiga aspek dalam sistem yaitu:
Actors
Actors mewakili peran yang dimiliki orang, sistem lain, atau device ketika berkomunikasi dengan use cases tertentu dalam sistem dimana satu actor dapat mewakili beberapa orang atau pekerjaan.
Use cases
Sebuah use case menggambarkan sebuah fungsi yang dilakukan oleh sistem untuk mencapai tujuan pengguna dimana digambarkan dengan bentuk eclipse.
Batasan sistem atau subsistem
Batasan yang mengelilingi fungsi-fungsi dalam sistem atau subsistem dimana berbentuk persegi panjang.
2.9.2 Class Diagram
Class diagram adalah sebuah diagram yang menggambarkan objek-objek dari sistem dan hubungan antara objek tersebut (Bennett, McRobb, dan Farmer, 2006).
Menurut Bennett, McRobb, dan Farmer (2006), class diagram memiliki istilah-istilah penting yang perlu diketahui, yaitu :
Attributes
Attributes adalah data yang menampilkan karakteristik utama dari sebuah class. Oleh karena itu, setiap objek dari class memiliki attribute yang dimiliki oleh class tersebut.
Association
Sebuah association adalah hubungan antara dua class yang berbeda dimana ditandai dengan nama hubungan, garis lurus yang menghubungkan kedua class tersebut, dan tanda panah yang membantu pemahaman ketika melihat class diagram.
Multiplicity
Multiplicity adalah istilah yang digunakan untuk menerangkan batasan pada jumlah objek yang dapat berpartisipasi. Multiplicity merefleksikan aturan-aturan suatu perusahaan yang merupakan batasan pada cara aktivitas bisnis berjalan. Notasi multiplicity dapat berupa kisaran nilai seperti 0..*, 0..3, 1..5, 2..10 atau berupa nilai tunggal, seperti 1, 3, 5, 19.
Operations
Operations adalah behavior yang dapat dilakukan oleh objek atau dilakukan pada objek. Behavior tersebut diimplementasikan melalui fungsi. Dalam komunikasi dengan objek lain, suatu objek hanya perlu memanggil fungsi dari objek tersebut tanpa perlu mengetahui attribute yang ada.
2.9.3 Sequence Diagram
Sequence diagram adalah salah satu dari beberapa macam UML interaction diagram. Sebuah sequence diagram menunjukkan sebuah interaksi antara objek-objek yang disusun dalam urutan waktu. Kegunaan dari sequence diagram adalah menunjukkan interaksi objek secara rinci yang terjadi untuk satu use case (Bennett, McRobb, dan Farmer, 2006).
Dalam sequence diagram, dimensi vertikal menunjukkan waktu dan semua objek yang ikut terlibat dalam interaksi tersebar secara horizontal pada diagram. Waktu secara normal berjalan ke bawah. Setiap objek dalam sebuah sequence diagram ditunjukkan oleh sebuah lifeline. Lifeline adalah sebuah garis vertikal putus-putus dengan simbol objek pada bagian paling atas. Sebuah pesan ditunjukkan dengan garis panah horizontal dari satu lifeline ke lifeline yang lain dan diberi label dengan nama message. Setiap nama message secara opsional didahului oleh sebuah nomor urut yang menunjukkan urutan dimana message dikirim, tetapi ini biasanya tidak perlu pada sebuah sequence diagram karena urutan message telah disampaikan oleh posisi relatif mereka selama sumbu waktu (Bennett, McRobb, dan Farmer, 2006).
2.9.4 Activity Diagram
Activity diagram dapat digunakan untuk memodelkan aspekaspek yang berbeda pada sebuah sistem. Activity diagram dapat digunakan untuk memodelkan aktivitas bisnis pada sistem yang ada, dapat juga digunakan pada tahap awal dalam system development lifecycle, yaitu dengan memodelkan sebuah fungsi sistem yang ditunjukkan oleh sebuah use case, menggunakan aliran objek untuk menunjukkan objek mana yang terlibat dalam sebuah use case (Bennett, McRobb, dan Farmer, 2006).
Activity diagram terdiri atas sekumpulan aksi yang dihubungkan bersama oleh aliran dari satu aktivitas ke aktivitas lainnya. Setiap aksi ditunjukkan sebagai persegi dengan sudut yang melingkar. Nama dari aksi ditulis di dalam simbol dua dimensi ini. Hal ini menjadi penuh arti dan merangkum aksi tersebut (Bennett, McRobb, dan Farmer, 2006).
Selanjutnya, jika ingin mendeskripsikan beberapa pilihan yang dapat diambil, digunakan explicit decision node, yang ditunjukkan dengan ikon berbentuk diamond. Setiap aliran alternatif tersebut diberi label dengan sebuah guard condition. Guard condition ditunjukkan di dalam simbol bracket (Bennett, McRobb, dan Farmer, 2006).
2.9.5 Deployment Diagram
Deployment diagram adalah tipe implementation diagram yang mendeskripsikan arsitektur fisik dari perangkat keras dan perangkat lunak dalam sistem. Diagram ini menggambarkan komponen perangkat lunak, processor, dan device yang membentuk arsitektur sistem. Setiap kotak yang ada pada diagram menggambarkan satu buah perangkat keras. Perangkat keras dapat berupa PC, mainframe, printer, atau smartphone. Perangkat lunak yang terdapat dalam kotak ditandai dengan simbol komponen. Garis yang menghubungi kotak mengindikasikan sebuah komunikasi antar device. Komunikasi tersebut ditandai dengan tipe protokol komunikasi yang digunakan (Whitten dan Bentley, 2007).
2.9.6 Metode Pengembangan Perangkat Lunak ( Prototyping )
Prototyping merupakan salah satu metode pengembangan perangkat lunak yang bersifat iteratif. Metode ini cocok digunakan pada saat stakeholder mendefinisikan beberapa tujuan umum dari perangkat lunak, tetapi tidak mendefinisikan kebutuhan rinci untuk fungsi dan fiturnya. Metode ini dimulai dengan komunikasi. Pengembang aplikasi bertemu dengan stakeholder untuk mendefinisikan keseluruhan tujuan dari perangkat lunak dan mendefinisikan kebutuhan yang diketahui. Langkah selanjutnya adalah membuat perencanaan secara cepat dilanjutkan pemodelan yang berfokus pada aspek dari perangkat yang tampak pada stakeholder, contohnya adalah rancangan antar muka. Setelah selesai pemodelan, pembuatan prototype dilakukan, dipaparkan, dan dievaluasi oleh stakeholder untuk mengetahui kebutuhan selanjutnya. Pengulangan terjadi sampai prototype memuaskan kebutuhan berbagai stakeholder dan pada saat bersamaan memungkinkan pengembang aplikasi untuk memahami lebih baik apa yang perlu dilakukan (Pressman, 2010).
2.9.7 Black-Box Testing
Black-box testing merupakan pengujian yang berpusat pada kebutuhan fungsional perangkat lunak dimana memungkinkan untuk memperoleh sekumpulan kondisi input yang secara penuh memeriksa fungsional dari sebuah aplikasi. Black-box testing berusaha menemukan kesalahan-kesalahan seperti kesalahan fungsi dan kesalahan tampilan aplikasi. Black-box testing dapat digunakan untuk menguji aplikasi konvensional dan aplikasi yang berorientasi objek (Pressman, 2010).
2.10 ERD
Menurut Whitten dan Bentley (2007), Entity Relationship Diagram (ERD) adalah sebuah data model yang menggunakan beberapa notasi untuk menggambarkan data dengan istilah entities dan relationships yang ada. Beberapa konsep dasar dari ERD adalah :
Entities
Sebuah entity merupakan sebuah class untuk menyimpan data. Class dapat berupa orang, tempat, objek, kejadian, atau konsep.
Attributes
Attributes merupakan data yang akan disimpan pada entity dimana data tersebut merupakan karakteristik dari entity. Contohnya entity File memiliki attribute nama file dan ukuran file.
Relationships
Relationship adalah hubungan antara satu atau lebih entities. Hubungan tersebut bisa berupa exactly one, zero or one, one or more, zero;one; or more, dan more than one.
Generalization
Generalization adalah konsep yang mengelompokkan atribute pada entity yang berbeda menjadi suatu entity baru berdasarkan persamaan karakteristik yang dimiliki atribute.
2.11 DBMS
Menurut Connolly dan Begg (2002), Database Management System (DBMS) merupakan sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengatur akses ke database. DBMS ini menyediakan fasilitas untuk mendefinisikan database melalui DDL (Data Definition Language) dan menyediakan fasilitas untuk melakukan insert, update, delete, select melalui DML (Data Manipulation Language). Contoh dari DBMS antara lain :
MySQL
MySQL merupakan DBMS yang bersifat open source dimana pengguna dapat melakukan modifikasi pada kodenya yang berorientasi pada performa dan merupakan DBMS yang mendukung beberapa tipe table ( storage engine ). Tipe table yang digunakan secara default adalah MyISAM yang memiliki kelebihan akses data yang cepat tetapi tidak mendukung fitur foreign key. Jika pengguna ingin ada dukungan foreign key pada table , pengguna dapat menggunakan tipe table InnoDB (Kofler, 2005).
SQLite
SQLite merupakan embedded DBMS yang berbeda dengan DBMS pada umumnya dimana DBMS ini tidak berjalan sendiri melainkan berada di dalam aplikasi, seperti aplikasi yang dibuat pada sistem operasi Android (Allen dan Owens, 2010). Letak database ini ada di direktori “/data/data/your.app.package/databases/your-db-name”.
2.12 Web service
Web Service merupakan komponen perangkat lunak yang dibangun berbasis web untuk komunikasi antar aplikasi yang berjalan pada berbagai platform melalui intenet (Cobarzan, 2010). Menurut Richards (2006), dalam merancang web service dengan desain arsitektural Representational State Transfer (REST), diperlukan beberapa komponen, yaitu :
XML (Extensible Markup Language)
XML adalah sebuah standar untuk mendeskripsikan data di dalam format yang terstruktur. Dalam istilah layman, XML mengizinkan data ditandai dengan menggunakan nama deskriptif sehingga manusia dan aplikasi dapat memahami arti dari keping-keping data yang berbeda. Contoh dari XML adalah :
a
20
http
HTTP adalah singkatan dari Hypertext Transfer Protocol yang berfungsi sebagai protokol request-response pada model client-server. Cara kerjanya adalah client mengirimkan sebuah pesan HTTP request ke server dan server yang menyimpan sumber daya seperti PHP file mengembalikan sebuah pesan HTTP response ke client. Sebuah response berisi informasi status tentang request dan mungkin berisi informasi lain yang diminta oleh client pada message body, contohnya XML. Metode yang dimiliki HTTP untuk melakukan tugasnya antara lain GET, HEAD, POST, PUT, dan DELETE.
URI
URI biasanya berupa sebuah URL yang merupakan resource identifier dimana Web service berada.
MIME Type
Dikarenakan data yang dikirim ke client berupa format XML, text/xml adalah MIME type yang digunakan.
2.13 Algoritma SHA-1
SHA-1 adalah singkatan dari Secure Hash Algrorithm 1 yang merupakan algoritma untuk mengenkripsi password yang disediakan oleh PHP. Penggunaan algoritma ini sederhana dan efektif dimana menghasilkan 40 digit angka heksadesimal yang tidak bisa dikembalikan Selain itu sebagai langkah untuk berjaga-jaga, pengembang aplikasi dapat menggabungkan random kata dengan password yang dimasukkan sehingga walaupun password yang dimasukkan sama akan menghasilkan 40 digit angka heksadesimal yang berbeda. Contoh dari hasil enkripsi sha-1 adalah : 2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12 (Powers, 2010).
2.14 Binary Prefix
Pada bulan Desember 1998, International Electrotechnical Commission ( IEC ) mengesahkan nama dan simbol untuk binary prefix yang digunakan dalam ruang lingkup pemrosesan data dan transmisi data. Binary Prefix tersebut adalah :
2.15 SFTP
SFTP adalah singkatan dari Secure File Transfer Protocol yang dibangun di atas SSH ( Secure Shell ) dan menyediakan pelapis keamanan tambahan untuk perintah pertukaran file dan aliran data. SFTP menggunakan protokol SSH yang ada untuk membuat dan mengatur banyak perintah dan aliran data agar menjaga keamanan dari pencurian informasi yang sensitif. SFTP ini dapat digunakan dimana SSH diimplementasikan, baik di client maupun server (Tittel, 2007). Untuk di client, aplikasi SFTP ada yang berbentuk konsol maupun grafis. Contoh aplikasi SFTP adalah FileZilla ( sistem operasi Windows, Linux, Macintosh) dan AndFTP ( sistem operasi Android ).
2.16 Sistem Informasi Geografis
2.16.1 Definisi
Sistem Informasi Geografis (bahasa Inggris: Geographic Information System disingkat GIS) adalah sistem informasi khusus yang mengelola data yang memiliki informasi spasial (bereferensi keruangan), atau dalam arti yang lebih sempit adalah sistem komputer yang memiliki kemampuan untuk membangun, menyimpan, mengelola dan menampilkan informasi berefrensi geografis, misalnya data yang diidentifikasi menurut lokasinya, dalam sebuah database.
Menurut sumber lain GIS adalah suatu sistem informasi yang dirancang untuk bekerja dengan data yang bereferensi spasial atau berkoordinat geografi, atau dengan kata lain suatu GIS adalah suatu sistem basis data dengan kemampuan khusus untuk menangani data yang bereferensi keruangan (spasial) bersamaan dengan seperangkat operasi kerja (Barus dan Wiradisastra, 2000). Sedangkan menurut (Anon, 2001) Sistem Informasi Geografis adalah suatu Sistem Informasi yang dapat memadukan antara data grafis (spasial) dengan data teks (atribut) objek yang dihubungkan secara geogrfis di bumi (georeference). Disamping itu, GIS juga dapat menggabungkan data, mengatur data dan melakukan analisis data yang akhirnya akan menghasilkan keluaran yang dapat dijadikan acuan dalam pengambilan keputusan pada masalah yang berhubungan dengan geografi.
Sistem Informasi Geografis dibagi menjadi dua kelompok yaitu sistem manual (analog), dan sistem otomatis (yang berbasis digital komputer). Perbedaan yang paling mendasar terletak pada cara pengelolaannya. Sistem Informasi manual biasanya menggabungkan beberapa data seperti peta, lembar transparansi untuk tumpang susun (overlay), foto udara, laporan statistik dan laporan survey lapangan. Kesemua data tersebut dikompilasi dan dianalisis secara manual dengan alat tanpa komputer. Sedangkan GIS otomatis telah menggunakan komputer sebagai sistem pengolah data melalui proses digitasi. Sumber data digital dapat berupa citra satelit atau foto udara digital serta foto udara yang terdigitasi.
Pengertian GIS saat ini lebih sering diterapkan bagi teknologi informasi spasial atau geografi yang berorientasi pada penggunaan teknologi komputer. Dalam hubungannya dengan teknologi komputer, Arronoff (1989) dalam Anon (2003) mendifinisikan GIS sebagai sistem berbasis komputer yang memiliki kemampuan dalam menangani data bereferensi geografi yaitu pemasukan data, manajemen data (penyimpanan dan pemanggilan kembali), memanipulasi dan analisis data, serta keluaran sebagai hasil akhir (output). Sedangkan Burrough, 1986 mendefinisikan GIS sebagai sistem berbasis komputer yang digunakan untuk memasukkan, menyimpan, mengelola, menganalisis dan mengaktifkan kembali data yang mempunyai referensi keruangan untuk berbagai tujuan yang berkaitan dengan pemetaan dan perencanaan. Komponen utama Sistem Informasi Geografis dapat dibagi kedalam 4 komponen utama yaitu: perangkat keras (digitizer, scanner, Central Procesing Unit (CPU), hard-disk, dan lain-lain), perangkat lunak (ArcView, Idrisi, ARC/INFO, ILWIS, MapInfo, dan lain-lain), organisasi (manajemen) dan pemakai (user). Kombinasi yang benar antara keempat komponen utama ini akan menentukan kesuksesan suatu proyek pengembangan Sistem Informasi Geografis.
Tujuan pokok dari pemanfaatan Sistem Informasi Geografis adalah untuk mempermudah mendapatkan informasi yang telah diolah dan tersimpan sebagai atribut suatu lokasi atau obyek. Ciri utama data yang bisa dimanfaatkan dalam Sistem Informasi Geografis adalah data yang telah terikat dengan lokasi dan merupakan data dasar yang belum dispesifikasi (Dulbahri, 1993).
Data-data yang diolah dalam GIS pada dasarnya terdiri dari data spasial dan data atribut dalam bentuk digital, dengan demikian analisis yang dapat digunakan adalah analisis spasial dan analisis atribut. Data spasial merupakan data yang berkaitan dengan lokasi keruangan yang umumnya berbentuk peta. Sedangkan data atribut merupakan data tabel yang berfungsi menjelaskan keberadaan berbagai objek sebagai data spasial.
Penyajian data spasial mempunyai tiga cara dasar yaitu dalam bentuk titik, bentuk garis dan bentuk area (polygon). Titik merupakan kenampakan tunggal dari sepasang koordinat x,y yang menunjukkan lokasi suatu obyek berupa ketinggian, lokasi kota, lokasi pengambilan sample dan lain-lain. Garis merupakan sekumpulan titik-titik yang membentuk suatu kenampakan memanjang seperti sungai, jalan, kontus dan lain-lain. Sedangkan area adalah kenampakan yang dibatasi oleh suatu garis yang membentuk suatu ruang homogen, misalnya: batas daerah, batas penggunaan lahan, pulau dan lain sebagainya.
Struktur data spasial dibagi dua yaitu model data raster dan model data vektor. Data raster adalah data yang disimpan dalam bentuk kotak segi empat (grid)/sel sehingga terbentuk suatu ruang yang teratur. Data vektor adalah data yang direkam dalam bentuk koordinat titik yang menampilkan, menempatkan dan menyimpan data spasial dengan menggunakan titik, garis atau area polygon (Barus dan Wiradisastra, 2000).
Berdasarkan pengertian-pengertian diatas, maka GIS dapat berfungsi sebagai: bank data terpadu, yaitu dapat memandu data spasial dan non spasial dalam suatu basis data terpadu; sistem modeling dan analisi, yaitu dapat digunakan sebagai sarana evaluasi potensi wilayah dan perencanaan spasial; sistem pengelolaan yang bereferensi geografis, yaitu untuk mengelola operasianal dan administrasi lokasi geografis; sebagai sistem pemetaan komputasi, yaitu sistem yang dapat menyajikan peta sesuai dengan kebutuhan.
2.16.2 Sejarah Pengembangan
Tiga puluh lima ribu tahun yang lalu, di dinding gua Lascaux, Perancis, para pemburu Cro-Magnon menggambar hewan mangsa mereka, juga garis yang dipercaya sebagai rute migrasi hewan-hewan tersebut. Catatan awal ini sejalan dengan dua elemen struktur pada sistem informasi gegrafis modern sekarang ini, arsip grafis yang terhubung ke database atribut.
Pada tahun 1700-an teknik survey modern untuk pemetaan topografis diterapkan, termasuk juga versi awal pemetaan tematis, misalnya untuk keilmuan atau data sensus. Awal abad ke-20 memperlihatkan pengembangan "litografi foto" dimana peta dipisahkan menjadi beberapa lapisan (layer). Perkembangan perangkat keras komputer yang dipacu oleh penelitian senjata nuklir membawa aplikasi pemetaan menjadi multifungsi pada awal tahun 1960-an.
Tahun 1967 merupakan awal pengembangan GIS yang bisa diterapkan di Ottawa, Ontario oleh Departemen Energi, Pertambangan dan Sumber Daya. Dikembangkan oleh Roger Tomlinson, yang kemudian disebut CGIS (Canadian GIS), digunakan untuk menyimpan, menganalisis dan mengolah data yang dikumpulkan untuk Inventarisasi Tanah Kanada (CLI - Canadian land Inventory) - sebuah inisiatif untuk mengetahui kemampuan lahan di wilayah pedesaan Kanada dengan memetakaan berbagai informasi pada tanah, pertanian, pariwisata, alam bebas, unggas dan penggunaan tanah pada skala 1:250000. Faktor pemeringkatan klasifikasi juga diterapkan untuk keperluan analisis.
CGIS merupakan sistem pertama di dunia dan hasil dari perbaikan aplikasi pemetaan yang memiliki kemampuan timpang susun (overlay), penghitungan, pendijitalan/pemindaian (digitizing/scanning), mendukung sistem koordinat national yang membentang di atas benua Amerika , memasukkan garis sebagai arc yang memiliki topologi dan menyimpan atribut dan informasi lokasional pada berkas terpisah. Pengembangya, seorang geografer bernama Roger Tomlinson kemudian disebut "Bapak GIS".
CGIS bertahan sampai tahun 1970-an dan memakan waktu lama untuk penyempurnaan setelah pengembangan awal, dan tidak bisa bersaing denga aplikasi pemetaan komersil yang dikeluarkan beberapa vendor seperti Intergraph. Perkembangan perangkat keras mikro komputer memacu vendor lain seperti ESRI dan CARIS berhasil membuat banyak fitur GIS, menggabung pendekatan generasi pertama pada pemisahan informasi spasial dan atributnya, dengan pendekatan generasi kedua pada organisasi data atribut menjadi struktur database. Perkembangan industri pada tahun 1980-an dan 1990-an memacu lagi pertumbuhan GIS pada workstation UNIX dan komputer pribadi. Pada akhir abad ke-20, pertumbuhan yang cepat di berbagai sistem dikonsolidasikan dan distandarisasikan menjadi platform lebih sedikit, dan para pengguna mulai mengekspor menampilkan data GIS lewat internet, yang membutuhkan standar pada format data dan transfer.
Indonesia sudah mengadopsi sistem ini sejak Pelita ke-2 ketika LIPI mengundang UNESCO dalam menyusun "Kebijakan dan Program Pembangunan Lima Tahun Tahap Kedua (1974-1979)" dalam pembangunan ilmu pengetahuan, teknologi dan riset. Pada masa ini telah dikembangkan sistem-sistem yang secara khusus dibuat untuk menangani masalah informasi yang bereferansi geografis dalam berbagai cara dan bentuk. Masalah-masalah ini mencakup:
Pengorganisasian data dan informasi
Penempatan informasi pada lokasi tertentu.
Melakukan komputasi, memberikan ilusi keterhubungan satu sama lainnya (koneksi), beserta analisa-analisa spasial lainnya.
Sebutan umum untuk sistem-sistem yang menangani masalah-masalah tersebut adalah Sistem Informasi Geografis. Dalam literatur, Sistem Informasi Geografis dipandang sebagai hasil perpaduan antara sistem komputer untuk bidang Kartografi (CAC) atau sistem komputer untuk bidang perancangan (CAD) dengan teknologi basis data (database) [2].
Pada awalnya, data geografis hanya disajikan di atas peta dengan menggunakan symbol, garis dan warna. Elemen-elemen geografis ini dideskripsikan di dalam legendanya misalnya: garis hitam tebal untuk jalan utama, garis hitam tipis untuk jalan sekunder dan jalan-jalan yang berikutnya.
Selain itu, berbagai data yang di-overlay-kan berdasarkan sistem koordinat yang sama. Akibatnya sebuah peta menjadi media yang efektif baik sebagai alat presentasi maupun sebagai bank tempat penyimpanan data geografis. Tetapi media peta masih mengandung kelemahan atau keterbatasan. Informasi-informasi yang disimpan, diproses dan dipresentasikan dengan suatu cara tertentu, dan biasanya untuk tujuan tertentu pula, tidak mudah untuk merubah presentasi tersebut karena peta selalu menyediakan gambar atau simbol unsur geografis dengan bentuk yang tetap walaupun diperlukan untuk kebutuhan yang berbeda.
2.16.3 Subsistem Sistem Informasi Geografis
Sistem Informasi Geografis dapat diuraikan menjadi beberapa subsistem sebagai berikut:
Data Input: Subsistem ini bertugas untuk mengumpulkan data dan mempersiapkan data spasial dan atribut dari berbagai sumber dan bertanggung jawab dalam mengkonversi atau mentransfortasikan formatformat data-data aslinya kedalam format yang dapat digunakan oleh GIS.
Data output: Subsistem ini menampilkan atau menghasilkan keluaran seluruh atau sebagian basis data baik dalam bentuk softcopy maupun bentuk hardcopy seperti: tabel, grafik dan peta.
Data Management: Subsistem ini mengorganisasikan baik data spasial maupun data atribut ke dalam sebuah basis data sedemikian rupa sehingga mudah dipanggil, diupdate dan diedit.
Data Manipulation & Analysis: Subsistem ini menentukan informasiinformasi yang dapat dihasilkan oleh GIS dan melakukan manipulasi serta pemodelan data untuk menghasilkan informasi yang diharapkan, dapat di lihat pada Gambar
2.16.4 Konsep Model Data Spasial
Data spasial merupakan data yang paling penting dalam GIS. Seperti penjelasan diatas data spasial ada 2 macam yaitu data raster dan data vector. Dibawah ini adalah salah satu contoh konsep data geospasial/spasial dihubungkan pula dengan atributnya.
2.16.4.1 Data Vektor
Model data vektor yang menampilkan, menempatkan dan menyimpan data spasial dengan menggunakan titik-titik, garis-garis, atau kurva atau poligon beserta atribut-atributnya. Bentuk dasar representasi data spasial didalam sistem model data vektor, didefinisikan oleh sistem koordinat kartesian dua dimensi (x,y).
2.16.4.2 Data Raster
Model data raster menampilkan, menempatkan dan menyimpan spasial dengan menggunakan struktur matriks atau pixel-pixel yang membentuk grid. Akurasi model data ini sangat bergantung pada resolusi atau ukuran pixelnya (sel grid) di permukaan bumi. Contoh data raster adalah citra satelit misalnya Spot, Landsat, dll. Konsep model data ini adalah dengan memberikan nilai yang berbeda untuk tiap-tiap pixel atau grid dari kondisi yang berbeda.
2.16.5 Kebutuhan Terhadap GIS
Berikut ini beberapa alasan mengapa GIS dibutuhkan:
Penangan data geospatial sangat buruk
Peta dan statistik sangat cepat kadaluarsa
Data dan informasi sering tidak akhurat
Tidak ada pelayanan penyediaan data
Tidak ada pertukaran data
Dengan GIS diterapkan, didapat keuntungan berikut:
Penanganan data geospatial menjadi lebih baik dalam format baku
Devisi dan pemutakhiran data menjadi lebih mudah
Data geospatial dan informasi lebih mudah dicari, dianalisis dan direpresentasikan
Menjadi produk bernilai tambah
Data geospatial dapat dipertukarkan
Produktivitas staf meningkat dan lebih efisien
Penghematan waktu dan biaya
Keputusan yang akan diambil menjadi lebih baik
2.16.6 Sistem Komputer untuk SIG
Sistem komputer biasanya terdiri dari perangkat keras (hardware) dan perangkat lunak (software).
Perangkat Keras
Terdiri dari beberapa komponen.
Central processing unit (CPU)
CPU menjalankan program komputer dan mengendalikan operasi seluruh komponen. Biasanya digunakan CPU untuk komputer pribadi (PC/personal computer), atau work station pada sebuah jaringan komputer.
Memory
Memory Utama: adalah bagian paling esensi pada komputer seluruh data dan program berada pada memori utama untuk akses yang lebih cepat. Dibutuhkan setidaknya memori berkapasitas 64 MB untuk SIG berbasis PC.
Memory Tambahan: digunakan data berukuran besar baik permanen maupun semi-permanen, dengan akses lebih rendah dibanding memori utama. Dikenal juga sebagai media penyimpanan data, seperti harddisk, disket (floppy disk), pita magnetis atau cakram padat optis (CD-ROM). Untuk harddisk dibutuhkan setidaknya yang berkapasitas 1 GB.
Alat Tambahan (Peripherals)
Alat Masukan (Input Devices) : key board, mouse, digitizers, pemindai (scanner), kamera digital, workstation fotogrametris digital.
Alat Keluaran (Output devices) : monitor berwarna, printer, plotter berwarna, perekam film, dll.
Perangkat Lunak
Terdiri atas sistem operasi, compiler dan program aplikasi.
Sistem Operasi (Operating System): mengendalikan seluruh operasi program, juga menghubungkan perangkat keras dengan program aplikasi. Untuk PC : MS-DOS (IBM PCs) dan WINDOWS adalah sistem operasi yang banyak digunakan. Untuk Workstation: UNIX dan VMS adalah OS yang dominan.
Compiler: menerjemahkan program yang ditulis dalam bahasa komputer pada kode mesin sehingga CPU mampu menjalankan program yang harus dieksekusi. Bahasa kompiler yang biasa digunakan adalah C, Pascal, FORTRAN, BASIC, dll.
2.16.7 SIG Sebagai Ilmu Multi Disiplin
GIS sebagai ilmu multi displin terpadu terdiri atas beberapa disiplin ilmu berikut.
Geografi
Kartografi
Penginderaan Jauh
Fotogrammetri
Ilmu Ukur Tanah
Geodesi
Statistika
Operations Research
Ilmu Komputer
Matematika
Perencanaan Sipil
Perencanaan Kota, dll.
SIG memiliki banyak nama alternatif yang sudah digunakan bertahuntahun menurut cakupan aplikasi dan bidang khusus masing-masing, sebagai berikut:
Sistem Informasi Lahan (Land Information System - LIS)
Pemetaan terautomatisasi dan Pengelolaan Fasilitas (AM/FM-Automated Mapping and Facilities Management)
Sistem Informasi Lingkungan (Environmental Information System - EIS)
Sistem Informasi Sumber Daya (Resources Information System)
Sistem Informasi Perencanaan (Planning Information System)
Sistem Penanganan Data keruangan (Spatial Data Handling System)
GIS kini menjadi disiplin ilmu yang independen dengan nama "Geomatic", "Geoinformatics", atau "Geospatial Information Science" yang digunakan pada berbagai departemen pemerintahan dan universitas.
2.16.8 Cakupan Aplikasi SIG
Cakupan utama Aplikasi SIG dapat dikelompokkan ke dalam lima kategori.
PengelolaanFasilitas
Peta skala besar dan akurat, dan analisis jaringan (network analysis) digunakan untuk pengelolaan utilitas kota. AM/FM biasanya digunakan pada tujuan ini.
Pengelolaan Sumber Daya Alam dan Lingkungan
Untuk tujuan ini digunakan peta skala menengah dan kecil, dan teknik tumpang tindih (overlay) digabungkan dengan foto udara dan citra satelit untuk analisis dampak lingkungan dan pengelolaan sumber daya alam.
Jaringan Jalan
Untuk fungsi jaringan jalan digunakan peta skala besar dan menengah, dan analisis keruangan yang digunakan untuk rute kendaraan, lokasi perumahan dan jalan, dll.
Perencanaan dan Rekayasa
Digunakan peta skala besar dan menengah, dan model rekayasa untuk perencanaan sipil.
Sistem Informasi Lahan
Digunakan peta kadastral skala besar atau peta persil tanah, dan analisis keruangan untuk informasi kadastral, pajak, dll.
2.16.9 SIG sebagai Infrastruktur Informasi
Informasi menjadi isu utama dalam era komputer sekarang ini, karena informasi memberikan kontribusi pada kualitas hidup seperti tertulis di bawah ini:
Infrastruktur sosial ... masyarakat yang lebih baik
Infrastruktur lingkungan ... pengelolaan yang lebih baik
Infrastruktur kota ... kehidupan yang lebih baik
Infrastruktur ekonomi ... usaha yang lebih baik
Infrastruktur pendidikan ... pengetahuan yang lebih baik
Untuk mendapatkan infrastruktur informasi SIG, isu-isu seperti pada
Kebijakan Data Terbuka
Data dan informasi tentang SIG harus bisa diperoleh oleh siapapun tanpa batasan dan gratis atau murah.
Standarisasi
Standar untuk struktur dan format data harus dibangun untuk memungkinkan transfer data dan pertukaran data geospatial.
Pertukaran Data/Informasi
Untuk penghematan waktu dan biaya dalam digitasi, pertukaran data harus dikembangkan. Untuk mendukung pekerjaan dengan data geospatial, informasi dan pengalaman harus dipertukarkan antar sesama pengguna.
Jaringan
Sistem komputer yang tersebar antar instansi harus dihubungkan dengan jaringan untuk peningkatan akses dan pelayanan.
Pendekatan Multi Disiplin
Karena SIG adalah ilmu multi disiplin, maka para ilmuwan, insinyur, teknisi dan tenaga administrasi dari berbagai disiplin harus bekerja sama untuk tujuan bersama.
Prosedur Interoperable
SIG harus dapat dihubungkan dengan prosedur komputer lain seperti CAD, komputer grafis, DEM, dll.
3 Pembahasan Perangkat Lunak
3.1 MATSim-T
Istilah agen multi-mikro-simulasi digunakan dengan arti yang berbeda dalam penelitian transportasi. Seringkali, kata "mikroskopis" digunakan untuk menggambarkan suatu "model mobil berikut" (misalnya Wiedemann, 1974) yang juga digunakan dalam beberapa produk komersial (misalnya VISSIM: PTV, 2008). Di MATSim, yang Istilah ini digunakan untuk menggambarkan bahwa setiap orang dimodelkan berisi pengaturan benar-benar individu. Setiap orang dimodelkan sebagai agen, dan jumlah semua agen harus mencerminkan secara statistik demografi perwakilan daerah. Permintaan dimodelkan dan dioptimalkan secara individual untuk setiap agen-tidak hanya untuk beberapa bagian dari permintaan seperti keberangkatan waktu dan pilihan rute, tapi sebagai gambaran dinamis temporal yang lengkap dari permintaan harian dari setiap agen.
Permintaan agen disebut rencana di MATSim. Gambar 1 menunjukkan contoh dari satu rencana harian agen, ditulis dalam XML (W3C, 2008). Struktur ini tetap sama selama semua pemodelan dan simulasi permintaan. Secara khusus, tugas permintaan lalu lintas tidak hanya mengambil perjalanan tunggal ke rekening, tetapi lengkap harian rencana-termasuk kegiatan-adalah dieksekusi. Dengan demikian istilah micro-simulasi berkaitan dengan mikroskopis (individual) permintaan dari masing-masing orang dalam skenario. Untuk menghasilkan rencana individu untuk setiap agen dengan MATSim seperti yang ditunjukkan pada Gambar 1 perlu untuk menyediakan antarmuka pengguna sehingga ia / dia mampu menggeneralisasi dan sekering data yang tersedia untuk daerah bunga, sehingga dataset umum infrastruktur, populasi, dan permintaan dapat dibuat. Untuk struktur proses penciptaan permintaan / optimasi, MATSimT dapat dibagi menjadi empat bagian seperti yang ditunjukkan pada Gambar 2:
Proses pembuatan Skenario
Proses pemodelan permintaan individu Awal
proses optimasi permintaan Iteratif (termasuk eksekusi permintaan, penilaian, dan replanning)
Analisis Post-proses
MATSim-T adalah pendekatan modular, semua bagian yang ditunjukkan pada Gambar 1 (FUSION, IIDM, EXEC, SKOR dan replanning) diberikan sebagai antarmuka sehingga pengguna dapat plug-in mereka modul sendiri. Dua proses pertama bergantung pada data yang tersedia dari daerah bunga. Sejak kualitas,kuantitas, dan resolusi data dapat bervariasi banyak dari satu skenario yang lain, penciptaan skenario dan langkah-langkah proses pemodelan permintaan awal dapat bervariasi juga. Oleh karena itu MATSim-T menyediakan dalam intinya hanya representasi data yang dihasilkan dari infrastruktur (jaringan dan fasilitas) dan Populasi termasuk permintaan individual masing-masing orang, ditambah parser dan penulis untuk data XML representasi. Untuk memperjelas fungsi dari FUSION atau IIDM modul, berikut ini adalah contohnya: Mari kita asumsikan informasi penggunaan lahan sekitar daerah bunga diberikan berdasarkan resolusi kota, dan bahwa jumlah tempat kerja diberikan untuk masing-masing kota. pengguna mengimplementasikan modul MATSim-FUSION yang mem-parsing informasi ini dan menciptakan satu fasilitas (termasuk jumlah tempat kerja) per kota. Hal ini memberikan perkiraan kasar dari fasilitas kerja dan tempat-tempat kerja yang ada di wilayah tersebut. Mari sekarang kita asumsikan bahwa pada tahap berikutnya dari proyek pengguna memiliki akses ke data rinci termasuk bangunan fasilitas kerja. sistem memungkinkan seseorang untuk menambahkan modul lain yang menggantikan fasilitas kerja yang sudah dibuat dengan yang baru informasi dan mendistribusikan jumlah tempat kerja dengan fasilitas kerja yang lebih realistis dari yang daerah. Sementara fasilitas yang dihasilkan dari kedua situasi yang cocok untuk MATSim-T untuk memulai ketiga langkah dari proses keseluruhan (optimasi permintaan; Gambar 1), versi kedua dari fasilitas memberikan hasil yang lebih rinci. Meskipun dua modul dijelaskan diimplementasikan untuk skenario tertentu, mereka dapat menjadi bagian dari toolkit MATSim dan oleh karena itu, pengguna lain dengan kebutuhan yang sama mampu menggunakan kembali modul untuk / skenario sendiri nya.
rencana ...
1932 1933 1934 1947
1934 1933
...
Gambar. 1: Penjelasan mengenai permintaan orang sintetis (termasuk data demografis) untuk hari lengkap. Agen dengan ID 393241 rencana untuk meninggalkan rumah-terletak pada link 58-nya untuk melakukan perjalanan ke tempat kerja. Dia menggunakan rute terkemuka sepanjang 4 node (5 link) dengan waktu tempuh yang diharapkan dari 25 menit. Agen tetap bekerja selama 9 jam, kemudian perjalanan kembali ke rumah dengan waktu tempuh yang diharapkan 14 menit. Permintaan tidak hanya menggambarkan bagian tunggal hari, tetapi urutan lengkap untuk agent 393241 terus-menerus dalam waktu. - Sumber: Balmer, 2007.
Dua proses pertama bergantung pada data yang tersedia dari daerah bunga. Sejak kualitas, kuantitas, dan resolusi data dapat bervariasi banyak dari satu skenario yang lain, penciptaan skenario dan langkah-langkah proses pemodelan permintaan awal dapat bervariasi juga. Oleh karena itu MATSim-T menyediakan dalam intinya hanya representasi data yang dihasilkan dari infrastruktur (jaringan dan fasilitas) dan Populasi termasuk permintaan individual masing-masing orang, ditambah parser dan penulis untuk data XML representasi. Untuk memperjelas fungsi dari FUSION atau IIDM modul, berikut ini adalah contohnya: Mari kita asumsikan informasi penggunaan lahan sekitar daerah bunga diberikan berdasarkan resolusi kota, dan bahwa jumlah tempat kerja diberikan untuk masing-masing kota. pengguna mengimplementasikan modul MATSim-FUSION yang mem-parsing informasi ini dan menciptakan satu fasilitas (termasuk jumlah tempat kerja) per kota. Hal ini memberikan perkiraan kasar dari fasilitas kerja dan tempat-tempat kerja yang ada di wilayah tersebut. Mari sekarang kita asumsikan bahwa pada tahap berikutnya dari proyek pengguna memiliki akses ke data rinci termasuk bangunan fasilitas kerja. sistem memungkinkan seseorang untuk menambahkan modul lain yang menggantikan fasilitas kerja yang sudah dibuat dengan yang baru informasi dan mendistribusikan jumlah tempat kerja dengan fasilitas kerja yang lebih realistis dari yang daerah.
Sementara fasilitas yang dihasilkan dari kedua situasi yang cocok untuk MATSim-T untuk memulai ketiga langkah dari proses keseluruhan (optimasi permintaan; Gambar 1), versi kedua dari fasilitas memberikan hasil yang lebih rinci. Meskipun dua modul dijelaskan diimplementasikan untuk skenario tertentu, mereka dapat menjadi bagian dari toolkit MATSim dan oleh karena itu, pengguna lain dengan kebutuhan yang sama mampu menggunakan kembali modul untuk / skenario sendiri nya.
figure 1.png
Figure 3.1 proses
Gambar 2: Struktur Proses MATSim-T Pasca-proses analisis bagian dari MATSim-T (bagian keempat dari Gambar 2) bekerja dengan cara yang sama, dengan perbedaan bahwa sekarang input data berikut MATSim standar (MATSim format XML jaringan, fasilitas, populasi dan permintaan) dan karena itu bisa digunakan untuk setiap skenario yang diberikan. Proses optimasi permintaan berulang (bagian ketiga dari Gambar 1) adalah, dengan cara, inti dari MATSim-T. Sementara semua langkah-langkah lain dijalankan sekali dalam urutan yang didefinisikan oleh pengguna, bagian tiga mengoptimalkan permintaan untuk setiap traveler sintetis individu dalam skenario sedemikian rupa sehingga mereka menghormati kendala (jaringan, fasilitas) dari skenario dan interaksi dengan semua lain pelaku wilayah itu. Biasanya, metode relaksasi digunakan untuk mencari keadaan setimbang. Untuk pilihan rute Wardrop ekuilibrium (Wardrop, 1952) menggambarkan suatu keadaan santai. Tapi yang paling penting, tidak hanya rute dioptimalkan di MATSim-T. Sebaliknya, harian merencanakan rute-termasuk lengkap, kali, lokasi, urutan kegiatan, jenis kegiatan, dan sebagainya-tiap agen dioptimalkan. Setiap agen mencoba untuk menjalankan hari dengan utilitas tertinggi. Utilitas dari rencana harian tergantung pada kendala infrastruktur (kapasitas jalan, membuka times toko-toko, dll) dan pada hari rencana agen lain dalam sistem. Ini berarti bahwa utilitas efektif dari rencana harian dapat hanya ditentukan oleh interaksi dari semua agen. Ini adalah tempat di mana co-evolusi algoritma (Holland, 1992; Palmer et al, 1994) ikut bermain. Sebuah algoritma evolusioner pada dasarnya terdiri dari langkah-langkah berikut:
Inisialisasi P (t = 0) - Membuat populasi individu pada waktu t = 0
Skor P (t) - Hitung "kebugaran"
Pilih P ’(t) dari P (t) - "survival of the fittest"
Duplikat dan memodifikasi rencana harian
Membuat rencana tersebut rencana relevan untuk iterasi berikutnya; meningkatkan iterasi counter demi satu
Goto 2.
Diterapkan pada permintaan optimasi (optimasi rencana harian) di MATSim, ini berarti:
Inisialisasi / menghasilkan rencana harian untuk setiap agen dalam sistem
Hitung utilitas dari pelaksanaan rencana harian individu untuk setiap agen
Hapus "buruk" rencana harian (yang dengan utilitas rendah)
Duplikat dan memodifikasi rencana harian
Membuat rencana tersebut rencana relevan untuk iterasi berikutnya; meningkatkan iterasi counter demi satu
Goto 2.
Hal ini penting untuk dicatat bahwa "individu" dari algoritma evolusioner adalah rencana, sedangkan pelancong sintetis adalah entitas yang co-berevolusi. Gambar 2 (c) menunjukkan optimasi lingkaran ini. Untuk setiap langkah-langkah yang tercantum di atas, modul khusus tersedia. Pelaksanaan rencana harian (EXEC) ditangani oleh arus lalu lintas yang sesuai modul simulasi, di mana individu berinteraksi satu sama lain, yaitu individu mungkin menghasilkan kemacetan di jalan-jalan penggunaan yang tinggi. Modul SKOR menghitung utilitas dari semua rencana harian dieksekusi. Rencana dengan utilitas tinggi (high "kebugaran") bertahan hidup, sementara rencana dengan rendah utilitas (misalnya disebabkan oleh waktu tempuh lama karena kemacetan lalu lintas) yang akhirnya dihapus. Penciptaan dan variasi rencana harian (replanning) didistribusikan di antara yang berbeda modul yang khusus pada berbagai aspek-aspek tertentu dari rencana harian. Modifikasi dalam rencana agen tunggal benar-benar independen pada perencanaan ulang dari semua agen lain rencana.
3.2 Kerja Terkait
Banyak model telah menerapkan konsep kegiatan berbasis permintaan generasi (misalnya "VISEM": PTV, 2008; Vovsha et al, 2002; Bowman et al, 1999 Bhat et al, 2004; Pendyala, 2004; et Arentze al, 2000). Namun hasil biasanya disampaikan sebagai (tergantung waktu) matriks asal-tujuan, yang digunakan sebagai input untuk model tugas lalu lintas statis atau dinamis. Completely-agent berbasis simulasi mikro (misalnya "mobiTopp": Schnittger & Zumkeller, 2004)) biasanya terfokus pada Aspek telematika atau dampak perubahan infrastruktur. Event driven simulasi untuk transportasi perencanaan (misalnya Axhausen, 1988; Balmer & Nagel, 2006; Axhausen & Herz, 1989) sudah disajikan kekuasaan mikro-simulasi, tetapi mereka biasanya hanya bekerja pada skenario kecil. Pekerjaan yang paling terkait dengan proyek MATSim adalah TRANSIMS (2008), yang juga menghasilkan jadwal kegiatan individu untuk skenario skala besar. Sementara konsep yang sama, ada beberapa perbedaan penting. Perbedaan yang paling penting adalah:
MATSim secara konsisten dibangun di sekitar gagasan bahwa wisatawan (dan mungkin lainnya obyek dari simulasi, seperti lampu lalu lintas) adalah "agen", yang berarti bahwa semua informasi untuk agen harus selalu dijaga bersama-sama dalam simulasi di satu tempat. di cara ini, agen di MATSim dapat mengakses karakteristik demografi atau tekanan waktu sementara ia / dia bergerak di dalam sistem transportasi. Dalam TRANSIMS, seperti Informasi pada prinsipnya tersedia, tetapi terfragmentasi antara banyak modul dan banyak file.
Sebagai cermin dari informasi agen koheren, MATSim menggunakan XML hirarkis (W3C, 2006) format untuk input atau output dari informasi agen. Karena file format hirarkis, dapat diisi dengan berbagai tingkat detail. Ini berarti bahwa di semua tempat di mana informasi agen dipertukarkan antara modul, file yang sama Format yang digunakan. Ini memiliki dua konsekuensi penting: (i) modul sewenang-wenang dapat dikombinasikan untuk mengisi informasi agen. Di TRANSIMS, kemampuan dari modul diberikan secara implisit oleh format file. (ii) Satu DTD (Document Type Definisi, lihat W3C, 2006) sudah cukup untuk memastikan kebenaran dari semua file data agen.
Sebagai konsekuensi dari desain agent, mudah untuk mempertahankan beberapa rencana per agen. Hal ini memudahkan untuk menafsirkan bagian berulang dari MATSim sebagai algoritma co-evolusi, di mana setiap agen mengacu pada populasi rencana untuk menemukan solusi yang lebih baik untuk him-/herself. Sekali lagi, ini bisa ditiru di TRANSIMS, tetapi akan jauh lebih sulit untuk menerapkannya, dan dalam beberapa hal satu-satunya pilihan mungkin untuk menambahkan sesuatu yang mirip dengan agen Database MATSim (Raney & Nagel, 2004) untuk TRANSIMS.
Simulasi arus lalu lintas saat ini digunakan di MATSim-T lebih sederhana dari yang di TRANSIMS, dan sebagai hasilnya berjalan jauh lebih cepat, sehingga memungkinkan bermakna berjalan di hari, bukan minggu. Hal ini tidak benar-benar sebuah perbedaan konseptual, tetapi itu adalah keputusan desain yang penting ketika memulai MATSim: Iterasi dasarnya harus menjalankan lebih malam.
Aplikasi mikro-simulasi berbasis agen juga dapat ditemukan dalam bidang penelitian terkait dengan perencanaan transportasi. Konsep yang menjanjikan dalam perencanaan perkotaan penggunaan lahan simulasi, yaitu URBANSIM (Waddell et al, 2003), ILUTE (Salvini et al, 2005) atau model dari Abraham / Berburu (Berburu et al, 2000).
3.3 Matsim Technology
MATSim menyediakan kerangka kerja untuk melaksanakan simulasi transportasi berbasis agen skala besar. Kerangka kerja ini terdiri dari modul severel yang dapat dikombinasikan atau digunakan berdiri sendiri. Modul dapat diganti dengan implementasi sendiri untuk menguji aspek tunggal pekerjaan Anda sendiri. Saat ini, MATSim menawarkan kerangka kerja untuk permintaan-modeling, berbasis agen mobilitas-simulasi (simulasi lalu lintas aliran), kembali perencanaan, controler untuk iteratif menjalankan simulasi serta metode untuk menganalisis output yang dihasilkan oleh modules.Fast Dinamis dan Agen Lalu Lintas Simulasi Berbasis
Dalam banyak kasus, MATSim hanya membutuhkan waktu beberapa menit untuk simulasi tunggal hari lengkap lalu lintas. Ini termasuk simulasi benar-benar waktu-dinamis lalu lintas kendaraan bermotor individu serta penanganan agen menggunakan moda transportasi lainnya.
3.3.1 Supports Large Scenarios
MATSim mampu mensimulasikan skenario dengan beberapa juta agen atau jaringan dengan ratusan ribu streeets. Yang Anda butuhkan adalah, komputer desktop cepat saat ini dengan banyak memori. Selain itu, MATSim memungkinkan Anda untuk mensimulasikan hanya persentase tertentu dari lalu lintas, mempercepat simulasi bahkan lebih sekaligus mengurangi konsumsi memori, dan masih menghasilkan hasil yang bermanfaat.
3.3.2 Sophisticated Interactive Visualizer
MATSim menyediakan Visualizer cepat yang dapat menampilkan lokasi dari setiap agen dalam simulasi dan apa yang sedang dilakukannya. Ia bahkan bisa terhubung ke simulasi berjalan, memungkinkan agen interaktif query ’negara, memvisualisasikan agen rute atau melakukan analisis langsung dari negara jaringan.
3.3.3 Versatile Analyses and Simulation Output
Selama simulasi, MATSim mengumpulkan beberapa nilai kunci dari simulasi dan output mereka untuk memberikan gambaran singkat dari keadaan saat simulasi. Di antara hasil lainnya, dapat membandingkan lalu lintas simulasi data dunia nyata dari stasiun menghitung, menampilkan hasil interaktif di Google Earth. Selain itu, MATSim menyediakan output rinci dari microsimulation lalu lintas, yang dapat dengan mudah diurai oleh aplikasi lain untuk membuat analisis khusus Anda sendiri.
3.3.4 Modular Approach
MATSim memungkinkan untuk penggantian mudah atau penambahan fungsi. Hal ini memungkinkan Anda untuk menambahkan algoritma Anda sendiri untuk agen-perilaku dan plug mereka ke MATSim, atau menggunakan simulasi transportasi sendiri saat menggunakan fitur replanning MATSim itu.
3.3.5 Open Source
MATSim didistribusikan di bawah Gnu Public License (GPL), yang berarti bahwa MATSim dapat didownload dan digunakan secara gratis. Selain itu, Anda mendapatkan Kode Sumber lengkap yang dapat Anda memodifikasi dalam batasan tertentu (lihat lisensi untuk lebih jelasnya). Ditulis di Jawa, MATSim berjalan pada semua sistem operasi utama, termasuk Linux, Windows dan Mac OS X.
3.3.6 Active Development and Versatile Usage of MATSim
Para peneliti dari beberapa lokasi yang saat ini bekerja pada MATSim. Pengembangan inti berlangsung di Berlin Institute of Technology (TU Berlin), Swiss Federal Institute of Technology (ETH) di Zurich, serta dalam start-up yang didirikan oleh dua mantan mahasiswa PhD. Pengembangan tambahan (sejauh kita menyadari) saat ini berlangsung di Afrika Selatan, Jerman (Munich, Karlsruhe) serta tempat-tempat lain di seluruh dunia. Ini pemerataan pembangunan memastikan bahwa MATSim tidak hanya bekerja untuk satu skenario / konteks, tetapi dapat disesuaikan dengan berbagai skenario yang berbeda.
3.3.7 Software
MATSim berjalan pada setiap mesin yang memiliki Java Platform, Standard Edition (SE) 6 atau yang lebih baru diinstal (biasanya disebut sebagai "Java 6" atau yang lebih baru).
3.3.8 Hardware
Skenario yang lebih kecil (misalnya contoh termasuk dalam tutorial, 5% - 10% atau-sampel dari skenario besar) dapat dijalankan pada desktop atau komputer laptop umum. Untuk mensimulasikan skenario besar (beberapa ratus ribu agen, jaringan dengan sepuluh ribuan link dan node), komputer high end dengan sejumlah besar memori (RAM) mungkin diperlukan untuk menyimpan data agen ’dalam memori. Deskripsi rencana agen ’dan output simulasi dapat mengambil beberapa Gigabytes ruang hard disk. Untuk menyimpan data selama beberapa skenario dan / atau output dari simulasi berjalan, sejumlah besar ruang disk dengan demikian dapat diperlukan. MATSim dapat membaca dan menulis file kompresi untuk mengurangi jumlah ruang disk yang diperlukan, namun aspek ini masih tidak boleh dianggap remeh. MATSim dapat menggunakan beberapa CPU atau core CPU yang berbagi memori umum ("shared memory mesin") selama replanning-fase. Menjalankan skenario besar untuk sejumlah besar iterasi dapat memakan waktu beberapa jam, sampai beberapa hari. Oleh karena itu mungkin dianjurkan untuk memiliki mesin khusus yang menjalankan MATSim jika Anda berencana untuk mensimulasikan banyak skenario yang berbeda.
Recommendations:
Untuk mencoba MATSim out: Setiap laptop atau komputer desktop modern dengan RAM 1GB dan 500MB gratis ruang disk harus sesuai.
Untuk menjalankan skenario besar (100 + 000 agen, jaringan dengan 50 000 + link): A high-end komputer desktop dengan setidaknya 4GB RAM dan 200 GB ruang disk bebas.
Untuk menjalankan berbagai skenario besar, sehingga mereka dapat dibandingkan satu sama lain:
Beberapa komputer desktop high-end atau server dengan setidaknya 4GB RAM yang berbagi disk penyimpanan umum (setidaknya 1TB).
Angka-angka tinggi untuk ruang disk bebas hasil dari fakta bahwa simulasi menulis cukup banyak data ke disk selama berlari. Untuk analisis, biasanya hanya versi terakhir dari data yang diperlukan, dan data dari iterasi sebelumnya dapat dihapus, membebaskan ruang lagi. Apa yang kita gunakan
Saat ini, kami mensimulasikan sebagian besar skenario kami pada mesin dengan 8 atau 16 GB RAM, memiliki 2 prosesor dual-core. Jumlah memori memungkinkan kita untuk menjalankan skenario 2 pada saat yang sama pada mesin. Sebuah array RAID digunakan sebagai penyimpanan backend, menawarkan sekitar 4 TB ruang hard disk. Ruang disk yang besar ini mampu menyimpan hasil ratusan simulasi dan akan sesuai dengan kami untuk beberapa tahun ke depan. Komputer dan RAID merupakan komponen biasa digunakan di pusat-pusat data, biasanya tersedia dengan harga yang moderat.
3.3.9 Terminologi
Dalam banyak kasus, MATSim menggunakan terminologi yang berbeda dari terminologi mainstream. Dalam kebanyakan kasus, alasannya adalah bahwa konsep hanya mirip, tetapi tidak identik, dan kami ingin menghindari kebingungan menggunakan istilah yang sama untuk aspek-aspek yang serupa tapi tak sama. Upaya mengikuti beberapa berkomentar perkiraan "terjemahan" dari lebih teminology standar untuk MATSim terminologi.
3.3.10 Configuration options
Bagian ini menjelaskan kemungkinan pengaturan config.xml, file konfigurasi MATSim. Bagian ini mungkin tidak lengkap karena dokumentasi selalu tertinggal kode aktual; silakan juga melihat kesedihan config termasuk komentar internal mereka dalam file log.
3.3.10.1 Other configurable modules
Modul secara longgar didefinisikan oleh entri yang sesuai dalam file config. Mereka juga diurutkan dalam urutan yang sama (yang dilakukan oleh mesin, bukan oleh isi). Perhatikan bahwa opsi konfigurasi individu sering dijelaskan dalam bagian konfigurasi dari file log. Modul file config yang hanya mendefinisikan file / direktori yang, sebagai kecenderungan, tidak dijelaskan di sini. Perhatikan bahwa modul strategi (seperti ReRoute, Planomat) dijelaskan dalam bagian terpisah. Pengelola disebutkan sejauh mungkin, tetapi mereka tidak bertanggung jawab untuk menjawab permintaan layanan sewenang-wenang.
4 Studi Kasus ("all-of-Swiss")
4.1 Studi Kasus
Dari sudut pandang pengguna, itu adalah bunga yang tinggi berapa banyak waktu program simulas perlu menghabiskan sampai hasil yang dihasilkan. Bab ini akan menyajikan langkah-langkah kinerja toolkit pada studi perencanaan transportasi skala besar yang khas. Meister et al (2008) menyajikan pertama Hasil untuk lalu lintas harian untuk seluruh Swiss dibuat dengan MATSim-T. Itu studi kasus akan digunakan untuk menyajikan kinerja komputasi dari setiap bagian dari toolkit. Extent of lalu lintas studi Swiss permintaan harian adalah:
Jaringan perencanaan nasional ("Nationales Netzmodell": Vrtic et al, 2003) terdiri dari ~ 24.000 node dan ~ 60’000 link.
Berdasarkan sensus enterprise 2000 (SFSO, 2001) dan sensus penduduk tahun 2000 (SFSO, 2000), ca. 1,7 juta fasilitas dimodelkan. Sampai dengan lima kegiatan yang berbeda ("home", "bekerja", "Pendidikan", "toko" dan "leisure" aktivitas) yang ditugaskan untuk setiap fasilitas.
Dengan sensus 2000 dan microcensus 2005 (SFSO, 2006), sekitar 7 juta orang sintetis (agen) yang dihasilkan, termasuk. atribut demografis seperti umur, jenis kelamin, kepemilikan lisensi mobil, ketersediaan mobil, kepemilikan tiket transportasi umum dan mempekerjakan status.
Generasi awal, individu, tergantung waktu permintaan harian dijelaskan dalam rinci dalam Ciari et al (2007) dan Meister et al (2008). Secara keseluruhan, sekitar 22 juta perjalanan yang dihasilkan-sekitar 7,1 juta perjalanan untuk transportasi individu bermotor.
Langkah-langkah kinerja yang dihasilkan pada mesin dengan 8 prosesor dual-core dengan 2,2 GHz clock rate masing-masing.
Studi kasus membutuhkan sekitar 22 GByte RAM.
4.2 Komputasi kali
Bab ini berkonsentrasi pada arsitektur MATSim dan waktu komputasi yang dihasilkan. itu skenario di atas dekat dengan terbesar yang saat ini layak. Karena itu adalah mungkin untuk mendapatkan hasil yang masuk akal dengan berjalan dengan 10% dari populasi, ini berarti bahwa skenario hingga 70 juta orang saat ini dapat diatasi. Jika perangkat keras terus meningkatkan dengan cara yang sama seperti Di masa lalu, simulasi bahkan besar mega-kota atau "all-of-Eropa" tampaknya dalam jangkauan. Kali komputasi diberikan sehubungan dengan skenario tertentu. Sayangnya, hal itu telah berubah secara konsisten bahwa menemukan aturan prediksi sederhana untuk kinerja komputasi MATSim cukup sulit (Nagel & Ricky, 2001; Cetin et al, 2003; Cetin, 2005). Hal ini harus dilakukan dengan fakta bahwa aspek terjalin hardware, pelaksanaan, rincian skenario, dan scenario Ukuran berperan. Sebagai contoh, perangkat keras, implementasi dan skenario bersama-sama menentukan ukuran berapa banyak skenario cocok ke dalam cache atau memori, dan jika perhitungan adalah I/O- atau CPU-terikat. Rincian Skenario memutuskan, katakanlah, selama berapa banyak waktu simulasi ada kegiatan di semua bagian sistem (sebagai lawan aktivitas di sejumlah kecil link). Ini mungkin untuk memberikan kompleksitas kasus terburuk. Ini, namun, dalam pengalaman kami sama sekali tidak berhubungan dengan kali komputasi yang sebenarnya. Bab ini lebih memberikan waktu komputasi untuk skenario tertentu, ditambah informasi tentang bagaimana kali ini berubah ketika aspek penting, seperti jumlah wisatawan atau jumlah elemen jaringan, perubahan.
4.3 Simulasi Arus Lalulintas
Meskipun pekerjaan yang cukup selama lebih dari satu dekade terakhir (misalnya Nagel & Schleicher, 1994; Nagel & Ricky, 2001; Gawron, 1998; Cetin et al, 2003; Charypar et al, 2007), arus lalu lintas simulasi tetap modul dengan kebutuhan komputasi terbesar untuk masalah yang dihadapi. Simulasi arus lalu lintas bertanggung jawab untuk melaksanakan rencana sehari-hari di lingkungan fisik. Pada prinsipnya, model sewenang-wenang dapat digunakan, misalnya model oleh Wiedemann (1974) atau seluler Model automata (misalnya Nagel & Schreckenberg, 1992), namun keduanya membutuhkan jumlah masih terlalu besar daya komputasi. Perencanaan transportasi tidak begitu banyak tertarik pada perilaku mengemudi rinci, tetapi dalam jumlah yang dinamis lalu lintas, lalu lintas yang mencerminkan kemacetan lalu lintas, tailbacks, dibubarkannya kemacetan lalu lintas, dll model antrian (Gawron, 1998) memenuhi semua persyaratan ini. Setiap jalan adalah dimodelkan sebagai antrian di mana kendaraan harus menunggu setidaknya waktu tempuh kecepatan gratis yang jalan. Selain itu, baik aliran dan kapasitas penyimpanan setiap link terbatas. mantan menyebabkan kemacetan, penyebab kedua spillback karena link dapat menjadi penuh dan kemudian hulu Link juga menjadi macet. Simulasi arus lalu lintas menghasilkan informasi tentang di mana setiap agen adalah pada waktu tertentu hari dan apa yang dilakukannya pada saat itu. Setiap agen menghasilkan untuk setiap tindakannya (mulai / akhir dari suatu kegiatan, memasuki atau meninggalkan suatu link, dll) peristiwa temporal dan spasial lokal.
4.3.1 Standar simulasi arus lalu lintas
Simulasi arus lalu lintas standar saat MATSim-T adalah CPU Java re-implementasi tunggal dari mikro-simulasi dijelaskan oleh Cetin (2005). Sebagai bagian integral dari toolkit itu memiliki keuntungan yang langsung dapat mengakses semua data dalam database objek MATSim, tabungan memakan waktu input dan output data. Karena independensi platform Java, berjalan pada semua sistem operasi besar.
Simulasi arus lalu lintas default menggunakan detik sebagai entitas terkecil waktu. Untuk setiap simulasi kedua, semua antrian (semua link jaringan) serentak mendapatkan negara baru yang ditugaskan. Akibatnya, runtime sebanding dengan jumlah link dalam skenario: Tmobsim α tsim Nlinks / At mana tsim adalah jendela real time untuk disimulasikan (biasanya 1 hari = 86.400 detik), At ukuran langkah waktu (1 detik), dan Nlinks jumlah link dalam jaringan jalan. Ada, bagaimanapun, juga beberapa overhead untuk menghasilkan peristiwa, yang tergantung pada jumlah agen dalam sistem. Melakukan Simulasi Mobility pada prosesor 2,2 GHz, perhitungan waktu untuk mensimulasikan satu hari dari lalu lintas kendaraan lengkap Switzerland (lihat di atas) membutuhkan waktu sekitar 70 menit (ca. 20,5 kali lebih cepat dari real time). Kinerja simulasi dalam implementasi naif model antrian tidak tergantung sangat banyak pada jumlah agen, masing-masing pada permintaan mereka: Setiap link diproses sekali dalam setiap langkah waktu. Hal ini dapat diterima untuk situasi di mana semua elemen jaringan yang digunakan (misalnya jam sibuk pagi hari), tetapi simulasi akan mengambil hanya selama menghitung lalu lintas rendah selama malam jam. Implementasi saat ini di MATSim-T, bagaimanapun, mematikan link yang benar-benar kosong, menghemat waktu komputasi tambahan tetapi membuat sekarang bahkan lebih tergantung pada jumlah agen dan struktur permintaan mereka.
4.3.2 deterministik, berbasis acara Queue-Simulasi (DEQSim)
DEQSim, simulasi arus lalu lintas alternatif, memperluas antrian model. Selain itu FIFO (First-In, First-Out) perilaku model antrian, simulasi ini arus lalu lintas meniru backwardstraveling kesenjangan yang dihasilkan oleh kendaraan yang meninggalkan kemacetan. Hal ini menyebabkan dinamika yang lebih realistis link padat. Juga pelaksanaannya berbeda. Daripada memperbarui semua link setiap detik, hanya beroperasi setiap kali link benar-benar mengubah keadaan. Meskipun dinamika membaik, seperti perubahan negara jarang terjadi. Dalam model antrian murni, keadaan link hanya berubah ketika kendaraan memasuki atau meninggalkan kendaraan, dan sejak sedini mungkin meninggalkan dikenal untuk setiap kendaraan, link dapat diproses tepat waktu tersebut. Itu mungkin untuk menambahkan dinamika membaik dalam. Dengan cara yang sama, dengan menambahkan "lubang" yang melakukan perjalanan mundur, dan yang, sebagai akibatnya, juga Precomputed saat ketika mereka tiba di ujung hulu link. Oleh karena itu, waktu komputasi hanya digunakan ketika agen memproduksi acara pada link. Sebagai efek samping, simulasi tidak harus menempel langkah waktu diskrit lagi. Sebuah penjelasan rinci tentang DEQSim dapat ditemukan di Charypar et al (2007). Kinerja yang T deqsim α e (a, Nlinks) dimana jumlah kejadian e sebanding dengan jumlah agen (a), masing-masing nomor dari dieksekusi rencana, dan tergantung pada jaringan jalan (jumlah link Nlinks). Pada highresolution a jaringan dari daerah yang sama, dengan agen mengandung link lebih dari pada sebuah lowresolution jaringan, sehingga menghasilkan lebih banyak peristiwa.
Untuk studi kasus yang dijelaskan di atas, 162 juta peristiwa yang dihasilkan. Total komputasi waktu untuk pelaksanaan tunggal-CPU dari DEQSim memakan waktu sekitar 50 menit (rasio real time = ~ 28). Selain itu, DEQSim juga berjalan secara paralel dengan menggunakan beberapa CPU dengan didistribusikan memori. Kinerja skala hampir linear dengan jumlah prosesor, menyiratkan bahwa di 8 CPU, 50 menit dikurangi menjadi kurang dari 7 menit. Berbeda dengan simulasi arus lalu lintas default, DEQSim ditulis dalam C + + programming bahasa. Hal ini untuk mencegah akses langsung ke data dari simulasi lalu lintas. Sebaliknya, data dibutuhkan untuk menjalankan DEQSim pertama ditulis ke disk dan kemudian dibaca oleh DEQSim. Demikian pula, DEQSim menulis event-nya ke file pada disk, dari mana toolkit MATSim membaca mereka setelah DEQSim memiliki selesai. Ini file input dan output (termasuk pengolahan membaca dalam peristiwa) membutuhkan tambahan 20 menit dalam studi kasus yang diberikan. Input sebanding dengan jumlah agen, output sekali lagi sebanding dengan jumlah kejadian. Mungkin agak mengherankan, overhead utama tidak berasal dari disk fisik I / O, tetapi dari penanganan peristiwa sementara mereka diproses di dalam MATSim.
4.4 SKOR DAN RENCANA SELEKSI
Peristiwa yang dihasilkan oleh simulasi arus lalu lintas memungkinkan untuk menghitung efektif utilitas dari setiap rencana harian, termasuk pengaruh dan efek dari interaksi agen lain. "Keberhasilan" dari rencana harian ditentukan oleh fungsi utilitas individu. Fungsi ini menjelaskan tujuan dari setiap agen, dan dengan perilakunya. Pada prinsipnya, fungsi utilitas sewenang-wenang dapat digunakan, misalnya satu berasal dari teori prospek (Avineri & Prashker, 2003). MATSim saat ini menggunakan fungsi utilitas sederhana namun efektif yang diuraikan dalam Charypar dan Nagel (2005). Hal ini terkait dengan model bottleneck Vickrey (Vickrey, 1969; Arnott et al, 1993), tetapi dimodifikasi agar konsisten dengan pendekatan berdasarkan rencana harian lengkap (Charypar & Nagel, 2005; Raney & Nagel, 2006). Tanpa pergi ke detail, unsur-unsur fungsi utilitas adalah:
Sebuah kontribusi positif untuk (biasanya) utilitas positif yang diperoleh dengan melakukan aktivitas.
Sebuah kontribusi negatif (hukuman) untuk bepergian.
Sebuah kontribusi negatif karena terlambat.
Secara intuitif, menjadi awal juga harus dihukum, namun ternyata hal ini tidak diperlukan karena "Melakukan apa-apa" sudah langsung dihukum oleh kenyataan bahwa sesuatu dengan utilitas positif bisa dilakukan bukan dalam rencana yang lebih baik. Fungsi utilitas menginduksi perilaku agen, karena agen pencarian di ruang solusi dari fungsi utilitas untuk skor yang mungkin terbaik, yang menyiratkan terbaik rencana harian. Agen tidak dapat mengoptimalkan luar ruang solusi. Aspek ini didokumentasikan dalam lebih rinci nanti. Skor dihitung dengan dua cara, tergantung pada jenis simulasi arus lalu lintas:
Dalam kasus terintegrasi (default) simulasi arus lalu lintas, skor dihitung saat peristiwa dari simulasi arus lalu lintas mencapai modul scoring. komputasi tersebut Upaya untuk menghitung nilai lebih kecil dari biaya yang disebabkan oleh penanganan peristiwa mekanisme. Setiap upaya untuk mempercepat perhitungan di akhir ini perlu mempercepat mekanisme penanganan pertama kejadian.
Dalam kasus simulasi arus lalu lintas DEQSim eksternal, skor dihitung saat Peristiwa Java yang dihasilkan dari peristiwa berkas mencapai modul scoring. ujung ini sampai menjadi masalah yang sama: Upaya komputasi utama disebabkan oleh peristiwa mekanisme penanganan.
Ada, dengan demikian, biaya komputasi mekanisme penanganan peristiwa, yang baik tersembunyi d simulasi arus lalu lintas default, atau dalam file I / O, jika kejadian yang dibaca dari file. Ini mungkin unsur perbaikan masa depan. Sebuah langkah kecil, tapi penting dalam seluruh proses penghapusan "buruk" rencana. Karena ada rencana baru yang dihasilkan dalam setiap iterasi untuk subset dari semua agen, populasi rencana per agen meningkat sampai user-defined maksimum (biasanya antara 3 sampai 6 rencana per agen). Sebelum baru rencana dapat dibuat untuk agen yang sudah memiliki banyak rencana sebagai mendefinisikan maksimum, Rencana terburuk (yang satu dengan skor terendah) akan dihapus dari populasi. Akibatnya, hanya "Baik" rencana bertahan hidup. Langkah ini membutuhkan waktu sekitar 10 detik untuk semua-of-Swiss studi.
4.5 RENCANA VARIASI (RE-PERENCANAAN)
simulasi arus lalu lintas default, atau dalam file I / O, jika kejadian yang dibaca dari file. Ini mungkin unsur perbaikan masa depan. Sebuah langkah kecil, tapi penting dalam seluruh proses penghapusan "buruk" rencana. Karena ada rencana baru yang dihasilkan dalam setiap iterasi untuk subset dari semua agen, populasi rencana per agen meningkat sampai user-defined maksimum (biasanya antara 3 sampai 6 rencana per agen). Sebelum baru rencana dapat dibuat untuk agen yang sudah memiliki banyak rencana sebagai mendefinisikan maksimum, Rencana terburuk (yang satu dengan skor terendah) akan dihapus dari populasi. Akibatnya, hanya "Baik" rencana bertahan hidup. Langkah ini membutuhkan waktu sekitar 10 detik untuk semua-of-Swiss studi. 5 RENCANA VARIASI (RE-PERENCANAAN) Perencanaan bertanggung jawab untuk memastikan bahwa setiap agen mengeksplorasi ruang solusinya. ini terjadi dengan menduplikasi program yang ada dari agen, bervariasi (bermutasi) salin, dan melaksanakan dan mencetak dalam iterasi berikutnya. Setiap modul re-perencanaan membutuhkan biaya untuk bagian tertentu dalam proses optimasi. Sebagai contoh, modul Router menghitung rute dari rencana berdasarkan jumlah lalu lintas dari simulasi arus lalu lintas lalu. The Time modul Alokasi mutator memodifikasi waktu keberangkatan dan aktivitas durasi rencana harian. Modul ini bervariasi sesuai kali secara acak. Modul tambahan bisa mengubah lokasi kegiatan ’, atau perubahan urutan kegiatan. Sebuah fakta penting adalah bahwa semua modul-modul ini bekerja secara independen dari satu sama lain. Hal ini memungkinkan seseorang untuk menambahkan jumlah sewenang-wenang modul perencanaan ulang untuk optimasi proses.
Sebuah karakterisasi modul adalah apakah mereka memodifikasi rencana secara acak (Random Mutasi) atau apakah mereka mencari solusi terbaik berdasarkan hasil simulasi arus lalu lintas lalu (Best Response). Mantan memiliki keuntungan untuk tidak menggunakan jumlah yang signifikan dari komputasi kekuasaan. Selain itu, ia mencari-cepat atau lambat-atas domain pencarian lengkap. itu kelemahan adalah bahwa modul tersebut membutuhkan (terlalu) banyak iterasi sampai optimasi rileks. Respon Terbaik modul pada bantuan pihak lain untuk bersantai sistem lebih cepat, tetapi mereka biasanya lebih kompleks dan komputasi intensif.
4.5.1 Alokasi Waktu mutator
Alokasi Waktu mutator adalah contoh khas dari modul Acak Mutasi. Ini bervariasi acak waktu keberangkatan dan durasi kegiatan dalam rencana harian. The Alokasi Waktu Mutator membutuhkan sekitar 2 detik untuk memproses agen-perencanaan ulang 10% (sekitar 220 agen 000) per iterasi.
4.5.2 Modul Router
Modul Router menghitung rute terbaik dalam rencana harian, mengingat waktu keberangkatan untuk masing-masing kaki dan waktu perjalanan dinamis dari semua jalan-jalan (yang didasarkan pada simulasi arus lalu lintas lalu). yang terbaik rute didefinisikan sebagai satu dengan utilitas paling negatif. Ini modul Response Terbaik menggunakan beban lalu lintas yang lengkap dan dinamis dari sistem untuk menemukan rute. Saat ini, MATSim memiliki tiga implementasi yang berbeda dari modul Router. Mereka semua berdasarkan varian waktu dinamis algoritma Dijkstra untuk mencari jalur terpendek dalam jaringan, dan mereka mengembalikan semua hasil yang identik. Pelaksanaan terbaru kami, Landmark-A * modul (Lefebvre & Balmer, 2007), memberikan kinerja terbaik rata-rata: Untuk studi kasus yang diberikan kebutuhan sekitar 0,1 milidetik untuk menghitung rata-rata satu rute. Untuk 7,1 juta (bermotor) rute dari "all-of-Swiss" skenario dan 10% rute replanning tingkat ini berarti 71 detik waktu per iterasi, yang bisa, bagaimanapun, akan dibagi antara CPU paralel komputasi. Hasil perhitungan tambahan untuk algoritma routing yang berbeda dan jaringan ukuran yang berbeda dapat ditemukan di koran oleh Lefebvre & Balmer (2007). Sayangnya, hasil tersebut tidak cukup untuk membuat prediksi tentang bentuk fungsional dari kompleksitas rata-rata Landmark-A * implementasi; yang paling mungkin cocok mungkin O (n2) di mana n adalah jumlah node jaringan. Ini juga memainkan peran bahwa implementasi Java dari antrian prioritas tidak menawarkan cepat "penurunan-key" operasi.
4.5.3 "planomat"
Lain modul Response terbaik tersedia di MATSim adalah planomat, dijelaskan secara rinci di Meister (2004). Modul ini tidak hanya mengoptimalkan satu aspek dari rencana harian, tapi semua bagian di waktu yang sama. Ini mendasarkan asumsinya berat pada hasil (peristiwa) dari eksekusi terakhir dari simulasi arus lalu lintas (lihat di atas). Selain itu, ia mampu mengkoordinasikan rencana harian anggota rumah tangga yang sama (misalnya makan malam bersama di rumah). Modul ini ditulis dalam C + +, tetapi dapat dipanggil dari toolkit MATSim. C + +-planomat adalah algoritma genetika (GA) dengan pengkodean khusus untuk urutan kegiatan, lokasi kegiatan, kegiatan kali, dan partisipasi aktivitas. Encoding itu dibangun dengan gagasan bahwa rencana yang "baik di pagi hari" dan rencana lain yang "baik di sore hari" harus mampu untuk menggabungkan ke dalam rencana yang "baik secara keseluruhan". Hal ini membutuhkan beberapa masukan dari GA coding dari masalah salesman keliling. Salah satu contoh dari GA menghasilkan rencana (s) untuk satu orang atau satu rumah tangga. Seperti biasa, GA bukanlah metode yang sangat cepat untuk memecahkan masalah, tapi hal ini sangat fleksibel sehubungan dengan dimasukkannya kendala tambahan, untuk fasilitas misalnya membuka times. Sebuah versi sederhana dari-planomat ditulis dalam JAVA-merupakan bagian integral dari MATSim Toolkit dan mengoptimalkan jadwal waktu. Oleh karena itu pengganti dari Alokasi Waktu Mutator. planomat menggunakan algoritma evolusioner untuk optimasi waktu keberangkatan dan jangka waktu kegiatan. Oleh karena itu jauh lebih komputasi intensif daripada Alokasi Waktu Modul mutator. Dalam studi kasus yang dijelaskan di atas, menggunakan sekitar 5,7 milidetik rata-rata untuk perhitungan respons terbaik dari waktu rencana harian tunggal. Untuk ca. 2,3 juta (bermotor) rencana dari "all-of-Swiss" skenario dan 10% planomat replanning tingkat ini menyiratkan 1331 detik waktu komputasi per iterasi, yang bisa, bagaimanapun, akan dibagi antara paralel CPU.
4.5.4 Modul tambahan
Hal ini penting untuk mengingat pada titik ini bahwa MATSim-T tidak terbatas pada modul dijelaskan di atas. Setiap pengguna dapat menambahkan modul sendiri; modul tambahan juga ditambahkan oleh pengembang. Kinerja komputasi modul tersebut akan dinilai pada waktunya ketika modul tersebut telah membuktikan nilai mereka sehubungan dengan simulasi masalah transportasi.
4.6 RELAKSASI SISTEMATIS DARI EVOLUSI ALGORITMA
Sesuai dengan kebutuhan pengguna sekarang mungkin untuk menggabungkan semua modul yang telah disebutkan sebelumnya. Proses optimasi, yaitu, pengolahan berulang tugas tunggal, dilakukan dengan toolkit. Namun, sehubungan dengan kombinasi modul satu aspek harus dipertimbangkan: Setiap tambahan modul-perencanaan kembali memperbesar ruang solusi untuk hari-rencana agen. Hal ini diperlukan bahwa ruang solusi ini benar-benar tertutup oleh fungsi utilitas. Pertimbangkan hal berikut contoh:
Jika agen hanya diperbolehkan untuk mengoptimalkan rute yang akan layak untuk mengurangi atas dijelaskan fungsi utilitas untuk Utotal = Σi Utravel, i karena agen ini tidak akan mampu untuk mengubah alokasi waktu. Namun, jika seseorang menambahkan modul alokasi waktu, dan karena itu memperbesar ruang solusi, ini harus dipertimbangkan oleh fungsi utilitas. Di sisi lain, itu adalah sah untuk menggunakan diperpanjang fungsi utilitas untuk agen yang menganggap satu-satunya pilihan rute, karena mencakup solusi lengkap ruang. Pada akun ini, pengembangan lebih lanjut fungsional dari proses optimasi MATSim-T (implementasi modul perencanaan ulang baru) sejalan dengan ekstensi model perilaku agen ’. Dalam mengikuti perilaku relaksasi dan waktu komputasi yang diperlukan coevolutionary yang algoritma akan dianalisis.
4.6.1 Pengaturan
Untuk analisis yang sesuai dari proses relaksasi khas dan dalam beberapa tahun terakhir sering digunakan setup digunakan:
Setiap agen mampu rute-pilihan.
Setiap agen mampu waktu pilihan alokasi.
Dalam setiap iterasi, sampel yang dipilih secara acak dari 10% dari semua agen menciptakan rencana baru oleh mengubah rute dari program yang ada.
Dalam setiap iterasi, sampel yang dipilih secara acak dari 10% dari semua agen menciptakan rencana baru oleh mengubah alokasi waktu dari program yang ada.
Sisanya 80% dari agen memilih program yang ada untuk eksekusi diulang. pemilihan probabilitas sesuai dengan fungsi logit pi = exp (β Si) / Σj exp (β Sj), di mana Si menunjukkan utilitas rencana i dan β adalah konstanta empiris diperkirakan.
Fungsi utilitas sesuai dengan yang diberikan dalam bagian sebelumnya.
Jumlah rencana per agen dibatasi hingga maksimal empat.
Sistem ini akan dianggap santai sekali lintasan rata-rata utilitas per iterasi merupakan proses stasioner. Sebuah penjelasan rinci tentang konfigurasi ini dengan nilai-nilai untuk parameter dari fungsi utilitas dapat ditemukan di Meister et al (2008).
5 Penutup
5.1 Kesimpulan
Penulis menarik kesimpulan bahwa Set dasar fitur MATSim dapat digunakan hanya dengan menggunakan perangkat lunak, memberikan Anda inputan data sendiri dan hanya memodifikasi file konfigurasi con untuk simulasi. Untuk penggunaan canggih, perlu untuk menulis kode program itu sendiri yang terintegrasi dengan MATSim, misalnya untuk memberikan fungsi khusus atau memiliki hasil analisis kustom Anda.
MATSim mampu mensimulasikan skenario pada jaringan dengan ratusan ribu ruas jalan. Yang Anda butuhkan adalah, komputer desktop cepat saat ini dengan memori yang cukup. Bahkan dalam kasus tersebut, MATSim sering hanya membutuhkan waktu beberapa menit untuk simulasi satu hari penuh.
5.2 Saran
Melalui bagian saran ini, penulis ingin memberikan saran bagi pengembangan dan penyempurnaan penulisan ini yaitu perlunya penambahan penulisan dan penjabaran lebih banyak lagi karena penulis masih sangat kekurangan informasi tentang MATSim itu sendiri.
Daftar Pustaka
http://www.matsim.org
http://www.lyx.org
http://www.gimp.org
http://www.openoffice.org
http://www.libreoffice.org
http://www.wikipedia.org
http://www.futurecities.ethz.ch
http://www.share-pdf.com/e060de64af884d84a3d270444205f18c/zain.htm
http://zejimandala.wordpress.com/2014/05/05/pengembangan-model-kota-hemat-energi-melalui-rekayasa-transportasi-dan-guna-lahan/ http://industrialengineering08uh.wordpress.com/2011/12/30/pemodelan-sistem-transportasi-bus-kampus-universitas-hasanuddin-dengan-pendekatan-simulasi/
Document generated by eLyXer 1.2.5 (2013-03-10) on 2014-07-05T10:15:42.604000
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar