面向对象的优化设计软件研究
【摘要】:本文的主要目标是研究面向对象的优化设计软件系统。对于简单的优化设计问题,用户不需要编写数学模型的程序,只要通过界面按系统约定格式输入目标函数和约束条件函数表达式,即可进行优化求解;对于工程优化设计问题,因其数学模型复杂而不能够通过界面输入,若该问题是系统初次遇到的,用户可以编写该数学模型的程序、添加相关参数的输入界面,对系统进行扩展后使用系统求解;若该数学模型已经有用户定义过,则只需在系统界面中输入具体设计任务、参数、选择优化算法即可方便地实现优化设计。因此,本研究具有降低对用户编程能力的要求、不同用户实现的资源共享以及避免重复工作的特点。
采用面向对象中称为三层设计的方法,将优化设计软件系统中所有的对象分成相互独立又相互联系三类:问题域对象、图形用户界面对象和数据访问对象。在任何工程优化设计中,主要解决的两个问题是建立优化设计的数学模型和应用优化算法求解该数学模型。根据面向对象方法,抽象出优化设计软件系统问题域的两个对象——优化设计数学模型和优化设计求解方法对象。在面向对象编程中,对象是通过类来定义的,因此将其定义为相应的两个抽象类——OptimumModel类和OptimumSolution类,它们分别表示所有优化设计的数学模型和求解方法共同的特性。
对于实际中不同优化设计问题的数学模型和求解方法,则通过面向对象方法的继承和多态性,创建OptimumModel类和OptimumSolution类的派生类来实现其差异。对于所有信息可以由用户通过图形界面输入的优化设计数学模型,本系统将其定义为OptimumModel类的子类InputableGeneralOptimumModel类。本系统还主要针对传统的优化算法,将其定义为OptimumSolution的子类。
由于数学模型的函数表达式常常带有∑、∏和用户自定义的函数,本文利用.NET框架引入的正则表达式,实现对函数表达式的分析与运算。通过两个具体的算例对该方法进行了考核,结果是正确的。
利用面向对象编程语言Visual Basic.NET实现优化设计软件的开发。通过考核题目,证明了系统的准确性和可靠性。最后,以离合器碟形弹簧和直齿圆柱齿轮优化设计为例,将其数学模型定义为OptimumModel类的子类——LHQDXTHOptimumModel和CYZCLCDOptimumModel类,并使用系统已定义的优化求解方法类进行优化计算,通过工程实例证明了本优化设计软件系统的灵活性和扩展性。