Skip to content

HAKUKA503/Optimal-Advertising-Allocation-via-Differential-Evolution

Repository files navigation

基于差分进化算法的广告投放策略优化

1 问题介绍

1.1 问题场景描述

在数字化营销场景中,某公司计划在微博、B站、小红书、知乎、抖音这5个网络平台开展广告投放活动。不同平台因用户群体特征、流量属性等差异,在点击转化率、曝光量潜力及投放成本方面表现各不相同。例如,抖音平台凭借庞大的用户基数和多元的内容生态,曝光量潜力高,但点击转化率受内容创意影响波动较大;知乎平台用户以知识需求为导向,点击转化率相对稳定但整体曝光量潜力低于抖音。公司面临的核心挑战是,在总投放预算有限(设为20单位,单位可根据实际投放货币及成本换算)的前提下,合理分配各平台投放金额,实现潜在转化用户数的最大化。

1.2 数学建模

1.2.1 决策变量定义

$x_i$ 表示在第 $i$ 个平台($i=1,2,…,5$,依次对应微博、B站、小红书、知乎、抖音)的投放金额,其值的合理分配直接决定广告投放效果与成本控制。

1.2.2 目标函数构建

优化目标聚焦于最大化潜在转化用户数,为适配差分进化算法(Differential Evolution, DE)“最小化”的求解逻辑,通过构建损失函数并引入负号实现转化需求的转换,具体目标函数为:

$$ \text{minimize} \quad -\sum_{i=1}^{5} a_i(1 - e^{-b_i x_i}) + \text{penalty terms} $$

其中,$a_i$ 和 $b_i$ 分别为第 $i$ 个平台的转化模型参数,反映平台最大曝光转化潜力,体现投放金额对转化提升的边际效应(越大,投放金额增加对转化的促进作用衰减越快);负号的引入,将“最大化潜在转化用户数”转换为 “最小化损失函数”,与DE算法求解逻辑适配。

罚项部分用于处理约束条件:

  • 针对总预算约束,当总投放金额 $\sum_{i=1}^{5} x_i$ 超过20时,罚项生效,$\lambda_1$ 为罚项系数,数值越大表示对超预算行为的惩罚越强,驱动算法搜索满足总预算约束的解;
  • 处理单个平台投放范围约束,若 $x_i < 1$$x_i > 10$,对应罚项激活,$\lambda_2$ 同样作为罚项系数,确保算法探索的解在 $[1,10]$ 的合理投放区间内。

1.2.3 约束条件说明

问题包含两类约束:

  • 总预算约束:$\sum_{i=1}^{5} x_i \leq 20$,即5个平台投放金额总和不得超出公司设定的预算上限,这是企业成本控制的核心边界;
  • 单个平台投放范围约束:下限1保证平台投放具备基本曝光与转化基础,上限10避免单一平台投放占比过高,导致资源分配失衡。通过罚函数法,将两类约束融入目标函数,无需额外约束处理机制,让DE算法可直接对含约束问题进行优化、简化求解流程的同时,借助罚项强度($\lambda_1, \lambda_2$)灵活调控约束满足程度。

2 算法介绍(差分进化算法)

2.1 算法原理概述

差分进化算法(Differential Evolution, DE)凭借独特的群体进化机制脱颖而出。作为一种基于群体的随机优化算法,DE模拟生物进化进程中的变异、交叉与选择核心环节,以群体搜索的方式遍历解空间,对非线性、多约束优化问题展现出良好的适应性,尤其在处理广告投放策略这类需平衡多平台资源分配的复杂问题时,能有效探索全局最优解。其中,“DE/rand/1/bin”作为经典变种,以随机选择基向量、标准化变异交叉操作为特色,在实际应用中具备易实现、收敛性稳定的优势,成为本次广告投放优化的核心算法。

2.2 DE/rand/1/bin算法流程

DE/rand/1/bin算法通过迭代优化种群,逐步逼近最优解,其完整流程涵盖种群初始化、变异、交叉与选择四个关键环节:

2.2.1 种群初始化

算法起始需构建初始种群,种群中每个个体对应一组广告投放策略(即5维向量,维度对应5个平台的投放金额)。为保证解的合理性,初始个体需满足平台投放范围约束。具体生成方式为,对第 $i$ 个个体($N$ 为种群规模)的第 $j$ 维($j=1,2,…,5$),通过随机函数生成初始值:

$$ x_{ij} = 1 + 9 \times \text{rand}() $$

