this is a test document by donotknow. this is our 2024 MCM travel. 目标:选择合适的农作物,制定策略 条件:1201亩 34块 平旱地,梯田,山坡地 每年一季 水浇地 每年一季水稻 or 两季蔬菜 每个大棚 0.6亩 作用:每年都可以种植两季作物。 16个普通大棚适宜每年种植一季蔬菜和一季食用菌 4个智慧大棚适宜每年种植两季蔬菜。 同一地块(含大棚)每季可以合种不同的作物。
问题一可以采用线性规划模型,有41作物,34个地块 决策变量 目标:实现利益最大化(W) max(W) 第一情况(pi)pi<=pibefore 变量: 作物名称:变量名:i范围:1,2,3,......,41 季度:变量名: s 范围:1,2,3,4,5,...,14季 地块名称:变量名:k 范围:1,2,...,34 亩数:x 接口: 作物类型(作物名称) 地块类型(作物名称) 地块类型(地块名称) # 地块面积(地块名称) 亩产量(作物名称,地块名称) 种植成本(作物名称) 销售单价(作物名称) find亩数(季度, 作物名称, 地块名称) 作物售量(作物名称,亩数,地块名称) 作物产量(作物名称,季度,亩数) 单个作物总亩数(作物名称) 接口: 三个约束条件对应三个函数 1. 约束条件一(季度,地块名称 ): lis_豆类=[黄豆,黑豆,红豆,绿豆,爬豆,豇豆刀豆芸豆] if 季度 > 5: for i in range(季度-5, 季度+1): find亩数(i,for j in lis_豆类,地块名称).any 2. 约束条件二(作物名称,地块名称,季度): 通过find亩数函数()查找到上一季度亩数, if 季度 > 1: if find亩数 > 0: return false else 3.约束条件三(作物名称, 地块名称): if interface3(地块名称) in interface2(作物名称): return true else: return false 求当前情况的利润,和之前保存的最高利润比较,如果更高,保存 找出最优方案(利润最高): 总利润w=亩数乘利润 使w最大 q q 4.约束条件四(地块名称,作物名称): if 地块类型(地块名称) in [平旱地,梯田,山坡地]: if 作物类型(作物名称) in [粮食(豆类), 粮食] and 作物名称 != “水稻”: return true return false 5.约束条件五(地块名称,作物名称,季度): if地块类型(地块名称) == “水浇地”: if 季度 % 2 == 0: if 作物名称 == 水稻: return !find (地块名称, 季度-1, for 作物名称 in [水稻,豇豆刀豆芸豆土豆西红柿茄子菠菜 青椒菜花包菜油麦菜小青菜黄瓜生菜 辣椒空心菜黄心菜芹菜大白菜白萝卜红萝卜] if 作物类型(作物名称) in 【蔬菜(豆类),蔬菜】: return!find(地块名称,季度 -1,水稻】 return true 6.约束条件六(地块名称,作物名称,季度): if 地块类型(地块名称) == “水浇地”: if 季度%2 == 1: if 作物类型(作物名称) in 【蔬菜(豆类),蔬菜】: if 作物名称 in 【大白菜,白萝卜,红萝卜】: return false if 季度 % 2 == 0: if 作物类型(作物名称)not in 【大白菜,白萝卜,红萝卜】: return false return true 7.约束条件七(地块名称,作物名称,季度): if 地块类型(地块名称) == “普通大棚”: if 季度%2 == 1: if 作物类型(作物名称) in 【蔬菜(豆类),蔬菜】: if 作物名称 in 【大白菜,白萝卜,红萝卜】: return false else: return false if 季度 % 2 == 0: if 作物名称 not in 【榆黄菇香菇白灵菇羊肚菌】: return false return true 8. 约束条件八(地块名称,作物名称): if 地块类型(地块名称) == “智慧大棚”: if 作物名称 in 【大白菜,白萝卜,红萝卜】: return false return true