Praktik terbaik untuk menggambarkan model berbasis agen


14

Saya bekerja cukup banyak dalam biologi matematika / epidemiologi, di mana sebagian besar karya ilmu pemodelan / komputasi masih didominasi oleh set ODE, diakui kadang-kadang set cukup rumit dari mereka. Salah satu kelebihan model-model ini adalah model-model itu agak mudah digambarkan dan ditiru. Tabel nilai parameter, dan persamaan itu sendiri dan Anda telah memberi seseorang segala yang mereka butuhkan untuk mereplikasi riset Anda dengan cara apa pun yang mereka inginkan untuk mengimplementasikannya.

Namun model yang agak lebih kompleks sudah mulai menjadi lebih populer. Model berbasis agen, khususnya, tampaknya lebih sulit untuk dideskripsikan dalam publikasi, dan lebih sulit untuk ditiru, karena mereka tidak selalu digambarkan dengan sempurna oleh seperangkat ODE. Adakah pedoman - atau hanya pengalaman praktis - di belakang menggambarkan model ini sedemikian rupa sehingga pembaca memahami apa yang terjadi, dan membuatnya relatif mudah untuk ditiru?


1
Pemahaman saya adalah bahwa model berbasis agen yang dideskripsikan secara formal sama deterministik dan mudah direproduksi sebagai persamaan diferensial biasa yang berperilaku baik. Bisakah Anda menunjukkan beberapa contoh spesifik dalam literatur?
Aron Ahmadia

@AronAhmadia Banyak model berbasis agen bergantung pada komponen non-deterministik. Sebagai contoh, pencipta perpustakaan simulasi MASON menganggap keacakan cukup penting untuk memasukkan implementasi mereka sendiri dari sebuah generator bilangan acak ...
Michael McGowan

@MichaelMcGowan - Saya khawatir tentang itu. Simulasi yang didorong oleh generator bilangan acak harus dapat disemaikan sebagai bagian dari strategi reproduksibilitas, tetapi sekarang para ilmuwan harus mengandalkan statistik untuk menarik kesimpulan.
Aron Ahmadia

@AronAhmadia Bagian dari masalah ini adalah bahwa saya belum pernah melihat banyak penjelasan tentang apa yang merupakan deskripsi formal dari ABM. Dan itu mengesampingkan masalah stokastik.
Fomite

Jawaban:


4

Saya tidak bekerja dalam bisnis itu tetapi naif saya pikir ada tiga bagian untuk deskripsi lengkap

  1. Deskripsi lansekap data tempat mereka tinggal. Jelaskan ini dalam hal struktur data (grafik (diarahkan atau tidak diarahkan, tertimbang atau tidak berbobot); pohon; array; ...) dan data yang terkait dengan setiap node. Catat penanganan kasus khusus seperti kondisi batas periodik atau status asumsi untuk tetangga di luar wilayah pengujian. Agaknya ini memiliki koneksi yang cukup jelas dengan domain masalah Anda.

  2. Deskripsi keadaan internal agen dan bagaimana ia membuat keputusan. Sekali lagi, semoga ini memiliki interpretasi yang cukup jelas.

  3. Deskripsi waktu relatif dan / atau sinkronisasi tindakan dan pembaruan antara agen dan lanskap; dan antara pasangan atau kelompok agen.

Kode semu (atau bahkan kode nyata jika tidak terlalu tercemar dengan detail implementasi) akan membantu.


2

Ada sesuatu yang disebut protokol ODD (Gambaran Umum, Desain, dan Rincian), yang diusulkan oleh Volker Grimm dan lainnya untuk menggambarkan model berbasis agen. Ini terdiri dari daftar elemen yang diperlukan untuk memahami fungsi ABM dan bertujuan untuk membuat deskripsi model-model tersebut lebih terstandarisasi.

Daftar periksa apa yang harus dijelaskan terdiri dari:

Gambaran

  1. Tujuan
  2. Entitas, variabel status, dan skala
  3. Ikhtisar proses dan penjadwalan

Rancangan

  1. Prinsip dasar
  2. Munculnya
  3. Adaptasi
  4. Tujuan
  5. Belajar
  6. Ramalan
  7. Merasakan
  8. Interaksi
  9. Stochasticity
  10. Kolektif
  11. Pengamatan

Detail

  1. Inisialisasi
  2. Memasukan data
  3. Submodel

Rincian lebih lanjut dapat ditemukan di

Grimm, V., Berger, U., DeAngelis, DL, Polhill, JG, Giske, J., & Railsback, SR (2010). Protokol ODD: Tinjauan dan Pembaruan Pertama. Pemodelan Ekologis, 221, 2760–2768.


1

Cara terbaik sejauh ini adalah memasukkan semua kode Anda sebagai bahan pelengkap. Jika memungkinkan, sertakan juga file dengan seed acak relevan yang diperlukan untuk membuat ulang hasil Anda. Hal ini tidak hanya memungkinkan orang untuk membuat ulang hasil Anda (yang mungkin tidak Anda pedulikan), tetapi juga memungkinkan mereka untuk lebih mudah melanjutkan di mana Anda tinggalkan. Ini memungkinkan kolaborasi dan kutipan baru untuk pekerjaan Anda. Sayangnya, ini disertai dengan kesulitan memaksa Anda untuk membersihkan kode Anda, dan memastikan bug-nya bebas. Oleh karena itu, ini lebih ideal daripada yang biasa dilakukan. Tetapi paling tidak, Anda harus mengarsipkan versi kode Anda yang digunakan untuk menghasilkan hasil Anda, dengan cara itu jika peneliti lain meminta kode, Anda dapat memproduksinya.

Dalam hal deskripsi dalam makalah Anda, maka saya akan berkonsentrasi pada tingkat tinggi, implementasi deskripsi independen dari fitur novel utama dari model (ini adalah bagian praktis yang paling bagus makalah dicapai). Berkonsentrasi pada fitur-fitur yang akan mengubah hasil secara kualitatif jika mereka tweak. Sebagian besar model yang saya kerjakan menghasilkan hasil kuantitatif, tetapi jumlah spesifik biasanya tidak menarik, hanya perilaku kualitatif (karena parameter biasanya jauh dari yang diamati di alam). Dengan demikian, saya fokus pada menggambarkan bagian-bagian model, bahwa jika diubah akan mengubah perilaku kualitatif sistem. Jika pola pikir ini memaksa saya untuk menjelaskan setiap detail terakhir dari model saya hingga implementasi, maka saya tahu bahwa model saya tidak terlalu kuat, dan karenanya harus dihapus.

Cara yang baik untuk menguji apakah deskripsi di dalam kertas Anda cukup, adalah dengan bertanya kepada seorang teman (atau siswa) yang tidak bekerja pada proyek ini dengan Anda untuk menjelaskan bagaimana mereka dapat menerapkan model Anda dengan pseudo-code. Jika mereka tidak macet saat mencoba ini (karena mereka tiba di sketsa model yang akan menghasilkan hasil kualitatif yang sama), maka Anda tahu Anda telah melakukan pekerjaan deskripsi yang baik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.