В настоящее время я работаю над программой Netlogo, в которой мне нужно использовать узлы и ссылки для решения проблемы маршрутизации транспортных средств. (ссылки называются улицами в программе)
Здесь у меня есть некоторые практические проблемы с тем, как ввести переменную скорость соединения в таблицу с другим узлом. С константами вроде 200 и т. Д. Все в порядке. В Интернете я нашел несколько примеров, где используются переменные, но я не знаю, почему я получаю следующую ошибку:
Ожидаемая постоянная.
(или почему netlogo ожидает константу)
Вот соответствующий фрагмент кода:
extensions [table]
streets-own [linkspeed linktoll]
nodes-own [netw]
;; In another piece of code linkspeed is assigned successfully to the links
to cheapcalc
;; start conditions set costs very high 300000
;; state 3 unsearched state 2 searching state 1 searched (for later purposes)
ask nodes [
set i 0 set j count nodes set netw table:make
while [i < j][
table:put netw (i) [3000000 3] set i (i + 1)]]
set i 0 let k 0
ask node 35 ;; here i use node 35 as an example.
;; node 35 is connected to node 34, 36, 20 and 50
[table:put netw (35) [0 1] ;; node need to search costs to travel to itself
;; putting constants is ok.
while [i < j]
[ask my-links
[ask both-ends
[if (who != 35) [set color blue
;; set temp ([linkspeed] of street 35 who) ;; here my real goal is to put this in stat of i. but i is easier than linkspeed.
table:put netw (who) [ i 2 ]
]
] ]
set i (i + 1)] ] ;; next node for later, no it is just repetition of the same.
end
Надеюсь, кто-то знает, что происходит ...