花店的橱窗
1. 议论文帮我举几个例子和名言
例如唐太宗因为采纳了魏征的良谏而芳名远播,全国人民支持邓小平的改革开放而富足。其实你还可以举一些反例,这样更全面客观。比如马稷失街亭被诸葛亮杀了。
2. 冷藏柜橱窗怎么做
其实你可以不用做,在淘宝上买一个就行了其实你可以不用做,在淘宝上买一个就行了
3. 花店卖花应该怎么保养花的新鲜
一.折枝法:
对于一些枝梗脆性的花木,选定了用来插瓶的花枝,要用手把它折断。这样花梗没有受到压力,导管保持正常,容易吸收水分。
二.末端击碎法:
将花梗末端(约一寸左右)击碎,是吸水面积扩大。一般木本花枝如玫瑰、玉兰、绣球、丁香、牡丹、紫藤等,可多多使用此法。
三.鲜花保鲜剂:
在插花溶液中加适量的化学药剂,利用要即抑制花枝,可延长保鲜时间。
如果一时买不到保鲜剂,可用高锰酸钾四千分之一水溶液防腐,或用阿司匹林三千分之一水溶液配制成简易的保鲜剂,也能使开花。 成简易的保鲜剂,也能使开花。
四、热烫法:
将花枝基部浸入沸水中,十秒钟后拿起(脆弱娇嫩的花,只能浸一二秒种),这样可梗塞切口,防止花枝组织液体外溢,对草本花卉有较好的效果。
五、盐水或糖水养法:
在养花的水中加放食盐或食糖少许,也可在花枝刚剪下来时将切口处压碎,而用食盐擦一下,效果较热烫法尤佳。糖可使花朵鲜艳持久。
不过,含蕾未放的花枝则不宜用盐水浸养,否则花朵将很难开放。
六、液浸法:
剪下的花枝插入花瓶之前,先把其末端浸在用过的废显影液里半小时,经这样处理的花枝可延长花期。
七.茶水法:
插在花瓶里的无根鲜花,容易凋谢,一般清水插花花期只有三四天就逐渐枯萎。如果用茶水(也可用新泡的茶水,但必须待茶水完全冷却后才能用)来代替清水,
可延迟插花凋谢的时间,茶水以较浓一点为好。用茶水来插花,鲜花在7天内不会凋谢,而且花朵鲜艳夺目香气四溢。、
八.急救法:
鲜花垂头时,可剪去花枝末端一小段,再把它放在盛满冷水的容器中,仅留花头露于水面,经1-2小时,花枝就会苏醒过来,草、木本花卉均适用。
九.啤酒法:
在插着鲜花的瓶子里加进一点啤酒,或将花插下剩有泡沫的啤酒瓶里,再添加适量的清水,结果会发现,这些鲜花的保鲜期延长了。
这是因为,啤酒中含有乙醇,能为花枝切口消毒防腐,又含有糖及其他营养物质,能为枝叶提供养分。
十、保鲜剂法:
用三千分之一的阿司匹林水溶液或二千分之一的高锰酸钾水溶液养花,延长花期效果更好。
十一、浸入水剪枝法:
采集时将花枝留长一些,采回室内后,迅速将花枝基部浸入水盆中,并在水中再适当剪除一部分(注意斜剪),然后敢出立即插瓶。从市场购回的切花,插瓶前亦宜 采用同法处理。此法可有效地排除减少花茎内部的气泡阻塞,提高花枝插瓶后的吸收能力,延长保鲜期。 此外,插花用水,最好是井水,澄清的江河水等,自来水 最好放置一天再用。插花作品应尽可能放在窗台的地方,可以延长鲜花的寿命。
常见鲜花保养方法:
一、玫瑰花保养:
1.预防花头弯曲的折头现象产生,可将茎基斜切,以报纸包妥花叶,整把浸入水中吸水;
2.已发生折头现象,在温水中削去基部,插入PH3.5~4.5的保鲜液中即可恢复;
3.整理时可将外层松散的花瓣去除,插入水中的刺、叶去除,为防细菌感染伤口,应使用漂白水或保鲜剂,瓶寿命更长;
4.对乙烯敏感应远离过熟的水果(如香蕉、苹果)、香火等,以免提早凋谢。
二、百合花保养:
1.将花枝散开,使透气,并将基部3~5公分剪除插水,水平面以下的叶去除;
2.花朵开放时即将花叶药摘除,以免不小心沾到衣服不易清洗;
3.添加漂白水或保鲜剂可延长花期;
4.却提早开花可插入温水中,加入糖份,灯光照射;
5.对乙稀敏感,需避过熟的蔬果、香烟等。
三、康乃馨保养:
1.去除欲插入水中深度的叶片,斜切基部(2-3CM)后插入水中,花枝间保持通气良好;
2.花朵不可喷水,以免从内到外溃烂;
3.对"乙烯"敏感,须远离过熟的蔬果、香烟等,水中加入抗乙烯的保鲜剂更佳;
4.欲提早花期可重剪花茎后插入20~24℃的温水保鲜液中。
4. 花店怎么装修设计比较好
1、灯光设计
花店灯光设计极为重要,直接影响人们对鲜花的视觉感受。尽量保持室内光线明亮,这样才能使鲜花耀眼夺目,从而能吸引更多的顾客进行购买。同时,由于花色不同,所适合的灯光颜色也就不同,建议选择暖色调的灯光,可以有效改善视觉效果。
2、天花板设计
花店内的天花板设计需要重视,天花板设计首先要简洁大方,不宜有过多的装饰,否则会让人感到压抑。同时,天花板的设计还要考虑空间面积,若是空间有限,建议将天花板设计的低点;若是空间宽敞,可以设计的高点。另外,颜色对于天花板设计也能起到很大的作用,浅色调具有延伸空间视觉效果。
3、墙面设计
墙面作为背景装饰,装修设计要考虑鲜花的颜色和种类,尽量保持整体统一。同时,墙面的设计也要与花店内的整体环境保持协调,尽量选择同一种素净的颜色进行装修。
4、货架设计
花店内少不了货架,为了使整体环境更加整洁清爽,美观大方,要重视货架的设计。首先,货架的设计要有很强的实用性,可以用来摆放很多花卉。同时,货架要足够的牢固稳定,尽量选择金属或是木质的架子,以免损坏导致鲜花掉落,损失严重。同时,货架的摆放要合理,方便顾客观赏和选择。
5、地面设计
为了避免鲜花枯萎,需要经常给花卉浇水,所以店内地板上难免会有水渍。店内的地面设计有很多讲究,尽量选择防潮性强的材料,如地砖,防潮性较差的木地板则不宜使用。同时,地面要保持平稳,以免导致货架摇晃,容易使人受伤。另外,为了节省时间,可以选用易清洁的装修材料。
6、色彩搭配
花店内鲜花有各种各样的颜色,为了避免让人眼花缭乱,店内的装修尽量选择素雅的颜色,如白色、浅灰色等。当然,若是觉得单调或是素净,可以使用壁纸进行装饰。店内的装修颜色也不宜过于繁杂,既会影响人们对鲜花的观赏,也会影响整体的装饰美感。另外,店内的装修颜色要保持统一,不宜过于花哨,否则会破坏环境的协调性。
7、内部布局
花店内部的布局直接影响人们的选购心情,所以要保持一定的原则。首先,内部设计要具有便利性,不管是收银台还是货架摆设都要合理有序,要让顾客感到轻松便利。其次,要有条理性,鲜花摆放要合理,可以根据花的种类或是颜色进行摆放,这样才方便顾客选购。
8、花店通道
人们选择花卉需要进行详细的挑选,所以一个顺畅的通道极为重要,直接影响人们的心情。店内的通道要足够的宽敞,这样才方便顾客选购。要注意,不宜采用过于复杂的迂回式设计,既浪费空间,也不方便。若是店内鲜花品种多样,可以进行环绕型设计,这样利于让顾客挑到自己喜欢的品种。
9、巧用玻璃镜
花店装修可以巧用玻璃镜,在店内摆放一两面玻璃镜,既可以增加店内的面积,也可以让鲜花种类看着更为多样,利于吸引更多的顾客。而且,玻璃镜价格实惠,所以对于小空间的花店来说,玻璃镜是一个不错的装修材料。
10、橱窗设计
橱窗可以说是一个小型的花店设计,整体的设计直接影响人们对花店的第一印象,所以要格外重视。首先,花店橱窗要简洁大方,不宜将所有的产品都堆放进去,这样只会起到反效果,让人感到凌乱。其次,橱窗设计要有明确的主题,如情人节、婚礼、聚会等,针对不同的主题进行不同的设计。同时,橱窗最好定期更换一次,以免让人产生视觉疲劳,具体时间可以根据店主的时间和能力。最重要的是,橱窗需要每天打扫,保持整洁清爽,这样才能吸引顾客。
5. 店面装修花店装修中需要注意什么
小花店装修技巧一:利用立体空间
可以把立体空间利用起来增加有限的使用面积,这是一个不错的办法。在填充立体空间的时候,可以灵活的使用各种质地的架子,或者悬挂用具等等都可以的,但是这样的布置方法在最后的效果上会显得有一点点死板。
用一块主要的背景墙来做一些高低不同的立柱,然后在墙壁上面做一些半圆形的凸起,然后把一盆盆的鲜花植物错落有致的摆放在上面,不仅可以让原来的墙壁充满生机,还起到了美化装饰的作用利用了立体空间,还让盆栽的数量增加了,一举两得。
花店装修技巧二:使用玻璃镜面
花团锦簇就是花店在装修的时候需要体现的了,想要达到这样的效果,那么只需一个办法,就是多装一些有反射功能的玻璃镜面,安装玻璃镜面会让小型店铺装修空间在视觉上变得宽敞,而且通过镜子反射也让花朵的数量增加了一倍。
如果花店以后打算做批发零售店,可以考虑在店面前庭适当装修以后,后庭做仓库用,这样可以减少装修费用,玻璃门当然肯定少不了的,这样的好处是一方面做了广告效益,二是对鲜花也起到了保护作用,用玻璃做材料的装修,还可以减少我们的支出。
小花店装修技巧三:色彩的搭配很重要
如果走进一家小花店的话,虽然感觉眼前花开烂漫,但是却很难发现每束花的独特美感,就不会勾起购买欲望,这时候在花店装修的时候花店布置就显得很重要,色彩的搭配很重要。要让你的花朵们有亮点,有特点,才能让人们发现买点,自愿掏腰包。高低错落的摆放是个好方法,而在进行小型鲜花店铺装修的时候,也注意不要把颜色弄得太复杂,喧宾夺主就不好了。
花朵本身是很漂亮的,店铺装修本身也是很重要的,在这样的小型店铺装修的时候,如果才能让花店变得别致,让别人看了之后觉得心情大悦这才是重点。
6. 开了个花店,生意不好为什么
不知道你看抄没看过刘珍俪的花店翻身经验。
如果没有看过,就直接开花店了,那不好,就很正常了。
因为这个是必看的,跳不过。劝你早点去看了,看完就明白怎么做了。
7. 花店灯光设计什么颜色
花店使用的光源一般分为两种:一是单色光源,主要以店内为主;二是多色光源,主要用于装饰,是外部装饰的主要光源。
1.花店外部灯光
首先是霓虹灯,它是花店外观的重要组成部分,以补充显示花店招牌为主,兼有宣传美化作用,既可装饰花店外观,又可招揽顾客。霓虹灯是以远眺为主的光源设计,色彩的选择一般应以单色和刺激性较强的红、绿、白等为主,突出简洁、明快、醒目的要求。
其次,花店外部灯光的主要部分是橱窗灯,它属于外观灯饰。橱窗灯是近距离观赏光源,一般不应使用强光,灯光色彩间的对比度也不易过大,光线的运动、变换、闪烁不能过快或过于激烈,会造成眼花缭乱,不舒适的感觉。橱窗灯有五种形式:
①基本照明:是为了确保橱窗内基本亮度的照明。安装不用支架,直接把不同造型的灯具装置固定在恰当位置上,不能移动,一般在建造橱窗时就要安装好。基本照明必须保证整个橱窗亮度均匀,从灯光位置上分为顶光、边光和底光。
②聚光照明:是用强烈的光线来衬托花卉品种的一种照明方式。要使橱窗陈列的花卉全部光亮时,应该采用平坦型配光,而要使橱窗的重点更加明亮,则应该采用聚光照明方式。聚光照明一般多采用聚光灯、冷光灯、射灯、反光灯等,将一束束灯光射向需要的位置,以突出陈列重点。聚光照明要选择能够自由变更照射方向的灯具,注意用冷光灯,不用热光灯,灯具与商品之间要注意留出足够空间,让空气流通。
③强化照明:是通过光的效果,来衬托花卉的照明方式。使用装饰用照明器具时,在设计上应和橱窗陈列的商品和谐一致。
④特殊照明:是配合橱窗陈列商品特殊需要,采用更有效的表现方式,使特殊照明部分的陈列品更加引人注目。光线从下方商品的脚光照明,能表现其轻轻浮起的感觉。使用柔和的光线包容起来的撑墙支架照明方式,光源一般宜安装在看不见的位置。
⑤气氛照明:通过气氛灯光设计可消除暗影,在特殊陈列花卉中制造出不同的效果。在橱窗灯光中樘可以用加滤色片的灯具,制造出各种色彩的光源,构成戏剧性的效果。
2.花店的内部灯光
花店中使用的光源可分为自然光源、灯光照明光源、装饰陪衬光源三类。
①自然光源:花店中的基本照明利用自然光,既可降低费用,又能使花卉在自然光下保持原色,避免灯光对花卉颜色的影响,在条件许可情况下,应以自然光为主。
②照明光源:是花店内的基本照明光源,起着保持整个花店基本亮度的作用。一般安装在屋顶天花板上,多以单色白光日光灯为主。照明光源应注意整体亮度要足够。
③装饰陪衬光源:主要起美化店内环境,宣传花卉品种,营造购物气氛的作用。分为两类:一是起装饰整个内部环境作用的光源。另一类是用于装饰和陪衬花卉的光源,一般安装在货柜内或离花卉较近的地方,花店可视花卉品种的不同而采用稍暗的射灯或其它的单色光源。在专门摆放艺术插花的区域安装射灯,也会产生特殊的艺术效果。对专用于装饰和映衬花卉的光源,应注意光色与花卉的协调。如果花卉本身色调明快清晰,则灯光朦胧才能产生较好的意境;如果花卉本身色调较暗,应使用较强的灯光突出其形象。彩色光线照射在色彩鲜艳的花卉上,如果光色与物色相同,则花卉会特别鲜艳;但如果光色是花卉的补色,则会减弱花卉的鲜艳程度,使物体变得灰暗。要掌握远光强、近光弱的原则。
8. 英国文学家王尔德有一天走进一家花店,要求把橱窗里的花取出一部分。店里的人照着他的要求去做,并问他...
散步 莫怀戚内容:我们在田野散步:我,我的母亲,我的妻子和儿子。 母亲英国文学家王尔德有一天走进一家花店,要求把橱窗里的花取出一部分。店里的人
9. 开一个花店都需要知道些什么
进货渠道,销售渠道,市场需求,资本,勇气
总的来说就是,需要钱,人脉
开鲜花店挣钱吗?怎样开个鲜花店?花店开在哪里?
1医院
2剧场.音乐厅和电影院附近
3学校
4人口密集的居民区
5写字楼.公寓.美容院.健身场所.俱乐部
6商场.超市(很好的广告窗口,能够宣传自己)
7商业街区
开鲜花店挣钱吗?怎样开个鲜花店?花店地址必备条件
1一定有双向交通
2周围有大的建筑物能够辐射,如写字楼,商场。
3如果有居民区,能够保证散户购买 。
4开花店需要时间的积累,客户生意的稳定,因此选址应考虑店面的长久性(以上几点最少应满足两点) 。
开鲜花店挣钱吗?怎样开个鲜花店?无店铺经营
1网上花店
2自由设计师
3其他(成立自己的设计室,制作花艺承接设计)
开鲜花店挣钱吗?怎样开个鲜花店?店名
好些店根据经营性质确信自己的名字,体现自己的风格,如花坊,花屋,花艺设计室...也有以花名命名的,有以艺术风格或艺术大师的名字命名的,有以店主自己的名字命名的.应简洁,易记.
开鲜花店挣钱吗?怎样开个鲜花店?店面租金
不宜投入过多,有个性和品位的店不见得要高房租的方面,用心去找合适的方面.店面的面积,能够很小.
开鲜花店挣钱吗?怎样开个鲜花店?设计的投入
现在学校经常接到要招聘花艺学员去做店员的电话.设计的投入是知识的投入.学习基础花艺估计700-2000(三个专项:基础花艺,包装,婚礼,每项600左右).学习设计原理课,学费1000多元.更高级的课程的学费是2000-3000元.去外国,如荷兰的布尔玛,一周是约7000多元.一些著名的花艺设计师,一天的课程几千元
开鲜花店挣钱吗?怎样开个鲜花店?保险设备
一个保险柜几千元,大的花店能够准备一个冷藏柜,根据规模,投入1万元至几万元
开鲜花店挣钱吗?怎样开个鲜花店?装修
简洁,有自己的风格,贴近自然,如砖墙,石墙,木板墙.地面要防水防滑,易于清理.店内的架子可选自然地木架或玻璃的透明架
开鲜花店挣钱吗?怎样开个鲜花店?花材的预算
货源有花材和叶材第一次进货,品种要齐全,1000元左右,以后随时补充,通常每次300元,看生意来定.
开鲜花店挣钱吗?怎样开个鲜花店?店员招募
找长得清秀,伶俐的店员,选人要留意店员的品质,要诚实,肯干.北京的店员工资通常几百元,很多的1000左右.如果自己不做设计,店里可请兼职设计师.专职通常2000元以上
开鲜花店挣钱吗?怎样开个鲜花店?橱窗设计
花店的活广告,要经常更新,但一次不必投入太多固定费用。工具与辅材花器(水桶,玻璃瓶,竹编花器,陶器,柳遍和藤编,瓷盆)花泥包装资料(缎带,纱布,不织布,包装纸)
开鲜花店挣钱吗?怎样开个鲜花店?花卉常识
玫瑰需要高水位,供水到整支高度地3/5;百合,康乃馨和几个易脱水枯萎地草花,要正常水位,1/3,康乃馨有时需要控水,通常在花前估计一小时断水.有的要浅水位:情人草,勿忘我,牡丹,巴西木业,剑叶,澳大利亚和南非地几个木材,如帝王花,木百合等.
开鲜花店挣钱吗?怎样开个鲜花店?检查温度和湿度
大部份的花适合4-7摄氏度湿度80%-90%至少6个月由专业人员检修一次.
开鲜花店挣钱吗?怎样开个鲜花店?正确处理新鲜花材
在花面下剪花茎
开鲜花店挣钱吗?怎样开个鲜花店?使用保鲜剂
任何与鲜花接触的东西都以温水及清洁剂刷洗干净
开鲜花店挣钱吗?怎样开个鲜花店?与其他经营结合
艺术化,生活化如服饰,家居,画,咖啡,茶艺
开鲜花店挣钱吗?怎样开个鲜花店?做花店常见的业务
室内装饰用花,墙壁,柱子,顶棚,大堂,门面,店面,卫生间,酒吧,餐馆,俱乐部,人体用花;婚礼花艺:新娘,新郎用花,新娘花饰,花束,花车:婚礼会堂布置:相片花,接待台,入口处,甬道,花门,烛台花,蛋糕花,舞台花。
10. 帮我讲一下 动态规划
动态规划的特点及其应用
安徽 张辰
目 录
(点击进入)
【关键词】
【摘要】
【正文】
§1动态规划的本质
§1.1多阶段决策问题
§1.2阶段与状态
§1.3决策和策略
§1.4最优化原理与无后效性
§1.5最优指标函数和规划方程
§2动态规划的设计与实现
§2.1动态规划的多样性
§2.2动态规划的模式性
§2.3动态规划的技巧性
§3动态规划与一些算法的比较
§3.1动态规划与递推
§3.2动态规划与搜索
§3.3动态规划与网络流
§4结语
【附录:部分试题与源程序】
1.“花店橱窗布置问题”试题
2.“钉子与小球”试题
3.例2“花店橱窗布置问题”方法1的源程序
4.例2“花店橱窗布置问题”方法2的源程序
5.例3“街道问题”的扩展
6.例4“mod 4最优路径问题”的源程序
7.例5“钉子与小球”的源程序
8.例6的源程序,“N个人的街道问题”
【参考文献】
【关键词】动态规划 阶段
【摘要】
动态规划是信息学竞赛中的常见算法,本文的主要内容就是分析它的特点。
文章的第一部分首先探究了动态规划的本质,因为动态规划的特点是由它的本质所决定的。第二部分从动态规划的设计和实现这两个角度分析了动态规划的多样性、模式性、技巧性这三个特点。第三部分将动态规划和递推、搜索、网络流这三个相关算法作了比较,从中探寻动态规划的一些更深层次的特点。
文章在分析动态规划的特点的同时,还根据这些特点分析了我们在解题中应该怎样利用这些特点,怎样运用动态规划。这对我们的解题实践有一定的指导意义。
【正文】
动态规划是编程解题的一种重要的手段,在如今的信息学竞赛中被应用得越来越普遍。最近几年的信息学竞赛,不分大小,几乎每次都要考察到这方面的内容。因此,如何更深入地了解动态规划,从而更为有效地运用这个解题的有力武器,是一个值得深入研究的问题。
要掌握动态规划的应用技巧,就要了解它的各方面的特点。首要的,是要深入洞悉动态规划的本质。
§1动态规划的本质
动态规划是在本世纪50年代初,为了解决一类多阶段决策问题而诞生的。那么,什么样的问题被称作多阶段决策问题呢?
§1.1多阶段决策问题
说到多阶段决策问题,人们很容易举出下面这个例子。
[例1] 多段图中的最短路径问题:在下图中找出从A1到D1的最短路径。
仔细观察这个图不难发现,它有一个特点。我们将图中的点分为四类(图中的A、B、C、D),那么图中所有的边都处于相邻的两类点之间,并且都从前一类点指向后一类点。这样,图中的边就被分成了三类(AB、BC、CD)。我们需要从每一类中选出一条边来,组成从A1到D1的一条路径,并且这条路径是所有这样的路径中的最短者。
从上面的这个例子中,我们可以大概地了解到什么是多阶段决策问题。更精确的定义如下:
多阶段决策过程,是指这样的一类特殊的活动过程,问题可以按时间顺序分解成若干相互联系的阶段,在每一个阶段都要做出决策,全部过程的决策是一个决策序列[1]。要使整个活动的总体效果达到最优的问题,称为多阶段决策问题。
从上述的定义中,我们可以明显地看出,这类问题有两个要素。一个是阶段,一个是决策。
§1.2阶段与状态
阶段:将所给问题的过程,按时间或空间特征分解成若干相互联系的阶段,以便按次序去求每阶段的解。常用字母k表示阶段变量。[1]
阶段是问题的属性。多阶段决策问题中通常存在着若干个阶段,如上面的例子,就有A、B、C、D这四个阶段。在一般情况下,阶段是和时间有关的;但是在很多问题(我的感觉,特别是信息学问题)中,阶段和时间是无关的。从阶段的定义中,可以看出阶段的两个特点,一是“相互联系”,二是“次序”。
阶段之间是怎样相互联系的?就是通过状态和状态转移。
状态:各阶段开始时的客观条件叫做状态。描述各阶段状态的变量称为状态变量,常用sk表示第k阶段的状态变量,状态变量sk的取值集合称为状态集合,用Sk表示。[1]
状态是阶段的属性。每个阶段通常包含若干个状态,用以描述问题发展到这个阶段时所处在的一种客观情况。在上面的例子中,行人从出发点A1走过两个阶段之后,可能出现的情况有三种,即处于C1、C2或C3点。那么第三个阶段就有三个状态S3={C1,C2,C3}。
每个阶段的状态都是由以前阶段的状态以某种方式“变化”而来,这种“变化”称为状态转移(暂不定义)。上例中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)={C1,C2,C3}。
有了决策,我们可以定义状态转移:动态规划中本阶段的状态往往是上一阶段和上一阶段的决策结果,由第k段的状态sk和本阶段的决策uk确定第k+1段的状态sk+1的过程叫状态转移。状态转移规律的形式化表示sk+1=Tk(sk,uk)称为状态转移方程。
这样看来,似乎决策和状态转移有着某种联系。我的理解,状态转移是决策的目的,决策是状态转移的途径。
各段决策确定后,整个问题的决策序列就构成一个策略,用p1,n={u1(s1),u2(s2),…, un(sn)}表示。对每个实际问题,可供选择的策略有一定范围,称为允许策略集合,记作P1,n,使整个问题达到最有效果的策略就是最优策略。[1]
说到这里,又可以提出运用动态规划的一个前提。即这个过程的最优策略应具有这样的性质:无论初始状态及初始决策如何,对于先前决策所形成的状态而言,其以后的所有决策应构成最优策略[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中较为简单的一题,但其中大有文章可作。说它简单,是因为它有序,因此我们一眼便可看出这题应该用动态规划来解决。但是,如何动态规划呢?如何划分阶段,又如何选择状态呢?
<方法1>以花束的数目来划分阶段。在这里,阶段变量k表示的就是要布置的花束数目(前k束花),状态变量sk表示第k束花所在的花瓶。而对于每一个状态sk,决策就是第k-1束花应该放在哪个花瓶,用uk表示。最优指标函数fk(sk)表示前k束花,其中第k束插在第sk个花瓶中,所能取得的最大美学值。
状态转移方程为
规划方程为
(其中A(i,j)是花束i插在花瓶j中的美学值)
边界条件 (V是花瓶总数,事实上这是一个虚拟的边界)
<方法2>以花瓶的数目来划分阶段。在这里阶段变量k表示的是要占用的花瓶数目(前k个花瓶),状态变量sk表示前k个花瓶中放了多少花。而对于任意一个状态sk,决策就是第sk束花是否放在第k个花瓶中,用变量uk=1或0来表示。最优指标函数fk(sk)表示前k个花瓶中插了sk束花,所能取得的最大美学值。
状态转移方程为
规划方程为
边界条件为
两种划分阶段的方法,引出了两种状态表示法,两种规划方式,但是却都成功地解决了问题。只不过因为决策的选择有多有少,所以算法的时间复杂度也就不同。[2]
这个例子具有很大的普遍性。有很多的多阶段决策问题都有着不止一种的阶段划分方法,因而往往就有不止一种的规划方法。有时各种方法所产生的效果是差不多的,但更多的时候,就像我们的例子一样,两种方法会在某个方面有些区别。
所以,在用动态规划解题的时候,可以多想一想是否有其它的解法。对于不同的解法,要注意比较,好的算法好在哪里,差一点的算法差在哪里。从各种不同算法的比较中,我们可以更深刻地领会动态规划的构思技巧。
§2.2动态规划的模式性
这个可能做过动态规划的人都有体会,从我们上面对动态规划的分析也可以看出来。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。
划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。注意这若干个阶段一定要是有序的或者是可排序的,否则问题就无法求解。
选择状态:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。
确定决策并写出状态转移方程:之所以把这两步放在一起,是因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以,如果我们确定了决策,状态转移方程也就写出来了。但事实上,我们常常是反过来做,根据相邻两段的各状态之间的关系来确定决策。
写出规划方程(包括边界条件):在第一部分中,我们已经给出了规划方程的通用形式化表达式。一般说来,只要阶段、状态、决策和状态转移确定了,这一步还是比较简单的。
动态规划的主要难点在于理论上的设计,一旦设计完成,实现部分就会非常简单。大体上的框架如下:
对f1(s1)初始化(边界条件)
for k2 to n(这里以顺序求解为例)
对每一个skSk
fk(sk)一个极值(∞或-∞)
对每一个uk(sk)Dk(sk)
sk-1Tk(sk,uk)
tg(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值。
这个递推法的递推公式和动态规划的规划方程非常相似,我们在这里借用了动态规划的符号也就是为了更清楚地显示这一点。其实它们的思想也是非常相像的,可以说是递推法借用了动态规划的思想解决了动态规划不能解决的问题。
有的多阶段决策问题(像这一题的阶段特征就很明显),由于不能满足最优化原理等使用动态规划的先决条件,而无法应用动态规划。在这时可以将最优指标函数的值当作“状态”放到下标中去,从而变最优化问题为判定性问题,再借用动态规划的思想,用递推法来解决问题。
[例5] 钉子与小球(NOI99)试题见附录
这个题目一看就不觉让人想起一道经典的动态规划题。下面先让我们回顾一下这个问题。
数字三角形(IOI94)在下图中求从顶至低某处的一条路径,使该路径所经过的数字的总和最大,每一步只能向左下或右下走。
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
在这个问题中,我们按走过的行数来划分阶段,以走到每一行时所在的位置来作为状态,决策就是向左下走(用0表示)或向右下走(用1表示)。
状态转移方程:
规划方程:
边界条件:
这是一个比较简单的最优化问题,我们还可以把这个问题改成一个更加简单的整数统计问题:求顶点到每一点的路径总数。把这个总数用fk(sk)表示,那么递推公式就是:
在这里,虽然求和公式只有两项,但我们仍然用∑的形式表示,就是为了突出这个递推公式和上面的规划方程的相似之处。这两个公式的边界条件都是一模一样的。
再回到我们上面的“钉子与小球”问题,这是一个概率统计问题。我们继续沿用上面的思想,用fk(sk)表示小球落到第k行第sk个钉子上的概率,则递推公式如下:
(这里函数Existk(sk)表示第k行第sk个钉子是否存在,存在则取1,不存在则取0)
边界条件
可以看出这个公式较之上面的两个式子虽然略有变化,但是其基本思想还是类似的。在解这个问题的过程中,我们再次运用了动态规划的思想。
一般说来,很多最优化问题都有着对应的计数问题;反过来,很多计数问题也有着对应的最优化问题。因此,我们在遇到这两类问题时,不妨多联系、多发展,举一反三,从比较中更深入地理解动态规划的思想。
其实递推和动态规划这两种方法的思想本来就很相似,也不必说是谁借用了谁的思想。关键在于我们要掌握这种思想,这样我们无论在用动态规划法解最优化问题,或是在用递推法解判定型、计数问题时,都能得心应手、游刃有余了。
§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]编出来的。“障碍物探
