# 交通分配问题 **Repository Path**: wyyuan/traffic-assignment-problem ## Basic Information - **Project Name**: 交通分配问题 - **Description**: 使用c#实现beckmann模型及F-W求解算法 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-17 - **Last Updated**: 2024-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #用户均衡网络配流程序 ## :door:功能 ### 网络表达 * 抽象网络 * 客票营销网络 ### 求解器 * 最短路Dijstra算法 * 经典Backmann模型 F-W 求解器 * ~~带有Side Constraint 模型的 罚函数法 求解器~~ * ~~带有Side Constraint 模型的 对偶拉格朗日乘子法 求解器~~ ## :book:一个简单的用例 ### 编译 - 如果您没有安装Visual Studio,先安装[MsBuild](https://www.microsoft.com/zh-cn/download/details.aspx?id=48159)再运行build.cmd编译项目。 ### 示例代码 以下代码位于 Assignment Command Shell 项目的Program.cs中。 1.生成网络 ```c# INetwork net = DataGenerator.GenTestNetwork3(); ``` 生成的网络展示如下: >Network: >-----------NODES----------- >n1 >n2 >-----------ARCS----------- >ID SNODE ENODE CAP. >a1 n1 n2 999 >a2 n1 n2 999 >a3 n1 n2 5 2.生成客运需求(OD表) ```c# IDemand f = DataGenerator.GenTestFlow(net); ``` 生成的需求(OD表)展示如下 >Demand: >SNODE ENODE Num. >n1 n2 10 >n2 n1 10 3.初始化F-W求解器 ```c# FWSolver s = new FWSolver() { kesi = 0.001d,//设置收敛阈值 SA = new DijstraRouteSearcher(), AS = new AoNSolver() { SA = new DijstraRouteSearcher() }, LS = new DichotomyLineSearcher() { Kesi = 0.0001d } }; ``` 4.开始配流 ```c# IFlowPattern ifd = s.Solve(net, f); ``` 结果如下: >-----------Flow Pattern----------- >ARC FLOW >a1 1.74278404163 >a2 6.17919535877523 >a3 2.07802059959477