1、剧场演出安排的优化模型摘要:本文针对剧场演出安排的分析和研究,根据各个城市的地理位置按照旅行售货商(TSP)模型找出了一条最优的巡回演出路线;然后结合实际情况在满足演出安排的基本规则的情况下,综合考虑到双方利益建立了多目标多约束的优化模型,求得公司应该与多少个演出团体签订合同,并以多少天为一轮;最后制定出对于合同双方都比较合理的巡回演出方案。并且对于该方案可能出现的几种特殊情况,可以在变动小的前提下采取相应的应急预案;因此该方案具有很强的指导性和实际意义。对于第一问,根据各个城市的地理位置按照旅行售货商(TSP)模型找出了一条最优的循环演出路线。然后基于所建立的多目标优化模型和剧场在各个城市的
2、分布的特点,在对双方都比较合理的前提下得到公司应该与26个剧团签订合同,并以7天为一轮。然后利用剧团两两组合的方法将13个组合剧团合理的安排在各个城市,最后制定出按照演出循环路线同步调巡回演出的可行方案。 对于第二问,在满足各个条件下,根据第一问所建立的模型,合理、简洁、直观、的安排出该公司在接下来的六个月里的演出计划表。对于第三问,针对于第一问建立的模型,考虑到实际情况可能出现的一些特殊情况,我们分别给出来三种特殊情况下了应急方案。关键词:剧场安排、旅行售商(TSP)模型、多目标优化、双赢、应急预案一、问题的提出某演出公司旗下有11家剧场,分别位于以下地点:山东省岛市、江苏省无锡市2家、江苏
3、省扬州市、浙江省嘉兴市、浙江省杭州市2家、浙江省温州市、浙江省绍兴市、浙江省东阳市、浙江省衢州市。公司需要组织若干演出团体于各剧场演出,每家剧场每天均需按排一场演出。为了保证上座率和演出效果,同一剧团每轮(指在同一家剧场连续不间断演出)演出时间有一上界。分别为:青岛市:14天;无锡市:各14天;扬州市:7天;嘉兴市:7天;杭州市:各14天;温州市:7天;绍兴市:7天;东阳市:7天;衢州市:7天。同一演出团体可以在不同剧场巡回演出,但不能在同一剧场多轮演出。同一演出团体在同城的两家剧场(杭州或无锡)演出的间隔(指自一家剧场演出结束至另一家剧场演出开始)不能小于45 天。对加盟的演出团体,公司都需
4、支付一笔固定费用;根据每个剧团演出场次的不同,还需支付该剧团相应的演出费用;另外公司还需承担剧团在不同城市巡回时所需的交通费用。其中前两项费用所占比例较大。对演出团体而言,一旦加盟就希望演出较多的场次,并且在不同剧场演出之间不能有太大的时间间隔,巡回路线也尽可能合理。(1).考虑到要为公司制定11个剧场的演出团体安排方案,我们根据剧场所在城市的地理位置,利用数学软件求解出最优的巡回路线;为了达到公司和演出团体双赢,从目标出发分别建立双方的目标函数;然后根据具体情况,确定公司应当签订的剧团数。最后根据具体的要求和条件制定出切实可行、便于操作、有利管理、公司和剧团合作双赢的合理方案。(2).制定出
5、给公司经理参阅的关于方案的简要说明(不超过两页)。我们跟据第一问所建立的模型制定的方案,在满足各个条件下,简洁、清晰、直观的安排出该公司在前六个月里的演出计划表,作为公司和剧团执行的指南。 (3).对于所建立的模型推广到一般情形。考虑到可能出现的特殊情况,简述在出现各种特殊情况时的应急预案。如:某剧团因故不能完成剩余演出,某剧团的节目不适合在某城市演出,某剧场另有专项演出任务等。二、模型的假设(1).假设加盟剧团的演出效果相同。(2).假设交通便利,剧团在结束一个场次的演出后可以迅速赶到下一剧场进行第二天的演出。 三、符号的说明:表示公司付给每个演出团体的固定费用。:表示演出团体每演出一场公司
6、应付给演出团体的费用。:表示一个演出团体巡回演出一个周期的交通费用。:表示公司每天的总收入。:表示演出团体巡回演出一个周期的时间。:表示演出团体每轮应演出的时间。:表示加盟公司的演出团体个数。:表示剧场个数。:表示公司的利益指标。:表示演出团体的利益指标。:表示公司和演出团体的综合利益指标。四、问题的分析与模型的建立 对于如何安排公司旗下的剧场,先根据剧场所在城市的具体位置找出各个城市间的路程,利用旅行售货商(TSP)模型借用数学软件(LINGO)求解出最优的巡回路线。 根据要求双方在满足演出安排的基本规则的前提下,达到互赢的目的;对此我们从公司和演出团体两方面考虑。分别建立了两关于公司和演出
7、团体的多目标多约束优化模型。考虑到公司在签订剧团时,为使公司的收入尽可能多支出尽可能的少,因此建立了关于公司利益的目标函数:公司收入=收入-固定费用-演出费-路费 因为有: 剧团个数=巡回周期天数/每轮天数对于已经加盟的剧团则希望得到合理的演出场次和路线,因此建立关于剧团的目标函数:剧团收入=固定费用+演出费用利用赋权的方法得到公司和剧团的综合利益指标:最后解出公司应当签订的剧团数和以多少天作为一轮。五、问题的求解1、第一问的求解我们根据中国地图找到任意剧场所在城市的距离整理得到下列表格:青岛无锡扬州嘉兴杭州温州绍兴东阳衢州青岛0665554781844120790910451050无锡665
8、0165131220551253391449扬州5541650280300660360443552嘉兴781131280088422121255316杭州84422030088036764150258温州12075516604223670317307287绍兴909253360121643170151249东阳10453914432551503071510155衢州10504495523162582872491550考虑到公司和剧团的要求我们利用数学软件(LINGO)求解出剧团循环一周的最优路线:最优演出循环路线:青岛扬州杭州东阳衢州温州绍兴嘉兴无锡青岛演出安排的基本规则:(1) 每家剧场每天
9、均需按排一场演出。(2) 同一剧团每轮(指在同一家剧场连续不间断演出)演出时间有一上界。(3) 同一演出团体可以在不同剧场巡回演出,但不能在同一剧场多轮演出。(4) 同一演出团体在同城的两家剧场(杭州或无锡)演出的间隔(指自一家剧场演出结束至另一家剧场演出开始)不能小于45 天。对于公司方:(1) 演出团体尽可能的少。(2) 每家剧场每天均需安排演出。(3) 巡回路线尽可能的短。对于加盟的演出团体:(1) 演出的场次尽可能的多并且间隔不易过长。(2) 巡回路线尽可能的合理。公司和剧团的综合指标: 考虑到某些城市有两个剧场(无锡、杭州)。为了便于循环演出安排的切实可行、便于操作、有利管理、公司和
10、剧团合作双赢,我们规定两两剧团组合巡回演出。当某个小组到达有2个剧场的城市(无锡和杭州)时,两个剧团各自在一个剧场演出。当该小组到达只有一个剧场的城市时,让某一剧团演出,而另一剧团不演出。当到达下个只有一个剧场的城市时,让上一个没有演出的剧团演出,另一剧团不演出。当,经查阅资料我们估计得到 , 并且赋予,。得到最优解:一轮为7天。此时公司一个周期的净收入为:4784(万元),演出团体一个周期的收入为:97(万元)利益1234567公司利益(万元)1991362041634435459747064784演出团体利益31425364758697综合利益14032547293031243240332
11、03378根据我们的模型,剧团对于这种循环路线是绝对公平的。因为剧团一旦加入该公司,他们关心的是演出的场次和演出的路程安排。无论那两个剧团组合从那座城市出发当循环演出完两次时,各个剧团的演出场次和所走的路程都是相同的。2、第二问的求解方案说明对于如何安排公司旗下11个剧团的演出方案,根据实际的情况,考虑到方案的公平性和合理性,我们主要从公司和剧团的利益出发。对于公司方,在满足每家剧场每天均需安排一场演出,同一剧团不能在同一剧场多轮演出,并且保证同一剧团每轮演出时间上界的情况下,我们要求公司尽可能的多盈利。在对于已经加盟的剧团,要求剧团的演出场次的公平性和合理性,并且循环演出的路线也应当合理。对
12、此我们做以下安排:根据公司旗下11个剧场所在城市的地理位置制定出最优的演出循环路线:青岛扬州杭州东阳衢州温州绍兴嘉兴无锡青岛综合考虑到巡回演出方案的切实可行、便于操作、有利管理、公司和剧团合作双赢,我们确定出公司和26个剧团签订演出合同时,综合利益达到最大4784(万元)。我们规定26个剧团两两组合,构成13个小组(演出不相关,)分布在剧场所在的9个城市,然后按照制定的演出巡回路线巡回演出。当某个小组到达有2个剧场的城市(无锡和杭州)时,两个剧团各自在一个剧场演出。当该小组到达只有一个剧场的城市时,让某一剧团演出,而另一剧团不演出。当到达下个只有一个剧场的城市时,让上一个没有演出的剧团演出,另
13、一剧团不演出。依次循环一圈,在第二圈巡回演出时让该小组的两个剧团各自到对方上次巡回演出的剧场,如此循环两圈作为一个周期。对于我们制定的该方案具有很强的可行行和实际意义:(1).在满足演出安排的条件下公司和剧团达到双赢。(1).这种组合巡回演出方法对于加盟的剧团在一个周期中路程和演出场次上是绝对公平的。(3).当某组合小组巡回到只有一个剧场的城市时,对于没有演出的剧团可以提前到下一演出剧场提前准备和宣传。在此我们依照以上的方法制定出了2010年前六个月的演出方案,作为公司和剧团执行的指南。(见下表)公司旗下的11个剧场用字母A-K 表示。各个剧团用正整数编号:1,2,3,26。剧场时间青岛扬州杭
14、州东阳衢州温州绍兴嘉兴无锡ABCDEFGHIJK演出休息演出休息演出演出休息演出休息演出休息演出休息演出休息演出1-71234567891011121314151617188-1419202122232425262143568791015-21121114131516171820192221232426251222-283465781091112131416151817192029-3521222423252612435678910121136-421413151617181920222123242526213443-49658710912111314161517182019212250-56
15、24232625123456781091112141357-6315161817192021222324252612436564-7087910121114131615171819202221242371-7726252134657810912111314151678-84181720192122242325261234567885-919101112141315161718192021222324262592-9821436587109121114131615181799-105201922212423262512346578109106-11211121314161518171920212
16、22423252621113-11943568791012111413151617182019120-126222123242625213465871091112127-13313141615181720192122242326251243134-1405678910111214131516181719202221141-147232425262143658791012111314148-154161517182019222124232625213456155-161781091112131415161817201921222324162-168252612435687910111214131
17、615169-1751718192022212324262521436587176-18110912111314161518172019222124232526说明:上表第2行5,6列的23和24分别表示在第18至14天 ,23号和24号剧团分别在杭州的C,D剧场演出。对于上述前六个月的安排,公司旗下的11个剧场每天均有演出,而剧团的巡回路线最短,公司的收入达到最大。对于剧团具有合理的休息时间和准备时间,同样对于加盟的剧团巡回路线最短,演出场次公平、合理。双方达到互赢。3、第三问的求解针对实际情况可能出现的一些特殊情况,我们制定预案的原则是:剧团安排变动尽可能的小,公司损失尽可能降低。情形一:
18、某剧团因故不能完成剩余的演出。应急预案:当某剧团因故不能完成剩余的演出时,我们可以在满足剧场安排要求的前提下,将在较近城市当应休息的剧团调往,顶替该剧团进行演出,填补缺席的剧团。情形二:某剧团的节目不适合在某城市演出。应急预案: 如果某个剧团的目节不适合在某个城市演出时,在满足剧场安排要求的前提下,可以将在较近城市当应休息的剧团调往,顶替该剧团进行演出。情形三:某剧场另有专项演出任务。应急预案: 对于某剧场另有专项演出任务的情况,可以将本应当在该剧场演出的剧团直接取消演出安排,让其休息。六、模型的评价与改进 该模型结合实际情况,根据剧场具体的分布情况合理的采用剧团两两组合的方法,安排巡回演出方
19、案。在确定签订剧团个数的时,综合考虑到了所建立的多目标多约束优化模型和剧场实际情况,使制定的方案贴切实际具有切实可行、便于操作、有利管理的特点。不足之处在于当剧团巡回演完一个周期(两圈)再次回到演出过的剧场时,这样可能会影响到演出效果。参考文献1 袁新生 LINGO和EXCEL在数学建模中的应用 北京 科学出版设 2007附录利用LINGO求解到最优路线的运行程序和结果:运行程序:MODEL:sets:city/1.9/:u;link(city,city):jl,x;endsetsdata:jl=0 665 554 781 844 1207 909 1045 1050665 0 165 131
20、 220 551 253 391 449554 165 0 280 300 660 360 443 552781 131 280 0 88 422 121 255 316844 220 300 88 0 367 64 150 2581207 551 660 422 367 0 317 307 287909 253 360 121 64 317 0 151 2491045 391 443 255 150 307 151 0 1551050 449 552 316 258 287 249 155 0;enddatan=SIZE( city); MIN=SUM( link: jl*x); FOR(
21、city(k): SUM( city(i)|i#ne# k:x(i,k)=1; SUM( city(j)|j#ne# k:x(k,j)=1;);FOR( city(i): FOR( city(j)|j#gt#1 #and# i#ne# j: u(i)-u(j)+n*x(i,j)=n-1;); FOR( city(i): u(i)=n-1); FOR( link: BIN( x); END运行结果:Global optimal solution found at iteration: 40937 Objective value: 2680.000 Variable Value Reduced C
22、ost N 9.000000 0.000000 U( 1) 0.000000 0.000000 U( 2) 8.000000 0.000000 U( 3) 1.000000 0.000000 U( 4) 7.000000 0.000000 U( 5) 2.000000 0.000000 U( 6) 5.000000 0.000000 U( 7) 6.000000 0.000000 U( 8) 3.000000 0.000000 U( 9) 4.000000 0.000000 JL( 1, 1) 0.000000 0.000000 JL( 1, 2) 665.0000 0.000000 JL(
23、1, 3) 554.0000 0.000000 JL( 1, 4) 781.0000 0.000000 JL( 1, 5) 844.0000 0.000000 JL( 1, 6) 1207.000 0.000000 JL( 1, 7) 909.0000 0.000000 JL( 1, 8) 1045.000 0.000000 JL( 1, 9) 1050.000 0.000000 JL( 2, 1) 665.0000 0.000000 JL( 2, 2) 0.000000 0.000000 JL( 2, 3) 165.0000 0.000000 JL( 2, 4) 131.0000 0.000
24、000 JL( 2, 5) 220.0000 0.000000 JL( 2, 6) 551.0000 0.000000 JL( 2, 7) 253.0000 0.000000 JL( 2, 8) 391.0000 0.000000 JL( 2, 9) 449.0000 0.000000 JL( 3, 1) 554.0000 0.000000 JL( 3, 2) 165.0000 0.000000 JL( 3, 3) 0.000000 0.000000 JL( 3, 4) 280.0000 0.000000 JL( 3, 5) 300.0000 0.000000 JL( 3, 6) 660.00
25、00 0.000000 JL( 3, 7) 360.0000 0.000000 JL( 3, 8) 443.0000 0.000000 JL( 3, 9) 552.0000 0.000000 JL( 4, 1) 781.0000 0.000000 JL( 4, 2) 131.0000 0.000000 JL( 4, 3) 280.0000 0.000000 JL( 4, 4) 0.000000 0.000000 JL( 4, 5) 88.00000 0.000000 JL( 4, 6) 422.0000 0.000000 JL( 4, 7) 121.0000 0.000000 JL( 4, 8
26、) 255.0000 0.000000 JL( 4, 9) 316.0000 0.000000 JL( 5, 1) 844.0000 0.000000 JL( 5, 2) 220.0000 0.000000 JL( 5, 3) 300.0000 0.000000 JL( 5, 4) 88.00000 0.000000 JL( 5, 5) 0.000000 0.000000 JL( 5, 6) 367.0000 0.000000 JL( 5, 7) 64.00000 0.000000 JL( 5, 8) 150.0000 0.000000 JL( 5, 9) 258.0000 0.000000
27、JL( 6, 1) 1207.000 0.000000 JL( 6, 2) 551.0000 0.000000 JL( 6, 3) 660.0000 0.000000 JL( 6, 4) 422.0000 0.000000 JL( 6, 5) 367.0000 0.000000 JL( 6, 6) 0.000000 0.000000 JL( 6, 7) 317.0000 0.000000 JL( 6, 8) 307.0000 0.000000 JL( 6, 9) 287.0000 0.000000 JL( 7, 1) 909.0000 0.000000 JL( 7, 2) 253.0000 0
28、.000000 JL( 7, 3) 360.0000 0.000000 JL( 7, 4) 121.0000 0.000000 JL( 7, 5) 64.00000 0.000000 JL( 7, 6) 317.0000 0.000000 JL( 7, 7) 0.000000 0.000000 JL( 7, 8) 151.0000 0.000000 JL( 7, 9) 249.0000 0.000000 JL( 8, 1) 1045.000 0.000000 JL( 8, 2) 391.0000 0.000000 JL( 8, 3) 443.0000 0.000000 JL( 8, 4) 25
29、5.0000 0.000000 JL( 8, 5) 150.0000 0.000000 JL( 8, 6) 307.0000 0.000000 JL( 8, 7) 151.0000 0.000000 JL( 8, 8) 0.000000 0.000000 JL( 8, 9) 155.0000 0.000000 JL( 9, 1) 1050.000 0.000000 JL( 9, 2) 449.0000 0.000000 JL( 9, 3) 552.0000 0.000000 JL( 9, 4) 316.0000 0.000000 JL( 9, 5) 258.0000 0.000000 JL(
30、9, 6) 287.0000 0.000000 JL( 9, 7) 249.0000 0.000000 JL( 9, 8) 155.0000 0.000000 JL( 9, 9) 0.000000 0.000000 X( 1, 1) 0.000000 0.000000 X( 1, 2) 0.000000 665.0000 X( 1, 3) 1.000000 554.0000 X( 1, 4) 0.000000 781.0000 X( 1, 5) 0.000000 844.0000 X( 1, 6) 0.000000 1207.000 X( 1, 7) 0.000000 909.0000 X( 1, 8) 0.000000