城市道路网络数据生成:20个节点,100条边,10个时刻的交通状态
以下是一个示例代码,用于生成节点连接关系和节点特征数据:
import random
# 定义节点数和边数
num_nodes = 20
num_edges = 100
# 生成节点连接关系
edges = set()
while len(edges) < num_edges:
node1 = random.randint(1, num_nodes)
node2 = random.randint(1, num_nodes)
if node1 != node2:
edge = tuple(sorted([node1, node2]))
edges.add(edge)
# 定义节点特征和标签
features = {}
labels = {}
# 生成节点特征和标签
for node in range(1, num_nodes + 1):
features[node] = []
labels[node] = []
for _ in range(10):
density = random.randint(1, 100)
speed = random.uniform(0, 100)
features[node].append((density, speed))
if density > 80:
labels[node].append('拥堵')
elif density > 50:
labels[node].append('缓行')
else:
labels[node].append('畅通')
# 输出节点连接关系
print('节点连接关系:')
for edge in edges:
print(edge)
# 输出节点特征和对应标签
for node in range(1, num_nodes + 1):
print('节点', node, '的特征和标签:')
for i in range(10):
print('时刻', i+1, ':', features[node][i], labels[node][i])
输出示例:
节点连接关系:
(1, 2)
(1, 3)
(1, 4)
...
节点 1 的特征和标签:
时刻 1 : (65, 42.355) 缓行
时刻 2 : (41, 77.924) 缓行
时刻 3 : (74, 66.939) 缓行
...
节点 2 的特征和标签:
时刻 1 : (92, 98.898) 拥堵
时刻 2 : (57, 36.156) 缓行
时刻 3 : (22, 81.154) 畅通
...
请注意,此代码中的节点和边的编号是从1开始的,如果您的节点和边的编号是从0开始的,需要稍微修改代码中的范围和索引。
原文地址: https://www.cveoy.top/t/topic/jAaC 著作权归作者所有。请勿转载和采集!