二次分配问题的大洪水算法求解
- 格式:pdf
- 大小:222.32 KB
- 文档页数:4
二次分配问题的大洪水算法求解魏欣;马良;张惠珍【期刊名称】《运筹与管理》【年(卷),期】2011(020)001【摘要】大洪水算法是一种求解组合优化问题的独特方法,该方法通过模拟洪水上涨的过程来达到求解一些组合优化难题的目的.本文运用该方法求解二次分配问题(QAP),设计了相应的算法程序,并对QAPLIB(二次分配基准问题库)中的算例进行了实验测试,结果表明,大洪水算法可以快速有效地求得二次分配问题的优化解,是求解二次分配问题的一个新的较好方案.%The great deluge algorithm ( GDA) is a special approach for solving combinatorial optimization problems.It can be used to solve some NP-hard combinatorial optimization problems through simulating the process of flood rising.In this paper, we use this algorithm to solve the quadratic assignment problem and design the corresponding program.The instances in the QABLIB are tested experimentally.And the results show that the algorithm is able to find the optimal solution quickly and effectively, and that the CDA is a new and promising method for the QAP.【总页数】4页(P12-15)【作者】魏欣;马良;张惠珍【作者单位】上海理工大学,管理学院,上海,200093;上海理工大学,管理学院,上海,200093;上海理工大学,管理学院,上海,200093【正文语种】中文【中图分类】O224【相关文献】1.细菌觅食算法求解二次分配问题 [J], 戴秋萍;马良;郗莹2.模拟退火蚁群算法求解二次分配问题 [J], 朱经纬;芮挺;蒋新胜;张金林3.一种求解物流设施二次分配问题的混合分布估计算法 [J], 戢守峰;罗蓉娟;孙琦;朱宝琳4.几种基于匈牙利算法求解二次分配问题的方法及其分析比较 [J], 张惠珍;马良5.差异演化算法求解二次分配问题 [J], 杨卿誉;王志刚因版权原因,仅展示原文概要,查看原文内容请购买。
例 7.8 二次分配问题(Quadratic Assignment Problem )这个问题是指派问题的一种推广。
可以把指派问题看作线性规划问题,故较易求解,而二次分配 问题是纯整数规划问题,往往很难求解。
与分配问题一样,二次分配问题也与两个目标集合 S 、T 有关。
S 和T 含有相同数目的元素,以 便达到某一目标。
这里两种必须满足的条件:必须把S 的每个元素确切地分配给T 的一个元素;T 的每个元素只能接受 S 的一个元素。
可引入 0-1变量:1,把i (S 的一个元素)分配给j ( T 的一个元素) Xj0,用和分配问题相同的约束条件给出以上两个条件:nX ij 1, i 1,2, ,nj 1 nX ij 1, j 1, 2,, ni 1我们得到的价格系数Cjkl,其解释是:在i (S 的一个元素) 分配给j( T 的一个元素)的同时把 k ( S 的一个元素)分配给I (T 的一个元素)所应承担的费用。
显然,只有当Xij1且Xkl 1,即其乘积XijXkl 1时,才承担这种费用。
于是本目标变成一个0-1变量的二次表达式:cijkl Xij Xkii 1 j 1 k 1 l 1o最常见的是系数Cijkl从其它系数tik和djl的乘积推出来的情况:Cijkl tikdjlo 为了弄清这个相当复杂的模型,研究下面两个应用是有好处的。
首先认为S 是一个n 个工厂的集合,T 是一个n 个城市的集合。
本问题就是要在每一城市中设置一个工厂,并要使工厂之间总的通讯费用最小。
通讯费用取决于( 1)每对工厂之间通讯的次数; (2)每对工厂所在两个城市之间的距离。
显然,有些工厂很少与别的工厂通讯,虽相距甚远而费用却不大。
另一方面,有些工厂可能需要 大量通讯。
通讯费取决于距离的远近。
在这个应用中,tik表示工厂i 和工厂k 之间的通讯次数(以适当的单位计量);djl为城市j 和城市|之间每单位的通讯费用(显然这与j 和I 之间的距离有关)。
一种大区域洪水淹没范围快速提取的分块种子蔓延算法-回复如何利用分块种子蔓延算法快速提取大区域洪水淹没范围。
第一步:介绍背景和问题在自然灾害中,洪水是一种常见且具有严重破坏力的灾害。
在防洪工作中,了解洪水的淹没范围是至关重要的。
然而,传统的洪水淹没范围提取方法往往需要耗费大量的时间和人力,因为它们需要对整个区域进行详细的分析和计算。
因此,为了提高洪水淹没范围的提取效率,我们需要一种快速且高效的方法。
第二步:介绍分块种子蔓延算法分块种子蔓延算法是一种基于种子点和区域扩展的方法,它可以在大规模区域上快速提取洪水淹没范围。
这种算法首先将区域划分为多个小块,然后选择一些种子点作为起始点,通过蔓延算法将洪水范围逐渐扩展到整个区域。
这种方法的优势在于可以并行处理多个小区域,从而大大提高了计算效率。
第三步:详细说明分块种子蔓延算法的步骤1. 区域划分:将待提取洪水淹没范围的区域划分为多个小块,每个小块的大小可以根据需求进行调整。
通常情况下,小块的大小应该是能够满足计算资源和存储资源的限制条件的最优值。
2. 种子点选择:在每个小块中选择一个或多个种子点作为起始点。
种子点应该位于容易被洪水淹没的区域,并且能够代表整个小块的特征。
种子点可以通过人工选择或自动提取的方式得到。
3. 蔓延算法:从每个种子点开始蔓延算法,将洪水范围逐渐扩展到整个小块。
蔓延算法通常使用泛洪填充方法,即从种子点开始,按照一定规则和条件向周围的像素传播洪水。
传播的规则和条件可以根据实际需要进行调整,以得到更精确的洪水范围。
4. 区域合并:当每个小块的洪水范围提取完成后,将所有小块的洪水范围进行合并,得到整个区域的洪水淹没范围。
区域合并通常使用空间索引结构或图论算法进行,以确保合并的结果是正确且完整的。
第四步:案例分析与实验为了验证分块种子蔓延算法的有效性,我们进行了一系列的实验。
我们选择了一个大规模的区域,并利用分块种子蔓延算法提取了洪水淹没范围。
暴雨时程分配计算方法暴雨时程分配计算方法,是一种对暴雨事件进行时程分配的计算方法,用于确定在一定时间内的不同时间段内的暴雨强度。
这种计算方法主要用于城市排水系统的设计和规划,以确保排水系统在暴雨期间能够有效地排除雨水,避免造成洪涝灾害。
在进行暴雨时程分配计算之前,首先需要确定一些基本参数,如暴雨历时、频率、总降雨量等。
这些参数可以根据实际情况或历史数据进行估算或获取。
一般情况下,暴雨时程分配计算方法可以分为两种主要方法:经验方法和统计方法。
一、经验方法:经验方法是根据历史经验和实际观测数据进行计算的方法。
这种方法通常适用于数据较少或无法获得详细的统计数据的情况下。
1.三均匀模型法:三均匀模型法是一种简化的计算方法,适用于较小区域的排水系统设计。
该方法将暴雨历时等分为三个阶段:起始阶段、峰值阶段和终止阶段,并根据实际情况分配不同时间段内的暴雨强度。
2.比例方法:比例方法是根据不同时间段内的暴雨持续时间与总历时的比例来确定暴雨时程分配。
这种方法将总降雨量按照时间比例进行分配,以获得不同时间段内的暴雨量。
3.柯西法:柯西法是一种基于统计分布函数的经验方法,通过柯西分布函数来估算不同时间段内的暴雨强度。
该方法将历时分为多个时间段,并根据柯西分布函数计算每个时间段的降雨量。
二、统计方法:统计方法是通过统计大量的降雨数据,确定不同时间段内的暴雨强度。
这种方法通常需要较多的数据支持,并进行统计分析来计算暴雨时程分配。
1.极值分布方法:极值分布方法是一种常用的统计方法,用于计算极端事件,如暴雨。
该方法通过统计观测数据(如降雨强度和持续时间)来拟合极值分布,然后根据分布函数计算不同时间段内的暴雨强度。
2.频率分析方法:频率分析方法是一种通过统计降雨频率来计算不同时间段内的暴雨强度的方法。
该方法通常使用频率分析图或频率分布函数来表示不同频率(如10年一遇、50年一遇等)下的降雨强度。
以上是一些常用的暴雨时程分配计算方法,根据实际情况和数据可用性的不同,可以选择合适的方法进行计算。
一种大区域洪水淹没范围快速提取的分块种子蔓延算法-回复洪水是一种自然灾害,给人们的生活和财产造成了巨大的损失。
当洪水发生时,准确地了解洪水范围对于灾区救援和灾后重建工作至关重要。
为了快速提取大区域洪水淹没范围,一种高效的分块种子蔓延算法应运而生。
首先,让我们来了解一下分块种子蔓延算法的基本原理和步骤。
1. 分块:将待处理的大区域划分为若干个小块,每个小块都有一个中心点作为种子点。
2. 种子点初始化:根据洪水预测模型或实时观测数据,选择区域内可能受到洪水影响的点作为种子点,并进行初始化。
3. 种子点扩散:从种子点开始,按照一定的扩散规则,将洪水淹没范围逐步扩散至周围区域。
4. 分块合并:将相邻的小块的洪水边界进行合并,得到整个大区域的洪水淹没范围。
接下来,我们会详细介绍每个步骤的具体操作和注意事项。
第一步,分块。
将大区域划分为多个小块,可以使用网格方式进行分割,每个小块的大小应根据实际情况选择,一般来说,小块的大小应该能够覆盖到洪水可能扩散的范围。
第二步,种子点初始化。
选择合适的种子点是非常关键的,可以借助历史洪水数据、地形地貌分析和降雨量预测等信息来选取种子点,以提高初始化的准确性。
第三步,种子点扩散。
种子点初始化后,按照事先定义好的扩散规则进行种子点的扩散,一般情况下,种子点会向周围点进行蔓延,直到达到一定条件停止扩散。
扩散规则可以根据具体需求定义,可以考虑洪水淹没的速度、地形地貌对水流传播的影响以及周围水系的情况等。
在种子点扩散过程中,需要考虑数据更新的问题。
因为洪水是动态的,随着时间的推移,洪水淹没范围会不断变化。
为了保证准确性,需要及时更新洪水淹没模型或观测数据,并对种子点进行相应的调整和更新。
第四步,分块合并。
当每个小块的洪水边界确定后,就可以将相邻的小块进行合并,得到整个大区域的洪水淹没范围。
在合并的过程中,需要考虑边界的平滑和消除重叠的问题,同时保留洪水蔓延的形态特征。
除了基本步骤之外,还有一些值得注意的问题。
暴雨时程分配计算方法
暴雨时程分配计算是用于将总降水量在一定时间内分配到不同时间段内的一种方法,以模拟和预测暴雨过程中的雨量变化。
它在水文学和水资源领域中用于分析洪水、设计水利工程和进行洪涝管理等方面。
以下是几种常见的暴雨时程分配计算方法:
1.均匀分配法:将总降水量均匀分配到整个暴雨事件的各个时
段。
例如,如果总降水量为100毫米,时段为1小时,则每个小时内的降水量为100/1=100毫米。
2.指数分布法:根据暴雨历时和暴雨总降水量的关系,按照指
数函数的形式将降水量逐渐减小。
指数分布法适用于具有较长的暴雨历时的情况。
具体计算公式为:降水量= 总降水量* e^(-t/k),其中t为时间步长,k为指数。
3.双线性分布法:将总降水量根据两个指定的参数,在时间轴
上分配为上升期和下降期降水量。
具体计算公式为:降水量= R * (1 + t/T1) / (1 + t/T2),其中R为总降水量,T1为上升期时长,T2为总时长减去上升期时长。
4.S分段分配法:将暴雨过程划分为三个阶段,即降雨开始、
稳定期和降雨结束,根据每个阶段所占总历时的比例来分配降水量。
这些计算方法都有其适用的条件和限制,具体选择哪种方法需要根据实际情况、数据可靠性和水利工程设计要求等进行综合
考虑。
附录A 洪水频率计算A1 洪水频率曲线统计参数的估计和确定A1.1 参数估计法A1。
1。
1 矩法。
对于n 年连序系列,可采用下列公式计算各统计参数: 均值∑==ni i X n X 11 (A1)均方差 ∑=--=ni i X X n S 12)(11或 ⎥⎦⎤⎢⎣⎡--=∑∑==n i n i i i X n X n S 1212)(111 (A2) 变差系数XSC v =(A3)偏态系数3313)2)(1()(vni i s C X n n X X n C ---=∑=或3313112132)2)(1()(23vn i ni i ni i ni i i s CX n n n X X X n X n C --+⋅-=∑∑∑∑==== (A4)式中 X i ——系列变量(i=1,…,n); n ——系列项数。
对于不连序系列,其统计参数的计算与连序系列的计算公式有所不同.如果在迄今的N 年中已查明有a 个特大洪水(其中有l 个发生在n 年实测或插补系列中),假定(n-l )年系列的均值和均方差与除去特大洪水后的(N-a )年系列的相等,即l n a n l n a N S S X X ----==,,可推导出统计参数的计算公式如下:)(111∑∑+==--+=nl i i a j j X l n a N X N X (A5)⎥⎦⎤⎢⎣⎡---+--=∑∑++==n l i i a j jv X X l n a N X X N XC 1212)()(111 (A6)331313)2)(1()()(vn l i ia j j s C X N N X X l n a N X X N C --⎥⎦⎤⎢⎣⎡---+-=∑∑+== (A7) 式中 X j ——特大洪水变量(j=1,…,a);X i ——实测洪水变量(i=l +1,…,n )。
A1.1.2 概率权重矩法.概率权重矩定义为⎰=10)(dF x xF M j j j=0,1,2,… (A8)皮尔逊Ⅲ型频率曲线的三个统计参数不能用概率权重矩的显式表达。
洪⽔计算2.5 洪⽔2.5.1 暴⾬洪⽔特性⽩节河流域地处四川盆地南缘,洪⽔由暴⾬形成。
据蔡家河站(1974~2007年)暴⾬资料分析,年最⼤暴⾬多集中在5~9⽉,1966年8⽉18⽇出现了30多年来最⼤暴⾬,最⼤24⼩时⾬量为305mm。
⽩节河流域内沿河两岸⽵⽊丛⽣,植被覆盖良好,洪⽔涨落过程⽐较平缓。
据蔡家河站实测洪⽔资料分析,主汛期为5~9⽉,洪⽔过程线多为单峰,历时约为3天左右。
2.5.2 设计洪⽔⽩花溪⽔库流域内⽆实测⽔⽂资料,坝址上、下游河道居民稀少,仅⼏户⼈家住在⼭坡上,⽆法开展历史洪⽔调查⼯作。
其设计洪⽔根据设计暴⾬资料推算。
2.5.2.1 设计暴⾬(1)设计暴⾬的推求设计流域⽆实测暴⾬资料,设计暴⾬由《四川省⽔⽂⼿册》中等值线查算,成果见下表见表2-5-1。
2.5.2.2 设计洪⽔计算巴河流域⽆实测⽔⽂资料,⽩花溪⽔库坝址控制集⾬⾯积较⼩,其设计洪⽔采⽤设计暴⾬进⾏推求。
根据资料条件,可研阶段采⽤了推理公式法和瞬时单位线法进⾏计算。
(1)推理公式法①流域特征值流域特征值F、L、J在五万分之⼀航测图上量取,成果见表2-5-2。
表2-5-2 设计流域特征值计算成果表②设计暴⾬暴⾬成果表2-5-1。
③设计洪⽔计算根据流域设计暴⾬成果,采⽤《四川省中⼩流域暴⾬洪⽔⼿册》中推理公式法推求设计洪⽔。
基本公式:Q=0.278ψ(s/τn)F式中:Q—最⼤流量,m3/s;ψ—洪峰径流系数;s—暴⾬⾬⼒,mm/h;τ—流域汇流时间,h;n—暴⾬公式指数;F—流域⾯积,km2。
根据流域下垫⾯条件和《四川省中⼩流域暴⾬洪⽔⼿册》区划,选取产汇流参数计算公式如下:流域产流参数:属盆地丘陵区,计算式如下:µ=4.8F-0.19;Cv=0.18;Cs=3.5Cv流域汇流参数:属盆地丘陵,计算式如下:θ=1~30时,m=0.4θ0.204θ=30~300时,m=0.092θ0.636式中:θ—流域特征参数,θ=L/(J1/3F1/4);L—河长,km;J—⽐降,‰;F—流域⾯积,km2。
科室二次分配计算公式为了使科室二次分配能够充分体现职工的价值,充分调动职工的工作积极性,引导各科室在绩效工资的分配中体现效率优先、兼顾公平的原则,把职工的能力、工作数量、工作质量、社会效益与经济效益、工作效率、业绩成果等有机地结合起来,真正实现一流人才一流业绩一流报酬,特制定了科室二次分配指导方案。
由于医院的科室有临床、医技、行政后勤等,各科室的业务范围、工作特点、发展阶段以及人员素质等都有很大的不同,难以用一个统一的标准要求实施二次分配,现就部分科室制定基本的指导性分配方案。
工作量分值计算门诊量 1分/人次住院床日1分/住院床日手术时间3分/小时,一台手术超过4小时后,每小时递增1分手术病人Ⅰ类手术3分/台;Ⅱ手术5分/台;Ⅲ手术7分/台;Ⅳ手术10分/台(主刀100%、一助60%、二助40%)接收住院病人3分/人次办理出院病人3分/人次科间会诊3分/人次抢救危重病 5分/人次写病历数0.2分/份值夜班数3分/人次其他也可加入开展新技术、发表论文等分值(2)各位医生(医疗组)工作量绩效工资=全科医生的工作量绩效工资×(各位医生或医疗组的工作量分值/总分值)2、护士(护理组)工作量绩效工资的核算(1)工作量分值的计算特别护理5/天肝穿1/次胸腔引流护理0.3/次一级护理3/天胸穿0.6/次抽血气1/次二级护理2/天胃穿或腰穿 0.2/次电子测血压 0.2/次三级护理1/天微泵注射0.5/次胰岛素注射 0.4/次皮管数 1/根皮肤护理0.3/次测毛细血管血糖0.5/次液体数 0.5/瓶照射0.4/次化疗一联0.5/次床日1/床日呼吸机治疗 2.5/h 化疗二联0.8/次记出入量1/日抽血0.5/次化疗三联1/次记尿量 0.5/日进出院人次 0.5/次腹透护理0.6/次口腔护理0.5/次气管切开护理3/天抢救费≥100元/次5/次导尿 1.5/次气管插管护理2/天抢救费≥50元/次3/次会阴护理0.4/次吸痰管数0.6/根抢救费≥20元/次2/次膀胱冲洗0.4/次颅内压监护 0.5/天手术处置费 0.5/次灌肠1/次术前准备0.8/次传科出院处置或消毒隔离0.5/次鼻饲、胃肠 2/次术后护理0.5-5/次测腹围0.2/次鼻饲护理0.2/次皮肤处置0.2/次超声降血脂仪0.5/次超声雾化 1.2/次牵引、石膏护理0.2/次超声扫描心脑血管治疗系统0.5/次氧气雾化0.8/次高热护理0.5/次刮宫0.6/次氧气费 0.2/24h 滴骨钉0.2/次阴道冲洗0.5/次鼻导管 0.3/根CPT 0.5/次接生5/次心电监护0.1/h 引管管更换护理0.5/次(2)根据每位护士(护理组)的工作量分值占总分值的比例计算每位护士(护理组)的工作量绩效工资。
算法最大分配问题二分法最大分配问题是指在一个带有容量限制的二部图中,找到一个最大的边集合,使得任意两条边没有公共的顶点。
二分法可以用来解决最大分配问题,其基本的思想是将问题转化为一个最大流问题。
具体步骤如下:1. 首先将二部图分成两个部分,分别记为A部和B部。
2. 设A部的顶点集合为X,B部的顶点集合为Y。
3. 构建一个新的有向图G',其中包含一个源点s和一个汇点t,以及边集合E'。
4. 对于X中的每个顶点x,新增一条从s到x的边,容量为1。
5. 对于Y中的每个顶点y,新增一条从y到t的边,容量为1。
6. 对于原图中的每条边(u,v),如果u属于X,v属于Y,则在G'中新增一条从u到v的边,容量为1。
7. 在G'中求出最大流,得到最大流的值。
8. 通过最大流的值可以得到最大匹配数。
具体的二分法算法如下:1. 初始化左边界l为0,右边界r为最大度数(即每个顶点的最大出度或入度)。
2. 当l小于等于r时,进行如下步骤:- 令中间值mid为(l + r) / 2。
- 构建一个新的二部图G',其中对于原图中的每条边(u,v),如果u的度数小于等于mid且v的度数小于等于mid,则在G'中新增一条从u到v的边。
- 在G'中求解最大流,并获得最大流的值。
- 如果最大流的值等于原图中顶点度数小于等于mid的边数总和,说明可以找到一个匹配数为最大度数的mid的匹配。
将左边界l更新为mid + 1。
- 否则,将右边界r更新为mid - 1。
3. 返回最大度数的匹配数。
通过二分法,可以在O(logn)的时间复杂度内解决最大分配问题。
一种大区域洪水淹没范围快速提取的分块种子蔓延算法 -回复如何利用一种分块种子蔓延算法来快速提取大区域洪水淹没范围。
第一步:介绍洪水灾害及范围提取的重要性(200-300字)洪水是一种常见的自然灾害,其对人们的生活和财产造成严重的破坏。
在灾后的救援和重建工作中,了解洪水的淹没范围是至关重要的。
然而,由于洪水通常覆盖大范围的地理区域,传统的手动提取方法往往不够高效和准确。
因此,开发一种快速提取洪水淹没范围的方法至关重要。
第二步:介绍分块种子蔓延算法的原理(300-400字)分块种子蔓延算法是一种基于种子点的迭代算法,用于快速提取大区域的洪水淹没范围。
算法首先将地理区域划分为均匀的小块,每个小块称为一个“分块”。
然后,在每个分块中,选择一个或多个种子点作为算法的起始点。
种子点可以是预先确定的,也可以通过先前的数据分析来自动生成。
接下来,算法使用分块种子点作为起始点,开始向周围扩散。
在扩散过程中,算法考虑地理区域的地形、水流路径、土地利用等因素,通过模拟洪水的传播过程确定淹没区域。
在每次迭代中,扩散的范围随着时间的推移逐渐扩大,直到算法满足停止条件。
算法的停止条件可以根据需要进行设置,例如淹没速率达到一定值、淹没区域的面积超过预定阈值等。
在算法停止后,所有被标记的区域即为洪水淹没范围。
分块种子蔓延算法通过同时处理多个分块,可以显著提高提取速度和准确性。
第三步:详细描述分块种子蔓延算法的具体实现步骤(600-800字)1.划分地理区域:将大区域划分为均匀的小块。
划分的大小可以根据实际需求进行调整,通常越小的分块精度越高,但计算量也会增加。
2.选择种子点:在每个分块中选择一个或多个种子点。
可以根据实际需求来确定种子点的数量和位置。
种子点的选择应尽量覆盖整个地理区域,并考虑地形和土地利用等因素。
3.初始化分块状态:为每个分块设置一个初始状态,通常为未标记状态。
4.开始迭代:从每个种子点开始,分别执行以下步骤。
一种大区域洪水淹没范围快速提取的分块种子蔓延算法-回复洪水灾害是一种严重的自然灾害,造成了巨大的人员伤亡和财产损失。
在应对洪水灾害时,准确地了解洪水淹没范围对于及时采取救援和防护措施至关重要。
然而,传统的方法在处理大范围洪水淹没范围的时候效率较低,因此,一种快速提取洪水淹没范围的分块种子蔓延算法应运而生。
首先,我们需要了解分块种子蔓延算法的基本原理。
该算法将大区域划分为多个小块,并将其中一个或多个小块作为种子点,然后通过基于水流速度和地形高程的模拟,将种子点的影响不断扩大到周围的小块,从而获取洪水淹没范围。
接下来,我们需要准备数据,包括数字高程模型(DEM)和洪水的初始化输入。
数字高程模型提供了地面的高程信息,而洪水的初始化输入包括起始的洪水水位和流速等参数。
在开始算法之前,首先将大区域划分成合适大小的小块。
这里的小块可以是规则的矩形网格,也可以是不规则的自适应单元。
划分小块的大小需要根据实际情况进行调整,一般来说,小块的大小应适中,既要保证计算效率,又要保证结果的准确性。
接下来,在小块中选择一个或多个种子点。
种子点的选择可以根据洪水的起始位置和流向等因素进行确定。
在选择种子点的过程中,需要考虑到种子点的位置和个数对于结果的影响,以及计算的复杂度。
种子点的位置应尽量靠近洪水的起始位置,并且分布均匀,以确保模拟的准确性。
选择好种子点后,我们需要通过模拟来进行种子蔓延。
模拟的过程中,需要考虑到水流的速度和地形的高程。
具体来说,我们可以根据DEM数据和洪水输入的流速来确定水流的方向和速度。
然后,将种子点的信息不断传播到周围的小块中,直到所有的小块都被更新为洪水淹没点或非淹没点。
这个过程可以使用迭代算法来实现,每一轮迭代都根据当前的水位和流速来更新小块的状态。
在模拟的过程中,还需要考虑到如何处理不同的地形特征和水流方向变化等因素。
一般来说,我们可以通过插值等方法来处理地形特征,以保证模拟的准确性。
而对于水流方向变化的情况,可以根据水体的流动路径来确定下一步的更新方向。
例7.8 二次分配问题(Quadratic Assignment Problem )这个问题是指派问题的一种推广。
可以把指派问题看作线性规划问题,故较易求解,而二次分配问题是纯整数规划问题,往往很难求解。
与分配问题一样,二次分配问题也与两个目标集合S 、T 有关。
S 和T 含有相同数目的元素,以便达到某一目标。
这里两种必须满足的条件:必须把S 的每个元素确切地分配给T 的一个元素;T 的每个元素只能接受S 的一个元素。
可引入0-1变量:⎩⎨⎧=其它的一个元素)(的一个元素)分配给(把,0,1T j S i x ij 。
用和分配问题相同的约束条件给出以上两个条件:nj x n i xn i ijn j ij ,,2,1,1,,2,1,111====∑∑==, 但是本问题的目标比分配问题的更加复杂。
我们得到的价格系数ijkl c ,其解释是:在i (S 的一个元素)分配给j (T 的一个元素)的同时把k (S 的一个元素)分配给l (T 的一个元素)所应承担的费用。
显然,只有当1=ij x 且1=kl x ,即其乘积1=kl ij x x 时,才承担这种费用。
于是本目标变成一个0-1变量的二次表达式: ∑∑∑∑====n i n j n k n l kl ij ijkl x x c1111。
最常见的是系数ijkl c 从其它系数ik t 和jl d 的乘积推出来的情况:jl ik ijkl d t c =。
为了弄清这个相当复杂的模型,研究下面两个应用是有好处的。
首先认为S 是一个n 个工厂的集合,T 是一个n 个城市的集合。
本问题就是要在每一城市中设置一个工厂,并要使工厂之间总的通讯费用最小。
通讯费用取决于(1)每对工厂之间通讯的次数;(2)每对工厂所在两个城市之间的距离。
显然,有些工厂很少与别的工厂通讯,虽相距甚远而费用却不大。
另一方面,有些工厂可能需要大量通讯。
通讯费取决于距离的远近。
在这个应用中,ik t 表示工厂i 和工厂k 之间的通讯次数(以适当的单位计量);jl d 为城市j 和城市l 之间每单位的通讯费用(显然这与j 和l 之间的距离有关)。