当前位置:文档之家› 最佳任务分配模型设计

最佳任务分配模型设计

/ 、八—1前言1.1课题研究背景随着市场经济的全球化,企业市场竞争变的越来越激励,为了生存,企业的生产规模在不断的扩大,而生产过程中的分工也越来越细,这就要求生产组织对资源分配要有高度的计划性、合理性和经济性,在追求整体的生产效率和效益的同时,也要不断的追求生产成本的最低性。

要想达到这样的目的,就要求企业要充分利用现有的人力资源,提出出最经济、最合理的任务分配方案,以减少成本、降低浪费、提高经济效益为目的,才能让企业在经济全球化进程中立于不败之地。

运筹学是一门应用分析、量化、优选的方法对经济管理系统中的人、财、物等资源进行统筹安排的学科,它能为决策者提供有定量依据的最优方案,以实现最有效的管理。

运筹学前期必修课程包括微积分、线性代数、概率论与数理统计等基础理论知识,在实际应用中,运筹学涉及的面也是很广的。

可以说,运筹学是软科学中硬度”较大的一门学科,兼有逻辑的数学和数学的逻辑的性质,是现代经济管理科学中的基础理论和一种不可缺少的方法、手段和工具;它是抽象的数学理论与丰富多彩的实践相结合的桥梁”;它为从事生产社会实践和应用科学研究领域的工作人员提供了一套完整的数学方法,也为从事数学等理论研究的科研人员提供了广阔的应用领域。

运筹学从确定目标、制定方案、建立模型、制定解法都有一整套严密科学方法。

自二战以来,国内外有很多国家都利用运筹学来解决本国的实际问题,在此过程中为各国节省了大量的人力、物力、财力等资源。

在这个过程中运筹学也得到了许多的发展和研究,现阶段国内外很多公司都能很好地运用运筹学来解决任务分配问题以及其他问题。

从21世纪的发展战略上来看,势必将是计算机的时代。

各个领域都将会越来越依赖社会的整体科技创新能力和由此派生出来的知识经济,随着计算机的不断发展,人们逐渐地将计算机知识运用到其中。

许多的问题都是依靠科学来建模,而用计算机来对模型进行求解。

本次设计就是用运筹学的知识建立的一个任务分配的模型,在掌握数据结构及其算法的基础上,将数据由VB向VC++转变,并在VC++6.0中实现最佳任务分配模型程序的设计和运行。

在国外,有很多大公司都将运筹学建模能力与计算机语言结合起来,实现了对现有的资源优化配置和任务的合理分配,从而实现了企业的理想目标。

新中国成立后,我国对运筹学也开始逐渐注重,并用运筹学知识为我国解决了许多在管理、决策方面的问题,特别在解决多任务分配问题上,为决策人员节省了宝贵的时间,为企业节省了大量的资源。

虽然近几年,运筹学在我国发展比较快,但在运用和解决问题的能力上我们还与发达国家存在一定的差距。

比如资源的优化配置程度不高,在生产过程中还有很多不必要的浪费,任务分配不合理等现象还大量存在。

1.2设计的内容与意义假设有n个人,准备承担m项工作(n>=m),每个人只能承担一个任务,其中有的人不都能承担个别任务,并且每个人承担每个工作时的费用是已知的,要求制定一个任务分配方案,使所有完成任务所消耗的总费用最少。

本选题的目的就是为了解决实际生产过程中的最佳任务分配问题,以运筹学的科学计算法为基础,建立一个任务分配的模型,在掌握数据结构及其算法的基础上,将数据由VB向VC++转变,并用C++语言实现最佳任务分配模型的程序设计,通过运行程序解得我们想要的最佳任务分配方案,以达到对资源及各种项目的优化目的,从而达成理想的目标。

通过本次设计,不仅能让我们更多的了解和掌握运筹学的基础知识,还能提高我们分析问题、解决问题的能力;大大地提高了我们的建模能力,进一步掌握了一门新的语言(VC++ )和数据结构及其算法。

1.3设计的方法与步骤本次设计所用的主要算法是回溯法,设计的步骤大致可分为八步:(1)确定问题和分析问题;(2)建模;(3)编程;(4)求解模型;(5)界面设计;(6)试调;(7)测试;(8)封装。

2运筹学的应用与发展2.1运筹学释义与发展历史运筹学一词起源于20世纪30年代,运筹学最早起源于英国。

在英国,运筹学一词被称为operational research据《大英百科全书》释义,运筹学是一门应用于管理有组织系统的科学”运筹学为掌管这类系统的人提供决策目标和数量分析的工具⑴”在美国,运筹学被称为operations research缩写为O.R.),可直译为作业研究”或运用研究”其实简单、朴素的运筹学思想在我国古代文献中就有很多记载,例如丁渭主持修复皇宫和田忌赛马等事。

在1957年我国从失运筹帷幄之中,决胜千里之外”(见《史记高祖本纪》)中摘取出运筹”二字,将O.R.正式译作运筹学,它包含运用筹划,以策略取胜等意义,比较恰当地反应了这门学科的性质和内涵。

《辞海》(1979年版)中将有关运筹学的条目释义为:主要研究经济活动与军事活动中能用数量来表达有关运用、策划与管理方面的问题,根据问题的要求,通过数学的分析与运算,做出综合性的合理安排,以达到经济有效地使用人力物力财力等资源。

《中国企业管理百科全书》(1984年版)中的运筹学被释义为:应用分析、试验、量化的方法,对经济管理系统中人、财、物等有限资源进行统筹安排,为决策者提供有依据的最优方案,以实现最快最有效的管理⑴”。

运筹学的发展主要是在二战以后,它将活动扩展到了工业和政府部门等相关部门,其发展大致可以分为以下三个阶段⑴:(1)从1945年到20世纪50年代初,被称为创建时期。

