城市主干道路网络数据生成:20个节点、10个时刻、交通拥堵模拟

本代码生成一个包含 20 个节点、100 条无向边的城市主干道路网络数据。每个节点在每个时刻都包含车辆密度和平均车速,并根据这些特征模拟交通拥堵程度,分为拥堵、缓行、畅通三类。代码提供节点连接关系、节点特征和对应标签。

import random

# 生成节点连接关系
def generate_edges(nodes):
    edges = []
    for i in range(len(nodes)):
        for j in range(i+1, len(nodes)):
            edges.append((nodes[i], nodes[j]))
    return edges

# 生成节点特征和对应标签
def generate_features(nodes, edges, num_timeslots):
    features = []
    labels = []
    for _ in range(num_timeslots):
        node_features = {}
        for node in nodes:
            # 随机生成车辆密度和平均车速
            density = random.randint(1, 100)
            speed = random.randint(30, 100)
            node_features[node] = (density, speed)
        
        # 根据车辆密度和平均车速确定交通拥堵程度
        for edge in edges:
            source, target = edge
            source_density, source_speed = node_features[source]
            target_density, target_speed = node_features[target]
            if source_density > 70 and target_density > 70:
                label = '拥堵'
            elif source_density > 50 or target_density > 50 or source_speed < 50 or target_speed < 50:
                label = '缓行'
            else:
                label = '畅通'
            labels.append(label)
        
        features.append(node_features)
    
    return features, labels

# 生成节点列表
nodes = [i for i in range(1, 21)]

# 生成节点连接关系
edges = generate_edges(nodes)

# 生成节点特征和对应标签
features, labels = generate_features(nodes, edges, 10)

# 输出节点连接关系
print('节点连接关系:')
for edge in edges:
    print(edge)

# 输出节点特征和对应标签
for i in range(len(features)):
    print('时刻{}的特征和标签:'.format(i+1))
    for node, feature in features[i].items():
        print('节点{}:车辆密度={}, 平均车速={}, 标签={}'.format(node, feature[0], feature[1], labels[i*len(edges)+nodes.index(node)]))

代码说明:

  • generate_edges(nodes) 函数生成节点之间的连接关系,共 100 条无向边。
  • generate_features(nodes, edges, num_timeslots) 函数生成每个节点在每个时刻的车辆密度和平均车速,并根据这些特征判断交通拥堵程度。
  • 代码中车辆密度和平均车速的生成是随机的,可以根据实际情况进行修改。
  • 交通拥堵程度的判断逻辑也可以根据实际需求进行调整。

输出内容:

代码会输出节点连接关系,以及每个时刻每个节点的车辆密度、平均车速和对应的交通拥堵程度标签。

应用场景:

本代码可以用于模拟城市交通状况,为交通管理提供数据支持,例如:

  • 交通流量预测
  • 拥堵路段识别
  • 交通信号控制优化
  • 导航系统开发
城市主干道路网络数据生成:20个节点、10个时刻、交通拥堵模拟

原文地址: https://www.cveoy.top/t/topic/jz5k 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录