Domanda

In passato, e ora a intermittenza, ho usato strumenti di simulazione come Simulazioni Java facili e NetLogo .

Sono ottimi strumenti per modellare visivamente vari concetti matematici / scientifici perché "tutto quello che devi fare" è scrivere il ciclo di simulazione - la grafica, ecc. è gestita per te.

Tuttavia, una cosa che ho notato è che migliorare il tempo di esecuzione / la velocità di modellazione è estremamente difficile usando tali strumenti, perché le viscere dell'implementazione sono nascoste sotto la superficie.

Esiste, in generale, un'ottima documentazione su come utilizzare gli strumenti del simulatore, ma non ho trovato nulla per migliorare i tempi di esecuzione.

Ad esempio, supponiamo che tu stia implementando il metodo di Newton per la ricerca della radice. È un algoritmo semplice, ma a seconda di

  • il tipo di allegato grafico che usi o
  • varie altre opzioni varie scelte

la simulazione verrà eseguita a velocità diverse.

C'è un modo per determinare un " ottimale " visualizzazione dei dati della simulazione?

Sto pensando a questo nel caso di utilizzare uno strumento del genere per insegnare lezioni sulla modellazione / programmazione scientifica.

È stato utile?

Soluzione

Se tutto il resto fallisce, puoi usare una combinazione di questi due approcci:

  • Indovina l'ambiente: chiediti come implementeresti le sue funzionalità, quindi deduci quale funzione richiederà probabilmente il minimo lavoro di calcolo.
  • Prova ed errore: basta confrontare diversi metodi testandoli. È di grande aiuto se l'ambiente ha qualche possibilità di temporizzare il tuo codice, come una funzione che (accuratamente) ti dice che ore sono adesso.

Non dimenticare effetti come la memorizzazione nella cache e le ottimizzazioni. Se si tenta di utilizzare una determinata funzionalità in un determinato contesto, potrebbe funzionare diversamente dall'esperienza precedente.

Altri suggerimenti

Puoi provare a utilizzare il Repast Symphony toolkit di simulazione agente. È un ambiente di programmazione maturo, gratuito e open source con molte funzioni utili. Puoi integrare Repast con Eclipse che contiene un plug-in per profiler .

Con Netlogo, puoi usare l'estensione di Profiler

    extensions [profiler]

Vedi documentazione del profiler nella home page di netlogo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top