本文目录一览

1,利用matlab的设计

可 一 找个 人叫 你

利用matlab的设计

2,计划书怎么写

内容有点长,慢慢看哦:  商业计划书怎么写?  对初创的风险企业来说,商业计划书的作用尤为重要,一个酝酿中的项目,往往很模糊,通过制订商业计划书,把正反理由都书写下来。见后再逐条推敲。风险企业家这样就能对这一项目有更清晰的认识。可以这样说,商业计划书首先是把计划中要创立的企业推销给了风险企业家自己。  其次,商业计划书还能帮助把计划中的风险企业推销给风险投资家,公司商业计划书的主要目的之一就是为了筹集资金。因此,商业计划书必须要说明:  1.创办企业的目的?为什么要冒风险,花精力、时间、资源、资金去创办风险企业?  2.创办企业所需的资金?为什么要这么多的钱?为什么投资人值得为此注入资金?  对已建的风险企业来说,商业计划书可以为企业的发展确定比较具体的方向和重点,从而使员工了解企业的经营目标,并激励他们为共同的目标而努力。更重要的是,它可以使企业的出资者以及供应商、销售商等了解企业的经营状况和经营目标,说服出资者(原有的或新来的)为企业的进一步发展提供资金。  正是基于上述理由,商业计划书将是风险企业家所写的商业文件中最主要的一个。那么,如何制订商业计划书呢?  一、怎样写好商业计划书  那些既不能给投资者以充分的信息也不能使投资者激动起来的商业计划书,其最终结果只能是被扔进垃圾箱里。为了确保商业计划书能"击中目标",风险企业家应做到以下几点:  1.关注产品  在商业计划书中,应提供所有与企业的产品或服务有关的细节,包括企业所实施的所有调查。这些问题包括:产品正处于什么样的发展阶段?它的独特性怎样?企业分销产品的方法是什么?谁会使用企业的产品,为什么?产品的生产成本是多少,售价是多少?企业发展新的现代化产品的计划是什么?把出资者拉到企业的产品或服务中来,这样出资者就会和风险企业家一样对产品有兴趣。在商业计划书中,企业家应尽量用简单的词语来描述每件事??商品及其属性的定义对企业家来说是非常明确的,但其他人却不一定清楚它们的含义。制订商业计划书的目的不仅是要出资者相信企业的产品会在世界上产生革命性的影响,同时也要使他们相信企业有证明它的论据。商业计划书对产品的阐述,要让出资者感到:"噢,这种产品是多么美妙、多么令人鼓舞啊!"  2.敢于竞争  在商业计划书中,风险企业家应细致分析竞争对手的情况。竞争对手都是谁?他们的产品是如何工作的?竞争对手的产品与本企业的产品相比,有哪些相同点和不同点?竞争对手所采用的营销策略是什么?要明确每个竞争者的销售额,毛利润、收入以及市场份额,然后再讨论本企业相对于每个竞争者所具有的竞争优势,要向投资者展示,顾客偏爱本企业的原因是:本企业的产品质量好,送货迅速,定位适中,价格合适等等,商业计划书要使它的读者相信,本企业不仅是行业中的有力竞争者,而且将来还会是确定行业标准的领先者。在商业计划书中,企业家还应阐明竞争者给本企业带来的风险以及本企业所采取的对策。  3.了解市场  商业计划书要给投资者提供企业对目标市场的深入分析和理解。要细致分析经济、地理、职业以及心理等因素对消费者选择购买本企业产品这一行为的影响,以及各个因素所起的作用。商业计划书中还应包括一个主要的营销计划,计划中应列出本企业打算开展广告、促销以及公共关系活动的地区,明确每一项活动的预算和收益。商业计划书中还应简述一下企业的销售战略:企业是使用外面的销售代表还是使用内部职员?企业是使用转卖商、分销商还是特许商?企业将提供何种类型的销售培训?此外,商业计划书还应特别关注一下销售中的细节问题。  4.表明行动的方针  企业的行动计划应该是无解可击的。商业计划书中应该明确下列问题:企业如何把产品推向市场?如何设计生产线,如何组装产品?企业生产需要哪些原料?企业拥有那些生产资源,还需要什么生产资源?生产和设备的成本是多少?企业是买设备还是租设备?解释与产品组装,储存以及发送有关的固定成本和变动成本的情况。  5.展示你的管理队伍  把一个思想转化为一个成功的风险企业,其关键的因素就是要有一支强有力的管理队伍。这支队伍的成员必须有较高的专业技术知识、管理才能和多年工作经验,要给投资者这样一种感觉:"看,这支队伍里都有谁!如果这个公司是一支足球队的话,他们就会一直杀入世界杯决赛!"管理者的职能就是计划,组织,控制和指导公司实现目标的行动。在商业计划书中,应首先描述一下整个管理队伍及其职责,然而再分别介绍每位管理人员的特殊才能、特点和造诣,细致描述每个管理者将对公司所做的贡献。商业计划书中还应明确管理目标以及组织机构图。  6.出色的计划摘要  商业计划书中的计划摘要也十分重要。它必须能让读者有兴趣并渴望得到更多的信息,它将给读者留下长久的印象。计划摘要将是风险企业家所写的最后一部分内容,但却是出资者首先要看的内容,它将从计划中摘录出与筹集资金最相干的细节:包括对公司内部的基本情况,公司的能力以及局限性,公司的竞争对手,营销和财务战略,公司的管理队伍等情况的简明而生动的概括。如果公司是一本书,它就象是这本书的封面,做得好就可以把投资者吸引住。它会风险投资家有这样的印象:"这个公司将会成为行业中的巨人,我已等不及要去读计划的其余部分了。"  二、商业计划书的内容  1.计划摘要  计划摘要列在商业计划书书的最前面,它是浓缩了的商业计划书的精华。计划摘要涵盖了计划的要点,以求一目了然,以便读者能在最短的时间内评审计划并做出判断。  计划摘要一般要有包括以下内容:公司介绍、主要产品和业务范围、市场概貌、营销策略、销售计划、生产管理计划、管理者及其组织、财务计划、资金需求状况等。  在介绍企业时,首先要说明创办新企业的思路,新思想的形成过程以及企业的目标和发展战略。其次,要交待企业现状、过去的背景和企业的经营范围。在这一部分中,要对企业以往的情况做客观的评述,不回避失误。中肯的分析往往更能赢得信任,从而使人容易认同企业的商业计划书。最后,还要介绍一下风险企业家自己的背景、经历、经验和特长等。企业家的素质对企业的成绩往往起关键性的作用。在这里,企业家应尽量突出自己的优点并表示自己强烈的进取精神,以给投资者留下一个好印象。  在计划摘要中,企业还必须要回答下列问题:  (1)企业所处的行业,企业经营的性质和范围;  (2)企业主要产品的内容;  (3)企业的市场在那里,谁是企业的顾客,他们有哪些需求;  (4)企业的合伙人、投资人是谁;  (5)企业的竞争对手是谁,竞争对手对企业的发展有何影响。  摘要要尽量简明、生动。特别要详细说明自身企业的不同之处以及企业获取成功的市场因素。如果企业家了解他所做的事情,摘要仅需2页纸就足够了。如果企业家不了解自己正在做什么,摘要就可能要写20页纸以上。  2.产品(服务)介绍  在进行投资项目评估时,投资人最关心的问题之一就是,风险企业的产品、技术或服务能否以及在多大程度上解决现实生活中的问题,或者,风险企业的产品(服务)能否帮助顾客节约开支,增加收入。因此,产品介绍是商业计划书中必不可少的一项内容。通常,产品介绍应包括以下内容:产品的概念、性能及特性、主要产品介绍、产品的市场竞争力、产品的研究和开发过程、发展新产品的计划和成本分析、产品的市场前景预测、产品的品牌和专利。  在产品(服务)介绍部分,企业家要对产品(服务)作出详细的说明,说明要准确,也要通俗易懂,使不是专业人员的投资者也能明白。一般的,产品介绍都要附上产品原型、照片或其他介绍。一般地,产品介绍必须要回答以下问题:  (1)顾客希望企业的产品能解决什么问题,顾客能从企业的产品中获得什么好处?  (2)企业的产品与竞争对手的产品相比有哪些优缺点,顾客为什么会选择本企业的产品?  (3)企业为自己的产品采取了何种保护措施,企业拥有哪些专利、许可证,或与已申请专利的厂家达成了哪些协议?  (4)为什么企业的产品定价可以使企业产生足够的利润,为什么用户会大批量地购买企业的产品?  (5)企业采用何种方式去改进产品的质量、性能,企业对发展新产品有哪些计划等等。  产品(服务)介绍的内容比较具体,因而写起来相对容易。虽然夸赞自己的产品是推销所必需的,但应该注意,企业所做的每一项承诺都是"一笔债",都要努力去兑现。要牢记,企业家和投资家所建立的是一种长期合作的伙伴关系。空口许诺,只能得意于一时。如果企业不能兑现承诺,不能偿还债务,企业的信誉必然要受到极大的损害,因而是真正的企业家所不屑为的。  3.人员及组织结构  有了产品之后,创业者第二步要做的就是结成一支有战斗力的管理队伍。企业管理的好坏,直接决定了企业经营风险的大小。而高素质的管理人员和良好的组织结构则是管理好企业的重要保证。因此,风险投资家会特别注重对管理队伍的评估。  企业的管理人员应该是互补型的,而且要具有团队精神。一个企业必须要具备负责产品设计与开发、市场营销、生产作业管理、企业理财等方面的专门人才。在商业计划书书中,必须要对主要管理人员加以阐明,介绍他们所具有的能力,他们在本企业中的职务和责任,他们过去的详细经历及背景。此外,在这部分商业计划书中,还应对公司结构做一简要介绍,包括:公司的组织机构图;各部门的功能与责任;各部门的负责人及主要成员;公司的报酬体系;公司的股东名单,包括认股权、比例和特权;公司的董事会成员;各位董事的背景资料。  4.市场预测  当企业要开发一种新产品或向新的市场扩展时,首先就要进行市场预测。如果预测的结果并不乐观,或者预测的可信度让人怀疑,那么投资者就要承担更大的风险,这对多数风险投资家来说都是不可接受的。  市场预测首先要对需求进行预测:市场是否存在对这种产品的需求?需求程度是否可以给企业带来所期望的利益?新的市场规模有多大?需求发展的未来趋向及其状态如何?影响需求都有哪些因素。其次,市场预测还要包括对市场竞争的情况??企业所面对的竞争格局进行分析:市场中主要的竞争者有哪些?是否存在有利于本企业产品的市场空档?本企业预计的市场占有率是多少?本企业进入市场会引起竞争者怎样的反应,这些反应对企业会有什么影响?等等。  在商业计划书中,市场预测应包括以下内容:市场现状综述;竞争厂商概览;目标顾客和目标市场;本企业产品的市场地位;市场区域和特征等等。  风险企业对市场的预测应建立在严密、科学的市场调查基础上。风险企业所面对的市场,本来就有更加变幻不定的、难以捉摸的特点。因此,风险企业应尽量扩大收集信息的范围,重视对环境的预测和采用科学的预测手段和方法。风险企业家应牢记的是,市场预测不是凭空想象出来,对市场错误的认识是企业经营失败的最主要原因之一。  5.营销策略  营销是企业经营中最富挑战性的环节,影响营销策略的主要因素有:  (1)消费者的特点;  (2)产品的特性;  (3)企业自身的状况;  (4)市场环境方面的因素。最终影响营销策略的则是营销成本和营销效益因素。  在商业计划书中,营销策略应包括以下内容:  (1)市场机构和营销渠道的选择;  (2)营销队伍和管理;  (3)促销计划和广告策略;  (4)价格决策。  对创业企业来说,由于产品和企业的知名度低,很难进入其他企业已经稳定的销售渠道中去。因此,企业不得不暂时采取高成本低效益的营销战略,如上门推销,大打商品广告,向批发商和零售商让利,或交给任何愿意经销的企业销售。对发展企业来说,它一方面可以利用原来的销售渠道,另一方面也可以开发新的销售渠道以适应企业的发展。  6.制造计划  商业计划书中的生产制造计划应包括以下内容:产品制造和技术设备现状;新产品投产计划;技术提升和设备更新的要求;质量控制和质量改进计划。  在寻求资金的过程中,为了增大企业在投资前的评估价值,风险企业家应尽量使生产制造计划更加详细、可靠。一般地,生产制造计划应回答以下问题:企业生产制造所需的厂房、设备情况如何;怎样保证新产品在进入规模生产时的稳定性和可靠性;设备的引进和安装情况,谁是供应商;生产线的设计与产品组装是怎样的;供货者的前置期和资源的需求量;生产周期标准的制定以及生产作业计划的编制;物料需求计划及其保证措施;质量控制的方法是怎样的;相关的其他问题。  7.财务规划  财务规划需要花费较多的精力来做具体分析,其中就包括现金流量表,资产负债表以及损益表的制备。流动资金是企业的生命线,因此企业在初创或扩张时,对流动资金需要有预先周详的计划和进行过程中的严格控制;损益表反映的是企业的赢利状况,它是企业在一段时间运作后的经营结果;资产负债表则反映在某一时刻的企业状况,投资者可以用资产负债表中的数据得到的比率指标来衡量企业的经营状况以及可能的投资回报率。  财务规划一般要包括以下内容:  (1)商业计划书的条件假设;  (2)预计的资产负债表;预计的损益表;现金收支分析;资金的来源和使用。  可以这样说,一份商业计划书概括地提出了在筹资过程中风险企业家需做的事情,而财务规划则是对商业计划书的支持和说明。因此,一份好的财务规划对评估风险企业所需的资金数量,提高风险企业取得资金的可能性是十分关键的。如果财务规划准备的不好,会给投资者以企业管理人员缺乏经验的印象,降低风险企业的评估价值,同时也会增加企业的经营风险,那么如何制订好财务规划呢?这首先要取决于风险企业的远景规划?是为一个新市场创造一个新产品,还是进入一个财务信息较多的已有市场。  着眼于一项新技术或创新产品的创业企业不可能参考现有市场的数据、价格和营销方式。因此,它要自己预测所进入市场的成长速度和可能获得纯利,并把它的设想、管理队伍和财务模型推销给投资者。而准备进入一个已有市场的风险企业则可以很容易地说明整个市场的规模和改进方式。风险企业可以在获得目标市场的信息的基础上,对企业头一年的销售规模进行规划。  企业的财务规划应保证和商业计划书的假设相一致。事实上,财务规划和企业的生产计划、人力资源计划、营销计划等都是密不可分的。 要完成财务规划,必须要明确下列问题:  (1)产品在每一个期间的发出量有多大?  (2)什么时候开始产品线扩张?  (3)每件产品的生产费用是多少?  (4)每件产品的定价是多少?  (5)使用什么分销渠道,所预期的成本和利润是多少?  (6)需要雇佣那几种类型的人?  (7)雇佣何时开始,工资预算是多少?等等。  参考资料:http://www.hsgj.org/fan/news_.asp?myxwid=901&title=%C9%CC%D2%B5%BC%C6%BB%AE%CA%E9%D4%F5%C3%B4%D0%B4&more=2&more1=2
我是做保险的新学员才几天,公司让我做计划书怎么写举例说明,谢谢!

