% 主程序
num_pods = 4; % Pod 数量
num_racks_per_pod = 4; % 每个 Pod 的 Rack 数量
num_nodes_per_rack = 4; % 每个 Rack 的 Node 数量
max_wavelength = 50; % 可用波长数(根据冲突图动态调整)
num_packets = 1000; % 模拟的数据包数量
packet_size = 1500; % 数据包大小(字节)
link_bandwidth = 100e6; % 链路带宽(100 Mbps)
link_delay = 1e-6; % 链路传播时延(1微秒)% 生成网络拓扑(优化连接,减少全连接)
[adj_matrix, node_list] = generate_topology(num_pods, num_racks_per_pod, num_nodes_per_rack);% 生成动态流量矩阵(含热点区域)
traffic_matrix = generate_traffic_matrix(length(node_list), num_packets);% 波长分配(使用 Misra & Gries 和贪心算法)
[wavelength_assignment, conflict_graph] = assign_wavelengths(adj_matrix, max_wavelength);% 输出冲突图信息
fprintf('冲突图边数: %d\n', sum(conflict_graph(:)) / 2);
fprintf('波长分配完成,使用的波长数: %d\n', length(unique(wavelength_assignment)));% 模拟数据传输(包含动态时延和阻塞率计算)
[avg_delay, blocking_rate] = simulate_network(adj_matrix, wavelength_assignment, traffic_matrix, link_bandwidth, link_delay, packet_size);% 输出结果
fprintf('平均时延: %.6f 秒\n', avg_delay);
fprintf('阻塞率: %.2f%%\n', blocking_rate * 100);% ================== 函数定义 ================== %function [adj_matrix, node_list] = generate_topology(num_pods, num_racks_per_pod, num_nodes_per_rack)% 生成层次化网络拓扑total_nodes = num_pods * num_racks_per_pod * num_nodes_per_rack;adj_matrix = zeros(total_nodes, total_nodes); % 邻接矩阵node_list = 1:total_nodes; % 节点列表% 构建Pod内Rack间的连接for pod = 1:num_podsstart_rack = (pod-1)*num_racks_per_pod + 1;end_rack = pod*num_racks_per_pod;racks_in_pod = start_rack:end_rack;% 每个Rack内的Node全连接for rack = racks_in_podnodes = (rack-1)*num_nodes_per_rack + 1 : rack*num_nodes_per_rack;adj_matrix(nodes, nodes) = 1;end% Pod内Rack间的连接(50%概率)for i = 1:length(racks_in_pod)for j = i+1:length(racks_in_pod)if rand() < 0.5rack1 = racks_in_pod(i);rack2 = racks_in_pod(j);range1 = (rack1-
MATLAB 程序实现了一个层次化光网络的数据传输模拟系统
2025/4/21 11:26:25
来源:https://blog.csdn.net/huanghm88/article/details/147313750
浏览:
次
关键词:MATLAB 程序实现了一个层次化光网络的数据传输模拟系统
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com