所有代码如下:
breed [ circles circle ]
breed [ cars car ]
breed [ person a-person ]
to setup
clear-all ;;将世界重设为初始、全空状态
setup-nodes ;;建立车站节点
setup-URT-network ;;建立城市轨道交通网络
setup-trains ;;创建列车主体
setup-OD ;;随机生成客流需求矩阵
reset-ticks ;;按时间步更新
end
to setup-nodes
set-default-shape circles "circle"
create-circles 6 ;;网络中创建6个节点
[
ask circle 0 [
setxy 0 0 ;;将车站0设置在中心位置
set size 4 ;;设置几何尺寸
set label 0 ;;设置标签
set station-type center-transfer-station ;;车站0的类型为中心换乘站
set station-capacity 4200 ;;参照地铁设计规范虚设车站最大容量
set alighting-proportion random 10 / 10 ;;设置列车在车站的下课率
]
ask circle 1 [
setxy -5 10
set size 2
set label 1
set station-type transfer-station ;;车站1的类型为一般换乘站
set station-capacity 3200
set alighting-proportion random 10 / 10
]
ask circle 2 [
setxy 8 10
set label 2
set station-type intermediate-station ;;车站2的类型为中间站
set station-capacity 2500
set alighting-proportion random 10 / 10
]
ask circle 3 [
setxy 12 -3
set size 2
set label 3 ;;车站3的类型为一般换乘站
set station-type transfer-station
set station-capacity 3200
set alighting-proportion random 10 / 10
]
ask circle 4 [
setxy 6 -11
set size 3
set label 4
set station-type larger-transfer-station ;;车站4的类型为较大换乘站
set station-capacity 3600
set alighting-proportion random 10 / 10
]
ask circle 5 [
setxy -4 -9
set label 5
set station-type end-station ;;车站5的类型为始发/终到站,即端点站
set station-capacity 2000
set alighting-proportion random 10 / 10
]
]
end
to setup-URT-network
ask circle 0 [ create-link-with circle 1 ] ;;链接车站0与车站1,进而创建红线
ask link 0 1 [
set thickness 1
set color red
set weight 1200 ;;weight的单位为米,即相邻两站间的距离
]
ask circle 0 [ create-link-with circle 3 ]
ask link 0 3 [
set thickness 1
set color red
set weight 700
]
ask circle 1 [ create-link-with circle 2 ] ;;创建绿线
ask link 1 2 [
set thickness 1
set color green
set weight 850
]
ask circle 2 [ create-link-with circle 0 ]
ask link 2 0 [
set thickness 1
set color green
set weight 1000
]
ask circle 0 [ create-link-with circle 4 ]
ask link 0 4 [
set thickness 1
set color green
set weight 650
]
ask circle 5 [ create-link-with circle 4 ] ;;创建蓝线
ask link 5 4 [
set thickness 1
set color blue
set weight 1100
]
ask circle 4 [ create-link-with circle 3 ]
ask link 2 0 [
set thickness 1
set color blue
set weight 900
]
end
to setup-trains
create-cars num-trains
[
setxy -5 10 ;;设置所有列车初始地理位置
set train-speed 9.72 ;;设置列车速度
set capacity 1000 ;;设置单列车最大载客量
set npob 0 ;;设置初始车上乘客人数
]
end
to setup-OD
create-person 15 ;;对称OD矩阵上半对角设置有15个元素
[
ask person 13 [ ;;person后边的数字13代表who值
;;任意两个海龟的who编号都不会重复,此前已创建6个circles和7条links,
;;who值已从0编号到12,故此处的who值从13开始
set O 0 ;;乘客的O点为车站0
set D 1 ;;乘客的D点为车站1
set label 01 ;;乘客的标签为01
setxy 0 0 ;;乘客已经位于出发车站0
set color 9
hatch random-poisson 3 * 60 * 0.1 ;;OD需求矩阵元素对应同类乘客数量值
]
ask person 14 [
set O 0
set D 2
set label 02
set color 15
hatch random-poisson 3 * 60 * 0.2
]
ask person 15 [
set O 0
set D 3
set label 03
set color 25
hatch random-poisson 3 * 60 * 0.2
]
ask person 16 [
set O 0
set D 4
set label 04
set color 35
hatch random-poisson 3 * 60 * 0.2
]
ask person 17 [
set O 0
set D 5
set label 05
set color 45
hatch random-poisson 3 * 60 * 0.3
]
ask person 18 [ ;;person18——person21分别代表OD12,13,14,15
set O 1
set D 2
set label 12
setxy -5 10
set color 55
hatch random-poisson 2 * 60 * 0.1 ;;set arr-rt random-poisson 2
]
ask person 19 [
set O 1
set D 3
set label 13
set color 65
hatch random-poisson 2 * 60 * 0.3
]
ask person 20 [
set O 1
set D 4
set label 14
set color 75
hatch random-poisson 2 * 60 * 0.4
]
ask person 21 [
set O 1
set D 5
set label 15
set color 85
hatch random-poisson 2 * 60 * 0.2
]
ask person 22 [ ;;person22——person24分别代表OD 23,24,25
set O 2
set D 3
set label 23
set color 95
hatch random-poisson 2 * 60 * 0.3
]
ask person 23 [
set O 2
set D 4
set label 24
set color 105
hatch random-poisson 2 * 60 * 0.4
]
ask person 24 [
set O 2
set D 5
set label 25
set color 115
hatch random-poisson 2 * 60 * 0.3
]
ask person 25 [ ;;person25——person26分别代表OD 34,35
set O 3
set D 4
set label 34
set color 125
hatch random-poisson 2 * 60 * 0.4
]
ask person 26 [
set O 3
set D 5
set label 35
set color 135
hatch random-poisson 2 * 60 * 0.6
]
ask person 27 [ ;;person7代表OD 45
set O 4
set D 5
set label 45
set color 107
hatch random-poisson 2 * 60
]
]
end
界面未进行设置,系统提示未定义问题应该如何解决?