《运筹学算法CAI软件——运输问题》 用户说明 1、主界面 该程序下包含数个模块,主界面是对各个模块的综合。如图1所示,程序的主界面比较朴素,主要功能依靠菜单与快捷按钮来调用。图1中标示出了各个快捷按钮所对应的功能,每个快捷按钮都对应着一个菜单的功能。在程序运行过程中,当鼠标在快捷按钮上停留片刻时,将自动出现提示文字。  图1 主界面 2、新项目 选择主菜单“文件(F)”下的“新项目(N)”菜单,或是单击新项目按钮,都将弹出一个对话框,提示是新建一个小问题的练习还是一个大项目的解答,如图2所示。单击相应的按钮将开始一个新的项目,也可以单击取消按钮取消本次操作。由于演示部分是程序事先已经封装好了的,无法重新建立一个项目,因此演示部分将不出现在新项目的选择对话框里。 实现同样的功能,用户也可以通过直接单击主界面上的小问题练习按钮与大项目解答按钮来开始一个小问题练习或是大项目解答的新项目。 3、读取文件 在本程序中,数据文件将以四种文件格式存放: 演示数据文件,扩展名为 .sdt; 小问题数据文件,扩展名为 .edt; 小问题迭代中间数据文件,扩展名为 .tdt; 大项目数据文件,扩展名为 .ldt; 在用户的使用过程中,随着数据文件的逐步增多,有可能给用户带来一定的困惑:忘记某一类数据文件应该在哪个模块里打开了。这时只要简单地选择主菜单“文件(F)”下的“读取文件(R)”菜单,或是直接单击读取文件按钮,在弹出的打开文件对话框里选择想要打开的数据文件,程序将自动转入到与该文件相对应的模块中,并打开文件。 4、第一模块:演示部分 选择主菜单“选择(C)”下的“演示(S)”菜单,或是单击演示按钮,程序将转入到对示例的演示模块中。这时需要指定的是演示数据文件存放的目录,并选择某一示例以及该问题的初始化方法(默认为第一示例,运用西北角法),单击确定按钮后开始对该例子的演示。 进入演示模式后,直接单击鼠标左键或键盘的空格键,将继续下一步的演示。如果要回到上一步的演示结果,可以单击鼠标右键,在弹出菜单中选择“上一步(B)”项,如图3所示。此外,可以在弹出菜单中选择“另一示例(A)…”项,退出当前的示例以开始另一个新的示例,或是直接选择“退出(X)”项退出演示模块。 在演示过程中,屏幕上一次只显示一步的数据,在某些时候需要将本步的计算数据与前一步做互相比较时,程序提供了一个弹出的显示框。只要将鼠标移动到屏幕的右上角时,该框自动弹出,在框内显示出上一步的计算数据,如图4所示。 图4 弹出框 在鼠标移开屏幕右上角之后,该弹出框将自动关闭隐藏,不影响正常的演示过程。 5、第二模块:小问题练习 选择主菜单“选择(C)”下的“小练习(P)”菜单,或是单击小问题练习按钮,程序将转入到小问题练习模块中,界面如图5所示。 图5 小问题练习 在该模块中可以对8(8矩阵以下的小练习进行逐步的演示。在右上角的旋转按钮里可以选择产、销地的个数。随着旋转按钮里产、销地的改变,运费表矩阵也将自动随之改变。在右下方的五个按钮中,包含了存储数据到文件中,以及从文件中读取数据的功能。清空按钮用以根据当前的产、销地数清空运费表中的数据,复位按钮将把产、销地数与运费表复位成为图5中的默认设置。在确认数据输入无误后,单击确定按钮开始计算。此时程序将对输入的数据进行检查,剔除无效的数据,表中所有空白的单元格都将被视为零。如果数据无误,程序将检查是否出现产销不平衡的情况,一旦出现产、销不平衡,程序将给出提示,并增加虚拟点、调整表中的数据,此时用户需再次单击确定按钮,根据选择的寻找初始可行解的方法,开始相应的计算。不论选择的是何种方法,在得到初始可行解后,都统一转入对初始可行解的迭代过程,如图6所示。  图6 迭代过程 在这里同样地可以对数据进行存储,也可以从文件读取数据。单击迭代按钮,开始用位势法对分配方案进行检验和迭代,迭代结束后,在编辑框内显示出当前方案下的目标函数值。如果已经达到最优方案,将弹出对话框提示达到最优。在某些情况下,可能需要迭代许多步才能达到最优方案,如果用户在迭代了数步后不再关心其他各步的迭代过程,可以点击右下角的“直接得到结果”按钮。此时程序将不再显示中间过程,直接运算出最终的最优结果,并显示该方案的分配情况与最终目标函数值。 另外,不论在迭代的任何时候,都可以通过点击左下角的新项目按钮,重新开始一个小问题练习,但是现有的所有数据都将丢失(如果没有保存的话),因此,程序将要求你确认是否真的开始一个新的项目。 6、第三模块:大项目解答 选择主菜单“选择(C)”下的“大项目(L)”菜单,或是单击大项目解答按钮,程序将转入到对大项目的解答模块中。界面上与小问题解答相类似,但是略去了对获得初始可行解的方法的选择。在这个模块里,程序不再显示中间的任何运算过程,而只给出最终的解决方案。因此,这里可以运算的数据达到100(100矩阵。 在运算结束后,程序将把最终解决方案显示到一个网格中。由于通常情况下,该模块运算的都是较大规模的数量,结果的显示有些紊乱,并且容易让人感到迷惑。这种情况下程序提供了一个输出最终结果为文本文件的功能,在输出的文本文件中,详细记录了从产地角度来看与从销地角度来看的最佳运输方案,这一点无疑是具有较高的实用价值。