一种单纯形表自动更新的教学演示系统及方法
文献发布时间:2023-06-19 11:05:16
技术领域
本公开涉及教学演示技术领域,特别涉及一种单纯形表自动更新的教学演示系统及方法。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。
基于单纯形表的线性规划求解算法是一种最为重要的优化算法之一。该方法不仅本身是一种高效的线性规划求解方法,同时由于蕴含了线性规划的中的理论知识,几乎所有运筹学和优化相关的教材的都包含该算法的讲解。单纯形表算法过程的理解在一定理论知识的基础上并不复杂,然而对于算法的讲解由于需要手动(不管是板书还是其他幻灯片格式)更新单纯形表中的内容,讲解过程极为繁琐。特别是在演示与课本不同的例题或者基变量时,需要对表格进行逐个的手工计算及验证。该过程不仅在课堂上无法完成,即便是在教师备课的过程中也极为耗时。
发明人发现,从线性规划求解软件的角度来看,目前已有相当成熟的线性求解器存在,但该类软件工具是面向求解而非计算过程的演示,因此并不具备单纯形的可视化功能。即便实现了完全的可视化,在讲授该时教师一般需要在不同的状态下进行暂停讲解,因此最为需要的功能是对表格的自动计算更新;而且,目前的单纯形表的自动更新结果的传输效果较差,尚无法实现教学演示数据的实时传输。
发明内容
为了解决现有技术的不足,本公开提供了一种单纯形表自动更新的教学演示系统及方法,可以根据需求构造自己的线性规划问题并使用该方法进行建模并进行计算演示,且不需要进行手动的表格计算,对于某个问题的单纯形表格中的不同状态可以更方便的进行观察,极大的提升了教学演示的效果。
为了实现上述目的,本公开采用如下技术方案:
本公开第一方面提供了一种单纯形表自动更新的教学演示系统。
一种单纯形表自动更新的教学演示系统,包括处理器以及与处理器通信的显示器,所述处理器搭载有第一表格;
获取待演示的目标函数及参数数据;
将获取的目标函数和参数数据输入到第一表格中,得到系数矩阵;
利用得到的系数矩阵及对应的数据,得到至少一种变量可选的基矩阵表及数据;
根据获取的系数矩阵、基矩阵及对应的数据,在第一表格的预设区域得到单纯形表及对应的数据,利用显示器将得到的单纯形表及对应的数据进行实时显示。
作为可能的一些实现方式,所述处理器通过无线模块与上位机和/或至少一个移动智能终端通信连接,用于实时的将单纯形表的自动更新结果所在区域进行图像截取并发送给上位机和/或多个移动智能终端。
本公开第二方面提供了一种单纯形表自动更新的教学演示方法。
一种单纯形表自动更新的教学演示方法,包括以下步骤:
获取待演示的目标函数及参数数据;
将获取的目标函数和参数数据输入到第一表格中,得到系数矩阵;
利用得到的系数矩阵及对应的数据,得到至少一种变量可选的基矩阵表及数据;
根据获取的系数矩阵、基矩阵及对应的数据,在第一表格的预设区域得到单纯形表及对应的数据,利用显示器将得到的单纯形表及对应的数据进行实时显示。
本公开第三方面提供了一种电子设备,包括处理器以及与处理器通信的显示器,所述处理器搭载有第一表格;
获取待演示的目标函数及参数数据;
将获取的目标函数和参数数据输入到第一表格中,得到系数矩阵;
利用得到的系数矩阵及对应的数据,得到至少一种变量可选的基矩阵表及数据;
根据获取的系数矩阵、基矩阵及对应的数据,在第一表格的预设区域得到单纯形表及对应的数据,利用显示器将得到的单纯形表及对应的数据进行实时显示。
与现有技术相比,本公开的有益效果是:
1、本公开所述的教学演示系统及方法,可以根据需求构造自己的线性规划问题并使用该方法进行建模并进行计算演示,且不需要进行手动的表格计算,对于某个问题的单纯形表格中的不同状态可以方便的进行观察,极大的提升了教学演示的效果。
2、本公开所述的教学演示系统及方法,在自动更新表格内容的步骤中实现了自动化,而在选择变量进出,即转轴操作的步骤中,使用了基于下拉操作的可以供用户选择的实现方式,该方式可以使教师在任意的进行基变量的选择,加大了灵活性,由于系统使用算法本身的公式来实现,确保的计算的正确性。
3、本公开所述的教学演示系统及方法,完全使用电子表格实现,没有使用任何VBA代码且不需要其他软件的支持,该系统具有较高的适用性。
4、本公开所述的教学演示系统及方法,能够实现对单纯形表的自动更新结果的快速抓取,进而将抓取的图像实时的传输给上位机或者其他智能终端,提高了教学演示或者数据共享效果。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开实施例1提供的所求问题的参数表格结构示意图。
图2为本公开实施例1提供的基矩阵结构示意图。
图3为本公开实施例1提供的变量选择下拉框示意图。
图4为本公开实施例1提供的单纯形表结构示意图。
图5为本公开实施例1提供的基变量为x4、x1和x6时的单纯形表结构示意图。
图6为本公开实施例1提供的基变量为x3、x1和x6时的单纯形表结构示意图。
图7为本公开实施例1提供的基变量为x3、x1和x2(最优解状态)时的单纯形表结构示意图。
图8为本公开实施例1提供的基变量为x3、x5和x1(基变量数值小于0,不可行解状态)时的单纯形表结构示意图。
具体实施方式
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例1:
本公开实施例1提供了一种单纯形表自动更新的教学演示系统,包括处理器以及与处理器通信的显示器,所述处理器搭载有第一表格;
获取待演示的目标函数及参数数据;
将获取的目标函数和参数数据输入到第一表格中,得到系数矩阵;
利用得到的系数矩阵及对应的数据,得到至少一种变量可选的基矩阵表及数据;
根据获取的系数矩阵、基矩阵及对应的数据,在第一表格的预设区域得到单纯形表及对应的数据,利用显示器将得到的单纯形表及对应的数据进行实时显示。
具体的工作方法如下:
S1:在表格中构建线性规划问题的标准形式;
S2:在表格中构建基变量和基矩阵;
S3:在表格中构建单纯形表及相关计算公式;
S4:在表格的基变量处设置下拉数据源。
具体的,本实施例中,采用Excel 2016的电子表格,可以理解的,在其他一些实施方式中,也可以是WPS OFFICE表格编辑软件中的表格,也可以是Lotus SmartSuite等,本领域技术人员可以根据具体工况进行选择,这里不再赘述。
由于本实施例用到了部分单纯形表计算中的一些变量的符号和理论知识,为了便于描述在这里做简要的说明。单纯形表的结构在不同的教材和教程中并不完全相同,因此这里实现的是其中一种。其他形式可以进行类似的实现,首先假设所解决的线性规划问题已经化为了标准形式,添加的松弛变量的数量与等式数量相同,具体的问题的标准形式如下所示,假设所求问题为最小化问题:
min(-10x
sub:
x
2x
2x
x
假设所求问题的向量表示为cx,其中c和x分别为函数的系数向量和决策变量向量。假设系数矩阵为A,右侧数值向量为b,则标准型的约束可以表示为Ax=b,单纯形表的更新需要用到,算法中的基矩阵使用B来表示,与基向量相关的函数系数使用c
表1:单纯形表格计算公式
S1中,包括以下步骤:
在Excel页面中的任意位置填入原始问题的所有参数,便于后面的计算方便,结构如图1所示。
图1中的第一行填写变量的名字,第二行为对应变量的函数参数,后面三行为约束等式中的系数,也就是公式中的系数矩阵A,如果使用Excel中的区域来表示,则矩阵A为图1中的E7到J9的矩形单元格区域,图1中表格的右边为右侧数值。
S2中,包括以下步骤:
从表1中可以看出对于单纯形表中所有的数值都为基矩阵计算得到,同时为了后续能够使用户选择基变量,系统需要在合适的位置单独存储基矩阵,对于一般的单纯形法,初始状态一般使用松弛变量作为基变量,因此在本实施例中使用x4、x5和x6所对应的矩阵A的列作为基矩阵。
具体的结构如图2所示,图2中的E14到G16的单元格的值为图1中的H7到G6,同时函数参数位置也与图1中的原始问题的函数参数一致,因此可以认为图2中的变量及其下面的函数参数和矩阵与图1中的对应的变量及其下面数值的完全相同,该位置也是使用者选择基变量的位置。
为了方便选取这里使用公式和下拉功能,如图3所示,系统实现了较为方便的基变量选择操作,具体实现方法如下:
首先在图2中E12的位置使用“数据验证”功能中的“序列”功能来限定该单元格的范围,并将该范围设置为图1中的$E$5:$J$5,即变量名称行,此时点击E12单元格为下图所示,其他两个单元格F12和G12类似设置。
下一步,在图2的E13单元格中填入公式=HLOOKUP(E$12,$E$5:$J$9,2)。该公式的目的是在图1中的表格中查询E12的值,并设置行序号为2。该公式的结果为将原始表格中的x4下面单元格的数值查询到当前位置。
同理,在E14、E15和E16的位置分别填入=HLOOKUP(E$12,$E$5:$J$9,3)、=HLOOKUP(E$12,$E$5:$J$9,4)和=HLOOKUP(E$12,$E$5:$J$9,5)。
通过该方式即可实现当使用下拉操作选择任意一个变量时,图1中的参数能够完全复制到图2中对应的位置。
S3中,包括以下步骤:
在合适的位置建立单纯形表,结构和本实施例所述的位置如图4所示。
该表中除了第一行的变量名其他内容均使用Excel公式填写。其中最最左侧的变量名为基变量名,因此可以直接等于图2中的基变量名,例如,在B21中填写=E12。
在图4的表格中H21到J23的方形区域填写数组公式{=MINVERSE(E14:G16)}。注意这里的E14:G16为图2中的基矩阵的位置。公式的功能是求取基矩阵的逆矩阵,即表1中的B
下一步,在图4表格中E21到G23的区域中填写数组公式{=MMULT(H21:J23,E7:G9)}。其中E7:G9为图1中的矩阵A参数,H21:J23是前面求出的基矩阵的逆,即使用该公式计算B
图4中的第20行为变量变化值,计算公式为表1中的第一行。其中图4中的H20到J20的填写公式为{=-MMULT(E13:G13,H21:J23)},即使用基矩阵的逆与基变量的函数参数相乘。这里不使用A与前面的原因相同。且由于x4到x6的函数参数为0,因此直接变为负数(c’-c
对于图4中的E20到G20值需要计算公式c’-cb’B
首先在表格的其他位置(本实施例中使用H13到J13)填入公式{=MMULT(-H20:J20,E7:G9)},其功能是首先把H20到J20的值变为正号;
然后与A相乘(图1中的E7到G9),得到cb’B
图4中的D20位置为公式=-MMULT(-H20:J20,L7:L9),得到-c
图4中D21到D23的位置填写公式{=MMULT(H21:J23,L7:L9)},得到B
如图5、图6、图7和图8所示,为了演示本系统的有效性,展示了几个单纯形表的计算状态,同时,图1为初始状态,基变量为x4、x5和x6。
实施例2:
本公开实施例2提供了一种单纯形表自动更新的教学演示方法,包括以下步骤:
获取待演示的目标函数及参数数据;
将获取的目标函数和参数数据输入到第一表格中,得到系数矩阵;
利用得到的系数矩阵及对应的数据,得到至少一种变量可选的基矩阵表及数据;
根据获取的系数矩阵、基矩阵及对应的数据,在第一表格的预设区域得到单纯形表及对应的数据,利用显示器将得到的单纯形表及对应的数据进行实时显示。
详细步骤与实施例1中提供的方法相同,这里不再赘述。
实施例3:
本公开实施例3提供了一种电子设备,包括处理器以及与处理器通信的显示器,所述处理器搭载有第一表格;
获取待演示的目标函数及参数数据;
将获取的目标函数和参数数据输入到第一表格中,得到系数矩阵;
利用得到的系数矩阵及对应的数据,得到至少一种变量可选的基矩阵表及数据;
根据获取的系数矩阵、基矩阵及对应的数据,在第一表格的预设区域得到单纯形表及对应的数据,利用显示器将得到的单纯形表及对应的数据进行实时显示。
详细步骤与实施例1中提供的方法相同,这里不再赘述。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
- 一种单纯形表自动更新的教学演示系统及方法
- 一种蓝牙手表的时区自动更新方法及系统