Python在运筹学教学中的应用
2022-04-22 | 所属栏目:来稿选登 | 点击:次
本文作者:肉孜买买提·马合木提 发表期数:现代职业教育 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 |