2016-04-01 3 views
0

Jungs. Ich habe dieses Verfahren in NetLogo für meine Agenten (Landwirte):Wie kann der Agent den höchsten Wert zwischen zwei Werten auswählen?

to calculate-deforestation 

ask farmers [ 
    set net-family-labor (family-labor - (ag-size * cell-labor-ag-keep)) 
    set net-family-money (family-money - (ag-size * cell-cost-ag-keep)) 
    ifelse net-family-labor < 0 or net-family-money < 0 
    [ set n-aband-cell-labor (family-labor/cell-labor-ag-keep) 
     set n-aband-cell-money (family-money/cell-cost-ag-keep) 

     set n-aband with-max [ n-aband-cell-labor n-aband-cell-money ] 

     ]  

    [ set n-def-cell-labor (net-family-labor/cell-labor-deforest) 
     set n-def-cell-money (net-family-money/cell-cost-deforest) 

     set n-def with-min [ n-def-cell-labor n-def-cell-money ] 

     ] 
] 
end 

Für die "n-aband", würde Ich mag den Max-Wert zwischen "n-aband-Zell-Arbeits" bekommen und "n-Aband-Cell-Geld" (entweder das eine oder das andere; das gleiche gilt für "n-def"). Ich kenne eine begrenzte Anzahl von NetLogo-Primitiven, aber die, die ich finden konnte, funktionieren nicht für meinen Fall, zum Beispiel "mit-max", "max-n-von", "max-one-of". Ich bin mir sicher, dass es eines geben muss, das funktioniert, aber ich habe Probleme, es im NetLogo Wörterbuch zu finden. Ich frage mich, ob jemand mir einen vorschlägt, der für meinen Fall funktionieren könnte. Vielen Dank im Voraus.

Antwort

2

Wenn Sie den Maximalwert einer Liste erhalten möchten, verwenden Sie einfach max. So

set n-aband max (list n-aband-cell-labor n-aband-cell-money)

wird n-aband auf den höchsten der beiden Werte gesetzt.

+1

Ich wusste nicht, dass ich "Liste" dafür verwenden sollte, danke! –