現在、効用が最も高いメッシュへエージェントが移動をするというモデルを作成しています。
メッシュ(My)には4つの区域があり、効用には3つの属性があります(fitness(属性))。
最大効用を求めるため、Universe上でUniverse.max_fitnessという変数を4次元、各3配列で設定しました。(max_fitness(区域,属性))
If My.KUIKI == 0 Then
If My.fitness(0) > Universe.max_fitness(0,0) Then
Universe.max_fitness(0,0) = My.fitness(0)
Elseif My.fitness(1) > Universe.max_fitness(0,1) Then
Universe.max_fitness(0,1) = My.fitness(1)
Elseif My.fitness(2) > Universe.max_fitness(0,2) Then
Universe.max_fitness(0,2) = My.fitness(2)
End if
End if
以上のように設定したところ、「配列値に対して演算はできません」とエラーが出ました。
この場合、配列値とはどちらを指しているのでしょうか?
また、IF文内ではそもそも配列値を使用できないのか、コードが間違っているのかどちらなのでしょうか?
モデル構築に不慣れで困っているため、お力添えいただけると幸いです。
Universe.max_fitnessが2次元、各3配列だとすると問題ありません。 ちなみに、max_fitnessのプロパティを開き、
1次元目の配列数: 3
2次元目の配列数: 3
となっていることを確認ください。
もし、「3」を入力しても登録されない場合は、「3」のあとに alt + Return を打ってみてください。
次元数の考え方を勘違いしていました。
2次元3配列に直したところ問題なく実行することができました。
早速のご回答ありがとうございました。