You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Julia中求解MCP:两区域经济均衡模型结果异常问询

两区域单商品贸易MCP模型求解异常问题分析

问题背景

使用Julia、JuMP及PATHSolver实现两区域单商品贸易均衡模型(MCP形式),模型假设两区域需求线性、供给外生固定,贸易量有上下限约束。求解结果显示p1、p2、trade均为0,需排查问题。

原代码与输出

原代码

using JuMP, PATHSolver

β_0 = [10.0, 5.0]
β_1 = [-0.5, -0.25]
t_min = 0.0
t_max = 2.0
A = [1, 1]

model = Model(PATHSolver.Optimizer)

@variables(model, begin
    t_min <= trade <= t_max
    p1 >= 0
    p2 >= 0
end)

@constraints(model, begin
    p2 - p1 ⟂ trade 
    β_0[1] + β_1[1] * p1 - A[1] + trade ⟂ p1
    β_0[2] + β_1[2] * p2 - A[2] - trade ⟂ p2
end)

optimize!(model)

solution_summary(model; verbose=true)

运行输出

* Solver : Path 5.0.03

* Status
  Result count       : 1
  Termination status : LOCALLY_SOLVED
  Message from the solver:
  "The problem was solved"

* Candidate solution (result #1)
  Primal status      : FEASIBLE_POINT
  Dual status        : NO_SOLUTION
  Objective value    : 0.00000e+00
  Primal solution :
    p1 : 0.00000e+00
    p2 : 0.00000e+00
    trade : 0.00000e+00

* Work counters
  Solve time (sec)   : 2.99100e-03

问题分析

  1. 互补条件符号错误
    MCP的标准互补逻辑为:非负价格变量p与超额供给函数互补,即p ≥ 0、超额供给 ≥ 0、p * 超额供给 = 0。经济含义是:
  • 当价格>0时,市场供需平衡(超额供给=0);
  • 当供给>需求(超额供给>0)时,价格跌至0。

原代码中使用了超额需求函数(需求 - 供给)作为互补项,导致逻辑反转:当需求远大于供给时(如p=0时区域1需求=10,供给=1),超额需求为正,满足互补条件,求解器因此收敛到无意义的零价格均衡。

  1. 初始值缺失
    未给变量设置初始值,PATHSolver默认从0开始迭代,容易收敛到局部的零解,而非经济上合理的均衡解。

修正方案

修正后的代码

using JuMP, PATHSolver

β_0 = [10.0, 5.0]
β_1 = [-0.5, -0.25]
t_min = 0.0
t_max = 2.0
A = [1, 1]

model = Model(PATHSolver.Optimizer)

@variables(model, begin
    t_min <= trade <= t_max, start=1.0  # 设置初始值引导求解
    p1 >= 0, start=10.0
    p2 >= 0, start=10.0
end)

@constraints(model, begin
    # 贸易套利条件:trade∈[0,2],互补逻辑保持不变
    p2 - p1 ⟂ trade 
    # 区域1:超额供给 = 本地供给(扣除出口) - 需求
    A[1] - trade - (β_0[1] + β_1[1] * p1) ⟂ p1
    # 区域2:超额供给 = 本地供给(加上进口) - 需求
    A[2] + trade - (β_0[2] + β_1[2] * p2) ⟂ p2
end)

optimize!(model)

solution_summary(model; verbose=true)

修正逻辑说明

  • 将互补函数改为超额供给:区域1的超额供给为A[1]-trade - 需求(trade为出口量),区域2的超额供给为A[2]+trade - 需求(trade为进口量);
  • 给变量设置合理初始值,引导求解器收敛到经济均衡解。

预期结果

修正后求解得到的均衡解应为:

  • p1 = p2 ≈ 17.33(无摩擦贸易下价格均等)
  • trade ≈ 0.33(贸易量处于上下限之间)

该结果符合经济逻辑:区域1原本均衡价格更高,贸易从区域2流向区域1,最终两地价格均等,贸易量满足供需平衡。

内容的提问来源于stack exchange,提问作者Neal Hughes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 13:24:55