计划书怎么写

3,求动态规划的资料

动态规划的特点及其应用 安徽 张辰 【关键词】动态规划 阶段 【摘要】 动态规划是信息学竞赛中的常见算法,本文的主要内容就是分析它的特点。 文章的第一部分首先探究了动态规划的本质,因为动态规划的特点是由它的本质所决定的。第二部分从动态规划的设计和实现这两个角度分析了动态规划的多样性、模式性、技巧性这三个特点。第三部分将动态规划和递推、搜索、网络流这三个相关算法作了比较,从中探寻动态规划的一些更深层次的特点。 文章在分析动态规划的特点的同时,还根据这些特点分析了我们在解题中应该怎样利用这些特点,怎样运用动态规划。这对我们的解题实践有一定的指导意义。 【正文】 动态规划是编程解题的一种重要的手段,在如今的信息学竞赛中被应用得越来越普遍。最近几年的信息学竞赛,不分大小,几乎每次都要考察到这方面的内容。因此,如何更深入地了解动态规划,从而更为有效地运用这个解题的有力武器,是一个值得深入研究的问题。 要掌握动态规划的应用技巧,就要了解它的各方面的特点。首要的,是要深入洞悉动态规划的本质。 §1动态规划的本质 动态规划是在本世纪50年代初,为了解决一类多阶段决策问题而诞生的。那么,什么样的问题被称作多阶段决策问题呢? §1.1多阶段决策问题 说到多阶段决策问题,人们很容易举出下面这个例子。 [例1] 多段图中的最短路径问题:在下图中找出从A1到D1的最短路径。 仔细观察这个图不难发现,它有一个特点。我们将图中的点分为四类(图中的A、B、C、D),那么图中所有的边都处于相邻的两类点之间,并且都从前一类点指向后一类点。这样,图中的边就被分成了三类(AàB、BàC、CàD)。我们需要从每一类中选出一条边来,组成从A1到D1的一条路径,并且这条路径是所有这样的路径中的最短者。 从上面的这个例子中,我们可以大概地了解到什么是多阶段决策问题。更精确的定义如下: 多阶段决策过程,是指这样的一类特殊的活动过程,问题可以按时间顺序分解成若干相互联系的阶段,在每一个阶段都要做出决策,全部过程的决策是一个决策序列[1]。要使整个活动的总体效果达到最优的问题,称为多阶段决策问题。 从上述的定义中,我们可以明显地看出,这类问题有两个要素。一个是阶段,一个是决策。 §1.2阶段与状态 阶段:将所给问题的过程,按时间或空间特征分解成若干相互联系的阶段,以便按次序去求每阶段的解。常用字母k表示阶段变量。[1] 阶段是问题的属性。多阶段决策问题中通常存在着若干个阶段,如上面的例子,就有A、B、C、D这四个阶段。在一般情况下,阶段是和时间有关的;但是在很多问题(我的感觉,特别是信息学问题)中,阶段和时间是无关的。从阶段的定义中,可以看出阶段的两个特点,一是“相互联系”,二是“次序”。 阶段之间是怎样相互联系的?就是通过状态和状态转移。 状态:各阶段开始时的客观条件叫做状态。描述各阶段状态的变量称为状态变量,常用sk表示第k阶段的状态变量,状态变量sk的取值集合称为状态集合,用Sk表示。[1] 状态是阶段的属性。每个阶段通常包含若干个状态,用以描述问题发展到这个阶段时所处在的一种客观情况。在上面的例子中,行人从出发点A1走过两个阶段之后,可能出现的情况有三种,即处于C1、C2或C3点。那么第三个阶段就有三个状态S3=每个阶段的状态都是由以前阶段的状态以某种方式“变化”而来,这种“变化”称为状态转移(暂不定义)。上例中C3点可以从B1点过来,也可以从B2点过来,从阶段2的B1或B2状态走到阶段3的C3状态就是状态转移。状态转移是导出状态的途径,也是联系各阶段的途径。 说到这里,可以提出应用动态规划的一个重要条件。那就是将各阶段按照一定的次序排列好之后,对于某个给定的阶段状态,它以前各阶段的状态无法直接影响它未来的发展,而只能通过当前的这个状态。换句话说,每个状态都是“过去历史的一个完整总结[1]”。这就是无后效性。对这个性质,下文还将会有解释。 §1.3决策和策略 上面的阶段与状态只是多阶段决策问题的一个方面的要素,下面是另一个方面的要素——决策。 决策:当各段的状态取定以后,就可以做出不同的决定,从而确定下一阶段的状态,这种决定称为决策。表示决策的变量,称为决策变量,常用uk(sk)表示第k阶段当状态为sk时的决策变量。在实际问题中,决策变量的取值往往限制在一定范围内,我们称此范围为允许决策集合。常用Dk(sk)表示第k阶段从状态sk出发的允许决策集合。显然有uk(sk) ?Dk(sk)。[1] 决策是问题的解的属性。决策的目的就是“确定下一阶段的状态”,还是回到上例,从阶段2的B1状态出发有三条路,也就是三个决策,分别导向阶段3的C1、C2、C3三个状态,即D2(B1)=有了决策,我们可以定义状态转移:动态规划中本阶段的状态往往是上一阶段和上一阶段的决策结果,由第k段的状态sk和本阶段的决策uk确定第k+1段的状态sk+1的过程叫状态转移。状态转移规律的形式化表示sk+1=Tk(sk,uk)称为状态转移方程。 这样看来,似乎决策和状态转移有着某种联系。我的理解,状态转移是决策的目的,决策是状态转移的途径。 各段决策确定后,整个问题的决策序列就构成一个策略,用p1,n=说到这里,又可以提出运用动态规划的一个前提。即这个过程的最优策略应具有这样的性质:无论初始状态及初始决策如何,对于先前决策所形成的状态而言,其以后的所有决策应构成最优策略[1]。这就是最优化原理。简言之,就是“最优策略的子策略也是最优策略”。 §1.4最优化原理与无后效性 这里,我把最优化原理定位在“运用动态规划的前提”。这是因为,是否符合最优化原理是一个问题的本质特征。对于不满足最优化原理的一个多阶段决策问题,整体上的最优策略p1,n同任何一个阶段k上的决策uk或任何一组阶段k1…k2上的子策略pk1,k2都不存在任何关系。如果要对这样的问题动态规划的话,我们从一开始所作的划分阶段等努力都将是徒劳的。 而我把无后效性定位在“应用动态规划的条件”,是因为动态规划是按次序去求每阶段的解,如果一个问题有后效性,那么这样的次序便是不合理的。但是,我们可以通过重新划分阶段,重新选定状态,或者增加状态变量的个数等手段,来是问题满足无后效性这个条件。说到底,还是要确定一个“序”。 在信息学的多阶段决策问题中,绝大部分都是能够满足最优化原理的,但它们往往会在后效性这一点上来设置障碍。所以在解题过程中,我们会特别关心“序”。对于有序的问题,就会考虑到动态规划;对于无序的问题,也会想方设法来使其有序。 §1.5最优指标函数和规划方程 最优指标函数:用于衡量所选定策略优劣的数量指标称为指标函数,最优指标函数记为fk(sk),它表示从第k段状态sk采用最优策略p*k,n到过程终止时的最佳效益值[1]。 最优指标函数其实就是我们真正关心的问题的解。在上面的例子中,f2(B1)就表示从B1点到终点D1点的最短路径长度。我们求解的最终目标就是f1(A1)。 最优指标函数的求法一般是一个从目标状态出发的递推公式,称为规划方程: 其中sk是第k段的某个状态,uk是从sk出发的允许决策集合Dk(sk)中的一个决策,Tk(sk,uk)是由sk和uk所导出的第k+1段的某个状态sk+1,g(x,uk)是定义在数值x和决策uk上的一个函数,而函数opt表示最优化,根据具体问题分别表为max或min。 ,称为边界条件。 上例中的规划方程就是: 边界条件为 这里是一种从目标状态往回推的逆序求法,适用于目标状态确定的问题。在我们的信息学问题中,也有很多有着确定的初始状态。当然,对于初始状态确定的问题,我们也可以采用从初始状态出发往前推的顺序求法。事实上,这种方法对我们来说要更为直观、更易设计一些,从而更多地出现在我们的解题过程中。 我们本节所讨论的这些理论虽然不是本文的主旨,但是却对下面要说的动态规划的特点起着基础性的作用。 §2动态规划的设计与实现 上面我们讨论了动态规划的一些理论,本节我们将通过几个例子中,动态规划的设计与实现,来了解动态规划的一些特点。 §2.1动态规划的多样性 [例2] 花店橱窗布置问题(IOI99)试题见附录 本题虽然是本届IOI中较为简单的一题,但其中大有文章可作。说它简单,是因为它有序,因此我们一眼便可看出这题应该用动态规划来解决。但是,如何动态规划呢?如何划分阶段,又如何选择状态呢? 以花束的数目来划分阶段。在这里,阶段变量k表示的就是要布置的花束数目(前k束花),状态变量sk表示第k束花所在的花瓶。而对于每一个状态sk,决策就是第k-1束花应该放在哪个花瓶,用uk表示。最优指标函数fk(sk)表示前k束花,其中第k束插在第sk个花瓶中,所能取得的最大美学值。 状态转移方程为 规划方程为 (其中A(i,j)是花束i插在花瓶j中的美学值) 边界条件 (V是花瓶总数,事实上这是一个虚拟的边界) 以花瓶的数目来划分阶段。在这里阶段变量k表示的是要占用的花瓶数目(前k个花瓶),状态变量sk表示前k个花瓶中放了多少花。而对于任意一个状态sk,决策就是第sk束花是否放在第k个花瓶中,用变量uk=1或0来表示。最优指标函数fk(sk)表示前k个花瓶中插了sk束花,所能取得的最大美学值。 状态转移方程为 规划方程为 边界条件为 两种划分阶段的方法,引出了两种状态表示法,两种规划方式,但是却都成功地解决了问题。只不过因为决策的选择有多有少,所以算法的时间复杂度也就不同。[2] 这个例子具有很大的普遍性。有很多的多阶段决策问题都有着不止一种的阶段划分方法,因而往往就有不止一种的规划方法。有时各种方法所产生的效果是差不多的,但更多的时候,就像我们的例子一样,两种方法会在某个方面有些区别。 所以,在用动态规划解题的时候,可以多想一想是否有其它的解法。对于不同的解法,要注意比较,好的算法好在哪里,差一点的算法差在哪里。从各种不同算法的比较中,我们可以更深刻地领会动态规划的构思技巧。 §2.2动态规划的模式性 这个可能做过动态规划的人都有体会,从我们上面对动态规划的分析也可以看出来。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。 划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。注意这若干个阶段一定要是有序的或者是可排序的,否则问题就无法求解。 选择状态:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。 确定决策并写出状态转移方程:之所以把这两步放在一起,是因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以,如果我们确定了决策,状态转移方程也就写出来了。但事实上,我们常常是反过来做,根据相邻两段的各状态之间的关系来确定决策。 写出规划方程(包括边界条件):在第一部分中,我们已经给出了规划方程的通用形式化表达式。一般说来,只要阶段、状态、决策和状态转移确定了,这一步还是比较简单的。 动态规划的主要难点在于理论上的设计,一旦设计完成,实现部分就会非常简单。大体上的框架如下: 对f1(s1)初始化(边界条件) for k?2 to n(这里以顺序求解为例) 对每一个sk?Sk fk(sk)?一个极值(∞或-∞) 对每一个uk(sk)?Dk(sk) sk-1?Tk(sk,uk) t?g(fk-1(sk-1),uk) y t比fk(sk)更优 n fk(sk)?t 输出fn(sn) 这个N-S图虽然不能代表全部,但足可以概括大多数。少数的一些特殊的动态规划,其实现的原理也是类似,可以类比出来。我们到现在对动态规划的分析,主要是在理论上、设计上,原因也就在此。 掌握了动态规划的模式性,我们在用动态规划解题时就可以把主要的精力放在理论上的设计。一旦设计成熟,问题也就基本上解决了。而且在设计算法时也可以按部就班地来。 但是“物极必反”,太过拘泥于模式就会限制我们的思维,扼杀优良算法思想的产生。我们在解题时,不妨发挥一下创造性,去突破动态规划的实现模式,这样往往会收到意想不到的效果。[3] §2.3动态规划的技巧性 上面我们所说的动态规划的模式性,主要指的是实现方面。而在设计方面,虽然它较为严格的步骤性,但是它的设计思想却是没有一定的规律可循的。这就需要我们不断地在实践当中去掌握动态规划的技巧,下面仅就一个例子谈一点我自己的体会。 [例3] 街道问题:在下图中找出从左下角到右上角的最短路径,每步只能向右方或上方走。 这是一道简单而又典型的动态规划题,许多介绍动态规划的书与文章中都拿它来做例子。通常,书上的解答是这样的: 按照图中的虚线来划分阶段,即阶段变量k表示走过的步数,而状态变量sk表示当前处于这一阶段上的哪一点(各点所对应的阶段和状态已经用ks在地图上标明)。这时的模型实际上已经转化成了一个特殊的多段图。用决策变量uk=0表示向右走,uk=1表示向上走,则状态转移方程如下: (这里的row是地图竖直方向的行数) 我们看到,这个状态转移方程需要根据k的取值分两种情况讨论,显得非常麻烦。相应的,把它代入规划方程而付诸实现时,算法也很繁。因而我们在实现时,一般是不会这么做的,而代之以下面方法: 将地图中的点规则地编号如上,得到的规划方程如下: (这里Distance表示相邻两点间的边长) 这样做确实要比上面的方法简单多了,但是它已经破坏了动态规划的本来面目,而不存在明确的阶段特征了。如果说这种方法是以地图中的行(A、B、C、D)来划分阶段的话,那么它的“状态转移”就不全是在两个阶段之间进行的了。 也许这没什么大不了的,因为实践比理论更有说服力。但是,如果我们把题目扩展一下:在地图中找出从左下角到右上角的两条路径,两条路径中的任何一条边都不能重叠,并且要求两条路径的总长度最短。这时,再用这种“简单”的方法就不太好办了。 如果非得套用这种方法的话,则最优指标函数就需要有四维的下标,并且难以处理两条路径“不能重叠”的问题。 而我们回到原先“标准”的动态规划法,就会发现这个问题很好解决,只需要加一维状态变量就成了。即用sk=(ak,bk)分别表示两条路径走到阶段k时所处的位置,相应的,决策变量也增加一维,用uk=(xk,yk)分别表示两条路径的行走方向。状态转移时将两条路径分别考虑: 在写规划方程时,只要对两条路径走到同一个点的情况稍微处理一下,减少可选的决策个数: 从这个例子中可以总结出设计动态规划算法的一个技巧:状态转移一般是在相邻的两个阶段之间(有时也可以在不相邻的两个阶段间),但是尽量不要在同一个阶段内进行。 动态规划是一种很灵活的解题方法,在动态规划算法的设计中,类似的技巧还有很多。要掌握动态规划的技巧,有两条途径:一是要深刻理解动态规划的本质,这也是我们为什么一开始就探讨它的本质的原因;二是要多实践,不但要多解题,还要学会从解题中探寻规律,总结技巧。 §3动态规划与一些算法的比较 动态规划作为诸多解题方法中的一种,必然和其他一些算法有着诸多联系。从这些联系中,我们也可以看出动态规划的一些特点。 §3.1动态规划与递推 ——动态规划是最优化算法 由于动态规划的“名气”如此之大,以至于很多人甚至一些资料书上都往往把一种与动态规划十分相似的算法,当作是动态规划。这种算法就是递推。实际上,这两种算法还是很容易区分的。 按解题的目标来分,信息学试题主要分四类:判定性问题、构造性问题、计数问题和最优化问题。我们在竞赛中碰到的大多是最优化问题,而动态规划正是解决最优化问题的有力武器,因此动态规划在竞赛中的地位日益提高。而递推法在处理判定性问题和计数问题方面也是一把利器。下面分别就两个例子,谈一下递推法和动态规划在这两个方面的联系。 [例4] mod 4 最优路径问题:在下图中找出从第1点到第4点的一条路径,要求路径长度mod 4的余数最小。 这个图是一个多段图,而且是一个特殊的多段图。虽然这个图的形式比一般的多段图要简单,但是这个最优路径问题却不能用动态规划来做。因为一条从第1点到第4点的最优路径,在它走到第2点、第3点时,路径长度mod 4的余数不一定是最小,也就是说最优策略的子策略不一定最优——这个问题不满足最优化原理。 但是我们可以把它转换成判定性问题,用递推法来解决。判断从第1点到第k点的长度mod 4为sk的路径是否存在,用fk(sk)来表示,则递推公式如下: (边界条件) (这里lenk,i表示从第k-1点到第k点之间的第i条边的长度,方括号表示“或(or)”运算) 最后的结果就是可以使f4(s4)值为真的最小的s4值。 这个递推法的递推公式和动态规划的规划方程非常相似,我们在这里借用了动态规划的符号也就是为了更清楚地显示这一点。其实它们的思想也是非常相像的,可以说是递推法借用了动态规划的思想解决了动态规划不能解决的问题。 有的多阶段决策问题(像这一题的阶段特征就很明显),由于不能满足最优化原理等使用动态规划的先决条件,而无法应用动态规划。在这时可以将最优指标函数的值当作“状态”放到下标中去,从而变最优化问题为判定性问题,再借用动态规划的思想,用递推法来解决问题。 §3.2动态规划与搜索 ——动态规划是高效率、高消费算法 同样是解决最优化问题,有的题目我们采用动态规划,而有的题目我们则需要用搜索。这其中有没有什么规则呢? 我们知道,撇开时空效率的因素不谈,在解决最优化问题的算法中,搜索可以说是“万能”的。所以动态规划可以解决的问题,搜索也一定可以解决。 把一个动态规划算法改写成搜索是非常方便的,状态转移方程、规划方程以及边界条件都可以直接“移植”,所不同的只是求解顺序。动态规划是自底向上的递推求解,而搜索则是自顶向下的递归求解(这里指深度搜索,宽度搜索类似)。 反过来,我们也可以把搜索算法改写成动态规划。状态空间搜索实际上是对隐式图中的点进行枚举,这种枚举是自顶向下的。如果把枚举的顺序反过来,变成自底向上,那么就成了动态规划。(当然这里有个条件,即隐式图中的点是可排序的,详见下一节。) 正因为动态规划和搜索有着求解顺序上的不同,这也造成了它们时间效率上的差别。在搜索中,往往会出现下面的情况: 对于上图(a)这样几个状态构成的一个隐式图,用搜索算法就会出现重复,如上图(b)所示,状态C2被搜索了两次。在深度搜索中,这样的重复会引起以C2为根整个的整个子搜索树的重复搜索;在宽度搜索中,虽然这样的重复可以立即被排除,但是其时间代价也是不小的。而动态规划就没有这个问题,如上图(c)所示。 一般说来,动态规划算法在时间效率上的优势是搜索无法比拟的。(当然对于某些题目,根本不会出现状态的重复,这样搜索和动态规划的速度就没有差别了。)而从理论上讲,任何拓扑有序(现实中这个条件常常可以满足)的隐式图中的搜索算法都可以改写成动态规划。但事实上,在很多情况下我们仍然不得不采用搜索算法。那么,动态规划算法在实现上还有什么障碍吗? 考虑上图(a)所示的隐式图,其中存在两个从初始状态无法达到的状态。在搜索算法中,这样的两个状态就不被考虑了,如上图(b)所示。但是动态规划由于是自底向上求解,所以就无法估计到这一点,因而遍历了全部的状态,如上图(c)所示。 一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。更重要的事搜索还可以剪枝,可能剪去大量不必要的状态,因此在空间开销上往往比动态规划要低很多。 如何协调好动态规划的高效率与高消费之间的矛盾呢?有一种折衷的办法就是记忆化算法。记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,以后再次遇到这个状态的时候,就不必重新求解了。这种方法综合了搜索和动态规划两方面的优点,因而还是很有实用价值的。 §3.3动态规划与网络流 ——动态规划是易设计易实现算法 由于图的关系复杂而无序,一般难以呈现阶段特征(除了特殊的图如多段图,或特殊的分段方法如Floyd),因此动态规划在图论中的应用不多。但有一类图,它的点却是有序的,这就是有向无环图。 在有向无环图中,我们可以对点进行拓扑排序,使其体现出有序的特征,从而据此划分阶段。在有向无还图中求最短路径的算法[4],已经体现出了简单的动态规划思想。但动态规划在图论中还有更有价值的应用。下面先看一个例子。 [例6] N个人的街道问题:在街道问题(参见例3)中,若有N个人要从左下角走向右上角,要求他们走过的边的总长度最大。当然,这里每个人也只能向右或向上走。下面是一个样例,左图是从出发地到目的地的三条路径,右图是他们所走过的边,这些边的总长度为5 + 4 + 3 + 6 + 3 + 3 + 5 + 8 + 8 + 7 + 4 + 5 + 9 + 5 + 3 = 78(不一定是最大)。 这个题目是对街道问题的又一次扩展。仿照街道问题的解题方法,我们仍然可以用动态规划来解决本题。不过这一次是N个人同时走,状态变量也就需要用N维来表示,。相应的,决策变量也要变成N维,uk=(uk,1,uk,2,…,uk,N)。状态转移方程不需要做什么改动: 在写规划方程时,需要注意在第k阶段,N条路径所走过的边的总长度的计算,在这里我就用gk(sk,uk)来表示了: 边界条件为 可见将原来的动态规划算法移植到这个问题上来,在理论上还是完全可行的。但是,现在的这个动态规划算法的时空复杂度已经是关于N的指数函数,只要N稍微大一点,这个算法就不可能实现了。 下面我们换一个思路,将N条路径看成是网络中一个流量为N的流,这样求解的目标就是使这个流的费用最大。但是本题又不同于一般的费用流问题,在每一条边e上的流费用并不是流量和边权的乘积 ,而是用下式计算: 为了使经典的费用流算法适用于本题,我们需要将模型稍微转化一下: 如图,将每条边拆成两条。拆开后一条边上有权,但是容量限制为1;另一条边没有容量限制,但是流过这条边就不能计算费用了。这样我们就把问题转化成了一个标准的最大费用固定流问题。 这个算法可以套用经典的最小费用最大流算法,在此就不细说了。(参见附录中的源程序) 这个例题是我仿照IOI97的“障碍物探测器”一题[6]编出来的。“障碍物探测器”比这一题要复杂一些,但是基本思想是相似的。类似的题目还有99年冬令营的“迷宫改造”[7]。从这些题目中都可以看到动态规划和网络流的联系。 推广到一般情况,任何有向无环图中的费用流问题在理论上说,都可以用动态规划来解决。对于流量为N(如果流量不固定,这个N需要事先求出来)的费用流问题,用N维的变量sk=(sk,1,sk,2,…,sk,N)来描述状态,其中sk,i?V(1£i£N)。相应的,决策也用N维的变量uk=(uk,1,uk,2,…,uk,N)来表示,其中uk,i?E(sk,i)(1£i£N),E(v)表示指向v的弧集。则状态转移方程可以这样表示: sk-1,i = uk,i的弧尾结点 规划方程为 边界条件为 但是,由于动态规划算法是指数级算法,因而在实现中的局限性很大,仅可用于一些N非常小的题目。然而在竞赛解题中,比如上面说到的IOI97以及99冬令营测试时,我们使用动态规划的倾向性很明显(“障碍物探测器”中,我们用的是贪心策略,求N=1或N=2时的局部最优解[8])。这主要有两个原因: 一. 虽然网络流有着经典的算法,但是在竞赛中不可能出现经典的问题。如果要运用网络流算法,则需要经过一番模型转化,有时这个转化还是相当困难的。因此在算法的设计上,灵活巧妙的动态规划算法反而要更为简单一些。 二. 网络流算法实现起来很繁,这是被人们公认的。因而在竞赛的紧张环境中,实现起来有一定模式的动态规划算法又多了一层优势。 正由于动态规划算法在设计和实现上的简便性,所以在N不太大时,也就是在动态规划可行的情况下,我们还是应该尽量运用动态规划。 §4结语 本文的内容比较杂,是我几年来对动态规划的参悟理解、心得体会。虽然主要的篇幅讲的都是理论,但是根本的目的还是指导实践。 动态规划,据我认为,是当今信息学竞赛中最灵活、也最能体现解题者水平的一类解题方法。本文内容虽多,不能涵盖动态规划之万一。“纸上得来终觉浅,绝知此事要躬行。”要想真正领悟、理解动态规划的思想,掌握动态规划的解题技巧,还需要在实践中不断地挖掘、探索。实践得多了,也就能体会到渐入佳境之妙了。 动态规划, 算法之常, 运用之妙, 存乎一心。
动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家r.e.bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。1957年出版了他的名著dynamic programming,这是该领域的第一本著作。 动态规划问世以来,在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。 虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,但是一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。 动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不象前面所述的那些搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优化问题。因此读者在学习时,除了要对基本概念和方法正确理解外,必须具体问题具体分析处理,以丰富的想象力去建立模型,用创造性的技巧去求解。我们也可以通过对若干有代表性的问题的动态规划算法进行分析、讨论,逐渐学会并掌握这一设计方法。 详细: http://baike.baidu.com/view/28146.htm

求动态规划的资料


文章TAG:控规里面c3表示什么里面  表示  什么  
下一篇