Skip to content

O4. 动态定价与调度决策

案例来源: smart-ride-pooling
决策类型: 实时价格与车辆调度
方法论: 需求预测 + 动态优化 + 博弈论
预计阅读时间: 13 分钟


1. 决策背景

业务场景

某共享出行平台 10,000 辆车,服务 50 万用户: - 需求波动:早晚高峰 5 倍于平峰 - 供需失衡:高峰期 60% 订单未满足 - 定价策略:固定定价 (无法调节供需) - 司机收入:¥8,000/月 (低于预期)

决策目标

  • 实时动态定价 (5 分钟粒度)
  • 智能车辆调度
  • 高峰期满足率 > 80%
  • 司机收入提升 30%

2. 方法论

动态定价框架

需求预测 → 供给预测 → 均衡价格计算 → 动态调整

核心算法

1. 需求价格弹性:

需求 = α × 价格^弹性 × 其他因素
弹性 = -0.3 (估计值,价格涨 10% 需求降 3%)

2. 均衡价格:

供需比 = 需求/供给
均衡价格 = 基础价格 × (供需比)^β
β = 0.5 (调节系数)

3. 博弈论模型:

司机策略:接单/拒单/下线
平台策略:定价/补贴/调度
纳什均衡:双方最优策略


3. 模型实现

需求预测

from prophet import Prophet
import pandas as pd

# 历史订单数据
df = pd.read_csv('orders.csv')
df['ds'] = pd.to_datetime(df['order_time'])
df['y'] = df['order_count']

# 预测未来 1 小时需求 (12 个 5 分钟粒度)
model = Prophet(
    hourly_seasonality=True,
    daily_seasonality=True,
    weekly_seasonality=True
)
model.fit(df)

future = model.make_future_dataframe(periods=12, freq='5min')
forecast = model.predict(future)
predicted_demand = forecast['yhat'].tail(12).values

动态定价引擎

def dynamic_pricing(zone_id, predicted_demand, available_drivers):
    """
    计算动态价格
    """
    base_price = 15.0  # 基础价格

    # 供需比
    supply_demand_ratio = available_drivers / predicted_demand

    # 均衡价格
    if supply_demand_ratio < 0.5:
        # 供不应求,涨价
        multiplier = 1.5 + (0.5 - supply_demand_ratio) * 2
    elif supply_demand_ratio > 1.5:
        # 供过于求,降价
        multiplier = 0.8 - (supply_demand_ratio - 1.5) * 0.2
    else:
        multiplier = 1.0

    dynamic_price = base_price * multiplier

    # 约束:最高 3 倍,最低 7 折
    dynamic_price = max(base_price * 0.7, min(base_price * 3, dynamic_price))

    return round(dynamic_price, 1)

车辆调度优化

from ortools.constraint_solver import pywrapcp

def optimize_dispatch(vehicles, orders):
    """
    优化车辆调度
    """
    # 创建路由模型
    manager = pywrapcp.RoutingIndexManager(
        len(orders) + len(vehicles),
        len(vehicles),
        len(orders)
    )
    routing = pywrapcp.RoutingModel(manager)

    # 添加距离约束
    # 添加时间窗约束
    # 求解最优匹配

    search_params = pywrapcp.DefaultRoutingSearchParameters()
    solution = routing.SolveWithParameters(search_params)

    return extract_assignments(solution)

4. 决策结果

业务影响

指标 实施前 实施后 改善
订单满足率 40% 82% +105%
平均等待时间 12 分钟 5 分钟 -58%
司机收入 ¥8,000 ¥11,500 +44%
平台收入 ¥50M/月 ¥75M/月 +50%
高峰期加价 - 1.5-2.5 倍 -

定价策略效果

时段 基础价格 动态价格范围 需求弹性
早高峰 (7-9 点) ¥15 ¥25-¥35 -0.25
晚高峰 (17-19 点) ¥15 ¥30-¥40 -0.28
平峰期 ¥15 ¥12-¥18 -0.35
深夜 (23-6 点) ¥15 ¥20-¥30 -0.20

财务价值

月度收益: - 平台收入增加:¥25M - 司机收入增加:¥15M - 总价值: ¥40M/月


5. 关键洞察

定价策略规律

1. 高峰期价格弹性较低 (刚需)
2. 平峰期价格弹性较高 (可选消费)
3. 最优加价倍数:1.5-2.5 倍 (超过 3 倍流失率飙升)

司机行为响应

价格涨 50% → 上线司机 +30%
价格涨 100% → 上线司机 +60%
但超过 150% → 边际效应递减

案例版本: v1.0 | 最后更新: 2026-06-03