问题一
小问一
要求:设计合理的搬迁补偿方案,能根据住户情况给出合理的面积补偿、采光补偿和修缮补偿 范围
创新点:
- 智能补偿方案匹配:结合住户需求与空置地块资源,设计动态补偿方案。
- 公平性评估:通过补偿范围的公平性评估,避免因补偿差异导致的居民不满。(修缮补偿上限 != 最大修缮费用)
- 多层次补偿策略:根据住户需求优先级,分层次设计补偿方案。(额外考虑)
我的理解
补偿的范围含义:
补偿的最小值:面积不减少、采光不降低、居住品质不降低
补偿的最大值:开发商能给出的最大条件,对居民搬迁的最大吸引力
综合考虑面积补偿,采光补偿,修缮补偿
模型构建
数学模型:MCDA
目标函数:$U = w_s \times \frac{S_{迁后}}{S_{迁前}} + w_l \times \frac{L_{迁后}}{L_{迁前}} + w_c \times C$
约束条件:
$1 \geqslant U \geqslant U_{min}$
$S_{原} \times 1.3 \geqslant S$
$L \geqslant L_{原}$
$200000 \geqslant C \geqslant 0$
$20000000 * 1.3 \geqslant C_{总成本} \geqslant 0$ (删除)
说明:
- $U_{min}$ 取 0.7 合适
- 只针对单个居民讨论是否同意搬迁,因此不考虑总成本大小
- 其他因素反映到修缮补偿上去,调节上下限(考虑)
AI点评该模型:
问题分析
目标函数:
目标函数 $U = w_s \times S + w_l \times L + w_c \times C$ 是合理的,涵盖了面积、采光和修缮三个核心补偿维度,符合多标准决策分析(MCDA)的框架。约束条件:
- $1 \geqslant U \geqslant U_{min}$:满意度范围合理,确保满意度在合理区间内。
- $S_{原} \times 1.3 \geqslant S \geqslant S_{原}$:符合面积补偿的上下限要求。
- $L \geqslant L_{原}$:采光补偿约束正确,确保迁入地块采光不低于原地块。
- $200000 \geqslant C \geqslant 0$:修缮补偿上限正确,符合题意。
- $20000000 \times 1.3 \geqslant C_{总成本} \geqslant 0$:总成本约束合理,控制在预算范围内。
- $w_1 + w_2 + w_3 = 1$:权重约束正确,确保权重总和为1。
潜在问题:
- $U_{min}$ 的定义:需明确 $U_{min}$ 的具体数值,建议通过居民满意度调查确定。
- 总成本约束:$20000000 \times 1.3$ 是否为题目明确给出的预算上限?需确认。
- 权重分配:权重 $w_1, w_2, w_3$ 的分配需结合实际调查数据,确保权重反映居民真实需求。
- 补偿方案的公平性:需确保不同住户的补偿方案在面积、采光和修缮方面公平分配。
改进建议
明确 $U_{min}$ 的定义:
通过问卷调查或历史数据,确定居民的最低满意度阈值,确保搬迁方案的可接受性。验证总成本约束:
确认总成本上限是否为2000万元加30%的备用金(即2600万元),并在模型中明确体现。权重分配机制:
通过层次分析法(AHP)或其他多标准决策方法,科学分配权重,确保权重的合理性。补偿方案的公平性评估:
在模型中增加公平性约束,确保不同住户的补偿方案在各维度上公平。总结
你的模型构建总体合理,但需在满意度阈值、总成本确认、权重分配和公平性评估方面进一步完善,以确保模型的科学性和实用性。
import pandas as pd
import cvxpy as cp
direction = {"北": 3, "南": 3, "东": 2, "西": 1}
W_S = 0.4 # 面积权重
W_L = 0.3 # 采光权重
W_C = 0.3 # 补偿权重
answer = []
if __name__ == "__main__":
# 数据预处理
file_path = r"M:\我的桌面\2025年第十五届MathorCup数学应用挑战赛赛题\B题\附件一:老城街区地块信息.xlsx"
df = pd.read_excel(file_path, sheet_name="Sheet1")
df["地块方位"] = df["地块方位"].map(direction)
total = df.shape[0] # 总数据量
# 对每户居民进行求解
for i in range(total):
# 无人居住
if df["是否有住户"][i] == 0:
continue
# 创建变量
x = cp.Variable(shape=3, integer=True)
max_x0 = df["地块面积"][i] * 1.3
max_x1 = 4
max_x2 = 200000
# 构建目标函数
tar = W_S * x[0] / max_x0 + W_L * x[1] / max_x1 + W_C * x[2] / max_x2
obj = cp.Minimize(tar)
# 限制条件
con = [x[0] / df["地块面积"][i] <= 1.3,
x[1] >= df["地块方位"][i],
x[1] <= max_x1,
x[2] >= 0, # 修缮费用 上下限 有待处理
x[2] <= max_x2,
0.7 <= tar]
# 创建问题
prob = cp.Problem(obj, con)
# 求解问题
ret = prob.solve()
if prob.status != "optimal":
print("无解")
else:
answer.append([int(i) for i in [df["地块ID"][i],
x.value[0], max_x0,
x.value[1], max_x1,
x.value[2], max_x2]])
print("求解完毕")
pd.DataFrame(answer, columns=["地块ID", "最小面积", "最大面积", "最低采光", "最高采光", "最少修缮", "最多修缮"]).to_excel("./问题一居民搬迁最低要求.xlsx")
print("保存成功")小问二
要求:还有哪些因素可能会影响住户是 否同意搬迁?作为规划局/开发商,应如何应对?请详细列出并定性/ 定量探讨