其中,$\text{rand}()$ 生成 $[0,1]$ 区间均匀分布的随机数,经线性变换后,确保 $x_{ij}$ 落在 $[1,10]$ 范围内。初始化后的种群为算法提供初始解集合,后续迭代在此基础上逐步优化。

2.2.2 变异操作(DE/rand/1)

变异操作是DE算法探索新解的核心步骤。针对第 $g$ 代种群中的第 $i$ 个个体, 需从种群中随机选取3个互不相同的个体 ($r_1, r_2, r_3$ 为随机索引且互不相等), 通过以下公式生成变异向量:

$$ v_i = x_{r1} + F \times (x_{r2} - x_{r3}) $$

式中,$F$ 为变异因子,取值通常在 $[0,2]$ 区间,控制变异步长:$F$ 过小会限制算法探索范围,易陷入局部最优;$F$ 过大则可能导致解过度跳跃,破坏当前优质解结构。通过该操作,算法利用种群个体间的差异构造新解,拓展搜索空间。

2.2.3 交叉操作(bin)

交叉操作旨在融合变异向量与原个体的特征,生成兼具探索性与开发性的试验向量。具体逻辑为:对个体 $x_i$ 与变异向量 $v_i$ 的每一维 $j$ 生成 $[0,1]$ 区间随机数,并随机选取一个维度(保证至少有一维参与交叉)。若 ($\text{rand}() < \text{CR}$ 或当前维度 $j == j_{\text{rand}}$)($\text{CR}$ 为交叉率,通常取 $[0,1]$ 区间值)则试验向量第 $j$ 维继承变异向量对应维度的值; 否则,继承原个体对应维度的值,即:

$$ u_{ij} = \begin{cases} v_{ij} & \text{if } (\text{rand}() < \text{CR} \text{ or } j == j_{\text{rand}}) \\ x_{ij} & \text{otherwise} \end{cases} $$

$\text{CR}$ 决定试验向量继承变异向量的维度比例:越高,试验向量越接近变异向量,算法探索新区域的能力越强;过低则试验向量偏向原个体,易陷入局部搜索。该操作通过维度级别的随机交叉,平衡算法的勘探(探索新解)与开发(优化当前解)能力。

2.2.4 选择操作

选择操作是算法收敛的关键驱动力,通过 “优胜劣汰” 机制筛选优质解。对试验向量 $u_i$ 与原个体 $x_i$,分别计算其目标函数值和。由于目标函数为“最小化”形式,若 $f(u_i) &lt; f(x_i)$,则试验向量更优,用 $u_i$ 替换 $x_i$ 进入第 $g+1$ 代种群;否则保留原个体。数学表达为:

$$ x_i^{g+1} = \begin{cases} u_i & \text{if } f(u_i) < f(x_i) \\ x_i & \text{otherwise} \end{cases} $$

通过逐代选择更优个体,种群整体质量持续提升,逐步逼近全局最优投放策略。

3 算法求解

3.1 算法参数设置

算法参数直接影响优化效率与结果质量,需结合问题特性与算法经验综合确定:

  • 种群规模 $N$:设置为50。种群规模需平衡“探索解空间的全面性”与“计算资源消耗”,50的取值参考DE算法经典应用场景(如工程优化、资源分配问题),既保证种群具备足够多样性探索多平台投放组合,又避免因规模过大导致迭代缓慢。
  • 最大迭代次数 $G$:设为500。迭代次数需覆盖算法从“全局探索”到“局部收敛”的完整过程,500次迭代可支撑种群在广告投放问题的解空间中充分进化。
  • 变异因子 $F$:初始测试值取0.7。$F$ 控制变异操作的步长,0.7属于DE算法常用的中间值,既避免因步长过小陷入局部最优(如 $F=0.1$ 时易早熟收敛),又防止步长过大破坏优质解结构(如 $F=1.5$ 时解波动剧烈),适配广告投放策略优化对“探索-开发”平衡的需求。
  • 交叉率 $\text{CR}$:初始测试值设为0.9。$\text{CR}$ 决定试验向量继承变异向量的维度比例,0.9的高交叉率强化算法勘探能力,使试验向量更多融合变异操作产生的新特征,助力种群跳出局部最优投放组合,契合多平台资源分配需广泛探索的特点。

About

本项目旨在构建数字化广告投放优化系统,通过差分进化算法解决多平台预算分配难题——在五个平台差异化特征(如抖音高曝光但转化波动、知乎转化稳定但曝光有限等)下,实现20单位总预算的智能分配,最大化潜在用户转化数。系统内置平台特性参数库与约束优化模型,兼顾曝光潜力、转化效率及预算限制,为数字化营销提供科学决策支持。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages