本文作者:肉孜买买提·马合木提 发表期数:现代职业教育 2022年6期 本文字数:2466
[摘 要] 分析當前运筹学实验课的发展趋向,把Python语言结合到运筹学规划问题上来,通过Pulp 和 Tkinter模块设计了可以简单地求规划问题(包括整数变量、0-1变量)最优解的界面。
[关 键 词] 运筹学;线性规划;Python;Tkinter
[中图分类号] G642 [文献标志码] A [文章编号] 2096-0603(2022)06-0088-03
一、引言
(一)规划问题
运筹学是一门系统性的应用型科学,提供决策目标和数量分析[1,2]。运筹学包括线性规划、运输问题、整数规划、混合线性规划、目标规划和动态规划等。运筹学原来以讲授理论为主,随着计算机科学技术在各领域中的应用变强,运筹学应用也得到极大的促进。在这种情况下,开设运筹学试验课是大势所趋。
最近国内运筹学试验课程得到巨大的发展,目前常有的运筹学试验软件有Lingo[3]、Matlab[4]和Excel[5]。其实Python对运筹学的应用也是强大的,但是此方面的研究较少。本文介绍Python语言在运筹学试验教学中的应用,尤其是在线性规划、整数规划和混合线性规划中的应用。
(二)Python语言
Python是一种面向对象的、解释性的高级程序设计语言。当前Python与高校专业课程内容的融合变得十分重要[6]。Python是简单易学,非常适合初学者,而且包含丰富的库,目前最接近自然语言的编程语言[7]。其中的Tkinter模块在界面可视化工程中得到编程者的喜爱。本文首先介绍Tkinter模块,且通过Tkinter模块造出可视化界面,应用于线性规划、整数规划和混合线性规划中,提高学生解决实际问题的能力。
Tkinter是Python的标准GUI库,由于简单而好学,在程序界面设计工作中受编程者的喜好[8]。因为Tkinter是Python的标准库,,因此编程过程中只需用import Tk-inter来调用即可。详细内容请见参考文献[8]。
二、主要技术实现过程
(一)模块的安装
本文将使用以下扩展库:
-numpy:针对存储和处理高维数组和矩阵运算
-Tkinter:GUI设计
-sympy:符号运算和矩阵运算
-Pulp:求解线性规划包(可以处理整数规划问题)
下面介绍各模块的下载和安装。Windows 7或Win-dows 10中先按Window+R,并运行cmd,并输入
pip install Pulp
pip install numpy
pip install sympy
命令进行安装。
(二)实现过程
首先通过以下代码可以建立我们的界面。
from tkinter import Tk
root = Tk()
root.title("混合线性规划")
root.geometry(′800 × 430′)
root.resizable(width = False,height = False)
zsWindow(root)
root.mainloop()
其中,zsWindow()是一个类,被定义为
class zsWindow:
def __init__(self,root):
# 创建一个下拉列表
self.max_min = StringVar()
self.numberChosen = ttk.Combobox(root,
font=(′Arial′,13),width=12,
textvariable=self.max_min)
# 设置下拉列表的值
202204172052