modellando un ecosistema in evoluzione su un paesaggio

1

Mi piacerebbe capire un po 'di più la teoria e gli approcci disponibili per modellare una popolazione che vaga attraverso un paesaggio. Assumi tempo e spazio discreti semplici come una griglia discreta e una popolazione di diverse creature e piante che sono in grado di eseguire azioni molto semplici come spostarsi in una griglia vicina o mangiare una pianta vicina (per gli animali) o espandere a una griglia vicina quadrato (per le piante). Questo è ispirato dal seguente progetto JavaScript che sembra facile quando segui la narrativa ma quando provi a modellarlo da solo usando le mie stesse astrazioni ero frustrato.

Ad esempio, un punto di decisione che ho incontrato è stato:

  • deve sapere sia la griglia dove si trova ogni cosa (pianta o animale) e le creature stesse sanno dove sono (in termini di coordinate x-y) o solo una delle due vie. Tenere queste informazioni in entrambi i posti può semplificare gli algoritmi, ma in questo caso si ha la possibilità di corruzione.

Mi è venuto in mente il seguente motore di base (pseudocodice):

while (world.containsAtLeastOneLivingThing()) {
    listOfAllPlantsAndAnimals = world.allSurvivingThings();
    var actions = [];
    for (thing: listOfAllPlantsAndAnimals)
        actions.push(thing.liveAnotherMoment()); // things like: move, eat, expand, die
    var consolidatedActions = resolveConflicts(actions);
    world.absorbChange(consolidatedActions);
}

Ho rinunciato a questo tentativo quando ho realizzato che actions deve contenere così tante informazioni (ad esempio dove sulla griglia è avvenuta l'azione, quali creature / piante sono state coinvolte, come identificare quelle creature, da qualche ID o dalla loro posizione sulla griglia), che alla fine il motore di cui sopra non riesce davvero a suddividere il problema in blocchi gestibili poiché tutta la complessità finisce nella funzione resolveConflicts .

Non sono molto interessato alla modellizzazione dell'efficienza ma piuttosto alla chiarezza degli algoritmi e delle astrazioni. Esiste un corpus più ampio di teoria che si occupa della modellizzazione di questo argomento? Programmazione del gioco forse? Sono sicuro di poterlo affrontare più facilmente in un linguaggio strongmente tipizzato come Java; provando a codificarlo in un linguaggio (JavaScript) che è sia tipicamente digitato che anche in cui ho un'esposizione limitata (e quindi non ho la capacità di esprimere concetti in modo idiomatico) sono sicuro che non aiuta.

    
posta Marcus Junius Brutus 12.02.2015 - 21:49
fonte

0 risposte

Leggi altre domande sui tag