Aracı tabanlı modelleri tanımlamak için en iyi uygulamalar


14

Modelleme / hesaplama bilimi çalışmalarının çoğuna hâlâ ODE'lerin hâkim olduğu, bazen de oldukça ayrıntılı kümelerin hâkim olduğu matematiksel biyoloji / epidemiyolojide oldukça çalışıyorum. Bu modellerin artılarından biri, tanımlanması ve çoğaltılması oldukça kolay olmasıdır. Bir parametre değerleri tablosu ve denklemlerin kendileri ve birisine araştırmanızı uygulamak istedikleri şekilde çoğaltmak için ihtiyaç duydukları her şeyi verdiniz.

Ancak biraz daha karmaşık modeller daha popüler olmaya başladı. Onlar çünkü Ajan tabanlı modeller, özellikle, kopyalamazlar hem zor bir yayında tarif etmek ve zor görünmektedir değildir ille mükemmel ADDlerin kümesi tarafından nitelendirdi. Bu modelleri, okuyucuların neler olduğunu anlamalarını ve çoğaltmalarını göreceli olarak kolay yapmalarını sağlayacak şekilde tarif etmenin arkasında herhangi bir kılavuz - ya da sadece pratik deneyim - var mı?


1
Anladığım kadarıyla, resmen tanımlanmış bir ajan-temelli model, iyi davranışlı sıradan bir diferansiyel denklem kadar belirleyici ve yeniden üretilebilir. Literatürdeki bazı spesifik örneklere işaret edebilir misiniz?
Aron Ahmadia

@AronAhmadia Birçok ajan tabanlı model, deterministik olmayan bileşenlere dayanır. Örneğin, MASON simülasyon kütüphanesinin yaratıcıları, rasgeleliğin, rasgele sayı üretecinin kendi uygulamasını içerecek kadar önemli olduğunu düşündüler ...
Michael McGowan

@MichaelMcGowan - Bunun için endişelendim. Rastgele sayı üreteçleri tarafından yönlendirilen simülasyonlar tekrarlanabilirlik stratejisinin bir parçası olarak görülebilir olmalıdır, ancak şimdi bilim adamları sonuçlara varmak için istatistiklere güvenmek zorundadır.
Aron Ahmadia

@AronAhmadia Sorunun bir kısmı, bir ABM'nin resmi bir tanımını neyin oluşturduğuna dair çok fazla şey görmedim. Ve bu, stokasılık sorununu bir kenara bırakır.
Fomite

Yanıtlar:


4

Bu işte çalışmıyorum ama saf bir şekilde tam bir açıklamanın üç bölümü olduğunu düşünüyorum

  1. Yaşadıkları veri manzarasının açıklaması. Bunu veri yapısı (grafik (yönlendirilmiş veya yönlendirilmemiş, ağırlıklı veya ağırlıksız); ağaç; dizi; ...) ve her bir düğümle ilişkili veriler açısından açıklayın. Test bölgesi dışındaki komşular için periyodik sınır koşulları veya varsayılan durum gibi özel durum işlemlerini not edin. Muhtemelen bunun sorun alanınızla oldukça açık bir bağlantısı vardır.

  2. Acentenin iç durumunun ve kararların nasıl alındığının açıklaması. Yine, umarım bunun oldukça açık bir yorumu vardır.

  3. Temsilciler ve manzara arasındaki eylem ve güncellemelerin göreceli zamanlaması ve / veya senkronizasyonunun açıklaması; ve bir çift veya ajan grubu arasında.

Sahte kod (veya uygulama ayrıntıları ile çok kirli değilse gerçek kod) yardımcı olacaktır.


2

Volker Grimm ve diğerleri tarafından ajan tabanlı bir modeli tanımlamak için önerilen ODD (Genel Bakış, Tasarım ve Ayrıntılar) protokolü adı verilen bir şey var. Bir ABM'nin işleyişini anlamak için gerekli olan unsurların bir listesinden oluşur ve bu modellerin tanımlarını daha standart hale getirmeyi amaçlamaktadır.

Açıklanması gerekenler kontrol listesi aşağıdakilerden oluşur:

genel bakış

  1. amaç
  2. Varlıklar, durum değişkenleri ve ölçekler
  3. Sürece genel bakış ve zamanlama

tasarlamak

  1. Temel prensipler
  2. çıkma
  3. adaptasyon
  4. Hedefler
  5. Öğrenme
  6. tahmin
  7. algılama
  8. etkileşim
  9. stochasticity
  10. kolektifleri
  11. Gözlem

ayrıntılar

  1. Bafllatma
  2. Veri girişi
  3. Alt Modelleri

Daha fazla ayrıntı için:

Grimm, V., Berger, U., DeAngelis, DL, Polhill, JG, Giske, J. ve Railsback, SR (2010). ODD Protokolü: Bir Gözden Geçirme ve İlk Güncelleme. Ekolojik Modelleme, 221, 2760–2768.


1

Şimdiye kadarki en iyi yol, tüm kodunuzu ek materyal olarak dahil etmektir. Mümkünse, sonuçlarınızı yeniden oluşturmak için gerekli rasgele tohumlara sahip dosyalar da ekleyin. Bu, kullanıcıların (umursamayabileceğiniz) sonuçlarınızı yeniden oluşturmasına izin vermekle kalmaz, aynı zamanda kaldığınız yerden daha kolay devam etmelerini sağlar. Bu, işinizde yeni işbirliklerine ve alıntılara olanak tanır. Ne yazık ki, bu, kodunuzu temizlemeye ve hatanın ücretsiz olduğundan emin olmanın zorluğuyla birlikte gelir. Bu nedenle, pratikte olağan olandan daha idealdir. Ama en azından, sonuçlarınızı üretmek için kullanılan kodunuzun bir sürümünü arşivlemelisiniz, bu şekilde başka bir araştırmacı kod isterse, onu üretebilirsiniz.

Makalenizdeki açıklama açısından, o zaman modelin temel yeni özelliklerinin yüksek düzeyde, uygulamadan bağımsız bir açıklamasına konsantre olurum (bu, en iyi kağıdın elde ettiği pratik kısımdır). Eğer ince ayar yapılırsa sonucu kalitatif olarak değiştirecek özelliklere odaklanın. Çalıştığım çoğu model nicel sonuçlar üretir, ancak belirli miktarlar genellikle ilgi çekici değildir, sadece nitel davranıştır (çünkü parametreler genellikle doğada gözlemlenebilir olanlardan çok uzaktır). Bu nedenle, modelin, değiştirilirse sistemin kalitatif davranışını değiştireceği kısımlarını tanımlamaya odaklanıyorum. Eğer bu zihniyet beni modelimin son ayrıntılarını uygulamaya indirmeye zorlarsa, o zaman modelimin çok sağlam olmadığını ve dolayısıyla hurdaya çıkarılması gerektiğini biliyorum.

Kağıt içi açıklamanızın yeterli olup olmadığını test etmenin iyi bir yolu, sizinle birlikte bu projede çalışmayan bir arkadaşınızdan (veya öğrencinizden) modelinizi nasıl uygulayabileceklerini tarif etmelerini istemektir. Bunu denerken sıkışmazlarsa (aynı nitel sonuçları üretmesi gereken bir modelin taslağına gelirler gibi), o zaman iyi bir açıklama işi yaptığınızı bilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.