2401_83745834 2024-03-21 10:16 采纳率: 0%
浏览 1

任意两点最短距离,和经过这个点最短距离的个数

一直找不到直接用excel表格的办法得出最短距离,就像上图把权重编为负值,然后计算最短距离。

img

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-03-21 10:17
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述: 如何在 Excel 中计算最短路径? 解答: 在 Excel 中,我们可以使用插件“Solver”来求解最短路径问题。 下面以一个简单的例子来说明。 例如,在下面的表格中,某地区的 A、B、C 三个城市之间有道路相连,每条道路的长度如下表所示: img 现在我们要寻找从 A 到 C 的最短路径。 首先,在 Excel 中添加 Solver 插件。具体操作是,点击菜单栏中的“文件”,选择“选项”,在弹出的窗口中选择“附加组件”,找到“Solver Add-in”,点击“管理”按钮,然后勾选“加载项”旁边的复选框,最后点击“确定”即可。 然后,在 Excel 表格中添加一列作为变量列,以便 Solver 插件可以对其进行优化。在本例中,我们添加一列名为“X1”的变量列,用于表示是否选择道路 AB,如果选择则为 1,否则为 0。 img 接下来,我们需要将目标函数和限制条件输入到表格中。 目标函数即为从 A 到 C 的总距离,可以使用 SUMPRODUCT 函数进行计算: =SUMPRODUCT(B2:D4,X2:X4) 其中,B2:D4 为道路长度矩阵,X2:X4 为变量列。 限制条件共有两个:选择的道路数量必须等于 2;路线必须从 A 出发,终点为 C。 第一个限制条件可以使用 COUNTIF 函数进行计算: =COUNTIF(X2:X4,"=1")=2 其中,X2:X4 为变量列,"=1" 表示选择了该道路。 第二个限制条件可以使用 SUMPRODUCT 和 IF 函数进行计算: =SUMPRODUCT(IF(B1:D1="A",X2:X4,0))=1 其中,B1:D1 为城市名称矩阵,"A" 表示起点为 A,X2:X4 为变量列。 最终设置好限制条件后,点击菜单栏中的“数据”,选择“Solver”,进行求解。在弹出的窗口中,按照下面的设置进行设置: img 设置完成后,点击“求解”按钮,即可得到最优解: img 从 A 到 C 的最短路线为 AB、BC,总距离为 7。 代码如下:
    =SUMPRODUCT(B2:D4,X2:X4)  // 目标函数
    =COUNTIF(X2:X4,"=1")=2   // 限制条件1
    =SUMPRODUCT(IF(B1:D1="A",X2:X4,0))=1   // 限制条件2
    

    注意:求解最短路径问题时,需要用到线性规划算法,如果数据量较大,可能需要较长的计算时间。同时,需要注意目标函数和限制条件的形式,以保证求解结果的正确性。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月21日