如何确定数据集的最佳数据结构/实现?

时间:2016-12-21 15:45:10

标签: excel vba algorithm data-structures shortest-path

前言:我是一名自学成才的编码员,因此我的很多知识仅限于我的研究。我希望有其他意见,因为我想第一次正确地构建东西。我需要帮助确定适当的解决方案以及如何实施解决方案。

我希望根据不同的交通方式(nodes)和不同的道路,建立一个成本最低的替代模型(基本上是最短路径),以便在不同地点(vehicles)之间进行交付(paths)。另一个考虑因素是产品价格(value),以确定最低成本路径。

以下是我的重要数据项:

  • nodes:产品往返的城市。
  • paths:道路的成本不同,具体取决于道路。
  • vehicles:不同的车辆在运输时(摩托车,汽车,卡车)的租赁费用不同。请注意,车辆的成本并不是恒定的,而是高度依赖于往返节点。例如,使用汽车从城市A到城市B的费用与使用汽车从城市B到A或城市A到城市C的费用不同。
  • value:产品价值。同样,产品的价值高度依赖于其目的节点。同一产品在A,B或C城市可能具有不同的价值。

问题陈述

如何设置数据结构以最佳地确定将产品从一个位置获取到每个其他位置的最低成本路径。

可能的解决方案

从我的研究中,我相信加权图数据结构最适合我的情况与 dijkstra的算法相结合。我认为首先要创建一个仅nodespaths的简单加权图表,这对于简化问题至关重要。

然后,在此之后添加vehicle费用和产品value注意事项。也许只是将这两个值添加为“访问”node的费用? (又将其纳入path费用?)

关于我目前解决方案的想法?我忽略了其他考虑因素?也许是更好的解决方案?

实施

我希望能够在Excel VBA中构建它(因为这就是我学习如何编写代码的方式)而Excel就是我用于工具的东西。 VBA在这项任务中会受到限制吗?如何将我的分析与Excel结合使用另一种语言?

2 个答案:

答案 0 :(得分:0)

试用温斯顿的实用管理科学书。 Albright并查看有关运营管理的章节 - 从简单的开始就解释了很多模型。可在线获取pdf:http://ingenieria-industrial.net/downloads/practicalmanagementscience.pdf

答案 1 :(得分:0)

VBA更像是一种脚本语言,而不是一种完整的脚本语言,尽管人们可能认为底层框架是.NET。你为什么不用C ++或Java?如果你直观地理解数据结构和算法,那么在这些方面它将是一个轻而易举的编码。 Sedgewick和Wayne的算法第4章对最短路径有一个很好的解释。如果您预见顶点上有任何负重量周期,您也可以考虑研究Bellman-Ford算法。