特点是:从事运筹学研究的人少,范围不大,运筹学的出版物、学会、研究所等寥寥无几。

(2)从20世纪50年代初期到50年代末期,被称是运筹学的成长时期。

此阶段的主要特点是:随着电子计算机技术的迅速发展,使得运筹学中一些方法例如单纯形法、线性规划法、动态规划方法等,解决了实际管理系统中的优化问题,促进了运筹学的推广应用和发展。

(3)自20世纪60年代以来,被称为是运筹学的普及和迅速发展时期。

特点是:运筹学被进一步细分为各个分支,各个专业学术团队都迅速增多,也有了更多的期刊创办,同时运筹学的书籍也大量出版和被更多学校将运筹学课程纳入教学计划之中。

2.2运筹学研究的基本特征基本方法运筹学研究的基本特征科可概括为:系统的整体观念、多学科的综合、以及模型方法的应用⑴。

系统的整体观念可以理解为:具有相互关联、相互制约和相互作用的部门组成的具有某种特定功能的有机整体。

因为在运筹的研究过程不是对各个子系统的决策行为进行孤立的评价,而是把相互关联的子系统的决策结合起来考虑,把相互影响和制约的各个方面作为有机的统一体,从系统的整体利益出发,去寻找一个最优化、最协调的方案。

多学科的综合可以理解为:由于每个组织或系统的有效管理都涉及很多方面,所以运筹学在研究中吸取了来自各个领域、具有不同经验和技能的专家和学者。

这样增强了小组的集体智慧、提出问题和解决问题的能力。

这种多学科的协调与配合在研究初期;在分析、确定和解决问题的主要方面,在选定和探索解决问题的途径时,显得非常重要。

模型方法的应用是指:各门学科的研究都广泛运用实验的方法,但是运筹学研究系统往往不能在实验室中进行,而是用建立这个问题的数学模型或模拟模型来代替。

其中制定决策和提供科学依据是运筹学的核心,建立模型则是运筹方法的精髓。

任何一门学科从研究范围上来讲都大致可以分为四个方面:首先,观察现象得到结果和进行观察时所需的方法;其次,理论和模型的建立;再次,讲观察的现象与理论想结合,并从观察到的结果中得到预测;最后,把预测的与先观察到的想比较,并加以证实。

而在运筹学中也不例外,我们将运筹学的研究步骤划分为以下六:。

(1)表述和分析问题;(2)建立模型;(3)求解模型和优化方案;(4)测试和修正模型;(5)建立对解的有效控制;(6)方案的实施⑴o3数据结构与C++界面设计3.1数据结构与算法当谈论到算法时,很自然的就会涉及到算法所需处理的数据问题,然而,在讨论数据的结构和组织时,如果离开了对此类数据的算法及其运算的研究,那么这个研究是没有意义的。

有人将程序描述为:程序=算法+数据结构3.1.1数据结构定义由数据元素依据某种逻辑关系组织起来的结构我们成为数据结构。

这种对数据元素间的关系描述我们称为数据的逻辑结构,数据结构的实现形式是数据的存储结构,就是说它在计算机内的表示;此外,讨论数据结构时必须同时讨论该类在数据上的运算才有意义。

下面介绍数据结构中的几个基本概念:(1)数据(data):笼统地说数据就是计算机加工处理的对象。

它分为两类:数值数据(numerical data和非值数据(non-rical data)。

其中,数值数据一般是指整数、实数或复数,它主要用于商务处理、工程计算和工程计算。

而非数字数据则包括文字、图像、图形、字符、表格和语音等。

(2)数据对象:它是实例或值的集合。

(3)数据的逻辑结构:由于数据结构是由数据元素见依据某种数据关系组织起来的,那么,这种数据元素间的逻辑关系的描述我们称之为数据的逻辑结构。

用二元组表示为:DS=(D,R)( 3.1)其中,D是数据元素的有限集合,R是D中元素序偶的集合。

依据数据元素间关系特征的不同,将数据的逻辑结构划分为四类基本逻辑结构,即序列结构或线性结构、集合结构、图状结构和集合结构。

3.1.2算法什么是算法?简单的说就是求解问题的方法;也可以笼统的说成是求解一类问题的任意一种算法;但严格的讲:算法是指对特定问题求解步骤的一种描述,是指令的优先序列。

其中算法的特征有五个:(1)输入(input):可以有零个或多个输入;(2)输出(output):至少要有一个输出;(3)确定性(definiteness):每一条指令都要有确定的定义和没有二义性;(4)能行性(effectivenesS)每条指令都必须是最基本的,并且它们可以通过执行有限次基本运算来实现;(5)有穷性:算法必须在执行有限步之后停止,不能成为死循环[2]3.2数组数组是数组变量的简称,它是指一组具有相同数据类型的变量的集合。

数组中的每一个数据都是一个元素,我们称之为数组元素。

数组元素之间都有固定的先后顺序,所以对于数组来说只要知道了它的数组名和下标就可以确定数组元素。

由于数组是一种大家都非常熟悉的数据类型,在数据结构讨论中,通常使用数组来描述数据结构的顺序表示,即使用数组来实现数据的顺序存储结构。

数组有一个特点就是一旦定义就不能再添加和删除元素。

在这里,我们只讲二维数组,二维数组的一般表示为:数据类型数组名[常量表达式1][常量表达式2];其中,常量表达式1表示的是数组的行元素,常量表达式2表示的是数组的列二维数组的下标是二维的,可以认为二维数组是每个元素是一维数组的一维数组。

二维数组映射到一维存储空间是一般有两种顺序:列优先顺序和行优先顺序。

像Pasca l Basic、C和C++等大多数高级语言都是按行优先的顺序存储。

相关主题