想象你在老城区租下一间有年头的老屋:位置不错、户型周正,但采光昏暗、墙皮渗水、隔音也差。你想把它改造成理想的家,却又不能推倒重建——那叫“从头设计”,不是“结构优化”。在 AI 制药里,找到先导化合物就像租下这间老屋,它的活性母核就是那面不能动的承重墙;而结构优化,就是请来一位聪明的改造设计师,在保住承重墙的前提下,改善采光(药代性质)、加强隔音(选择性),并且把预算(合成成本)死死压住。 这位智能设计师会做三件事:先帮你把需求列成清单(优化目标),再在小区物业的规则内出图纸(约束条件),最后按你的满意度一轮轮改到“差不多得了”(多轮优化)。最纠结的是,采光和面积常常没法两全——设计师会在一条叫“帕累托前沿”的边界线上,给你摆出一排各有取舍的方案,让你自己挑。结构优化看起来只是化学结构的微调,本质上却是一场在取舍中逼近极限的博弈;而 AI 的价值,就是把这场博弈从“靠老师傅手感”变成“用算法系统性地探索”。

岗位关联

对 AI 制药从业者而言,结构优化是从“先导化合物”迈向“候选药物”的决定性一跃——它直接决定管线成败、研发成本与上市速度。

目录
  1. 可视化演示
  2. 优化目标定义
  3. 化学空间搜索
  4. 约束条件设置
  5. 帕累托最优
  6. 多轮优化策略
  7. 先导优化应用
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

演示分子编辑操作、化学空间帕累托搜索与多轮强化学习优化,直观展示AI如何在保持活性下改善药代性质。

本节配有交互动效(进入视口后自动加载,约 3KB)。

分子编辑 骨架修饰 片段替换 在保持活性前提下修改分子结构

优化目标定义

装修老屋的第一步不是动工,而是坐下来列需求清单:承重墙必须保留(活性母核不可动),采光要改善(吸收与通透性),渗水要解决(代谢稳定性),隔音要增强(对靶点的选择性)。需求如果写不清楚,后面每轮图纸都会跑偏。结构优化的起点,同样是把这份“人心里的愿望”翻译成机器能计算的数学语言。

在 AI 制药里,每个候选分子被表示为一个结构 $x$。活性预测模型、ADMET(吸收、分布、代谢、排泄、毒性)预测模型、选择性预测模型分别对它打分:$A(x)$ 表示活性,$P(x)$ 表示药代性质,$S(x)$ 表示选择性。于是任务从“让活性高一点”升级为“让这三个分数尽量同时变好”。最朴素也最常用的做法,是把它们按权重合成一个总分数,让优化引擎有一个明确的方向:

决策者列出的心愿清单被编码成一个总分后,AI 才知道该朝哪个方向搜索。但加权求和有个天然软肋:当活性和药代性质强烈冲突时,它只会硬生生给出一个“折中值”,而不是把整组取舍方案摊开给你看——这正是后文帕累托方法要解决的问题。也就是说,目标定义既是起点,也是暗藏选择哲学的地方。

Score(x)=w1A(x)+w2P(x)+w3S(x)\displaystyle Score(x) = w_1 A(x) + w_2 P(x) + w_3 S(x)
这个公式用“设计师评分表”理解:每张图纸都按采光、隔音、预算三条标准打分,再按你的偏好加权平均。
  1. 候选分子 $x$这里指一个具体的分子结构,例如先导化合物改造后的某种新变体。
    xx
  2. 活性得分 $A(x)$衡量分子与靶点结合并激活通路的能力,是保住药效的根本。
    A(x)A(x)
  3. 药代得分 $P(x)$综合了吸收、分布、代谢、排泄与毒性的预测得分,反映分子在体内的“命运”。
    P(x)P(x)
  4. 选择性得分 $S(x)$反映分子只作用于目标靶点、不干扰其他靶点的程度,关系到脱靶毒性。
    S(x)S(x)
  5. 权重 $w_1,w_2,w_3$由药理项目组设定的优先级,通常归一化到和为 1,用来表达“这次更看重什么”。
    w1+w2+w3=1w_1 + w_2 + w_3 = 1

化学空间搜索

目标定了,设计师开始翻方案库。化学家的方案库不是纸质图册,而是由数亿个分子组成的抽象空间——化学空间。传统做法靠经验手工改几个基团;AI 则像一位不知疲惫的设计师,每次只动一处细节:把苯环换成吡啶环,在侧链上加一个氟原子,或者把七元环缩成六元环。这些“局部修改”就叫分子编辑,所有可做的编辑动作合起来,就是动作空间。

为了让探索更有方向,AI 常用强化学习训练一个策略网络:把当前分子看作状态 $s_t$,网络输出“此时做哪个编辑动作更有可能得到高回报”。编辑动作会带来新状态 $s_{t+1}$,而奖励函数的设计至关重要——它既要鼓励分子变好,又要防止分子改得面目全非,常见的做法是在效用得分之外,减去一个与出发分子的化学距离惩罚:

这个奖励设计同时管住了两个冲动:想得分更高,也想留在先导分子的“风格圈”里。就像设计师不断在方案库中翻找时,既要让布局更合理,又不能把老屋原本的味道丢掉。此外,策略网络还要在“沿用已知好动作”与“尝试陌生动作”之间做平衡,这就是探索与利用的取舍,也是强化学习相比贪心搜索的进阶之处。

R(st+1)=U(st+1)−λ⋅d(st+1,s0)\displaystyle R(s_{t+1}) = U(s_{t+1}) - \lambda \cdot d(s_{t+1}, s_0)
奖励函数就像改造评分规则:新图纸的“基础分”再减去“风格偏离老屋太多”的扣分,防止设计师把老屋改成一栋玻璃幕墙的摩天楼。
  1. 新状态 $s_{t+1}$分子经过一次编辑后得到的新结构,对应一版新图纸。
    st+1s_{t+1}
  2. 效用得分 $U(s_{t+1})$新分子用上一节加权公式算出的综合分,代表图纸本身的质量。
    U(st+1)U(s_{t+1})
  3. 化学距离 $d(s_{t+1}, s_0)$新结构与起始先导分子的相似度距离,距离越大说明动工越“激进”。
    d(st+1,s0)d(s_{t+1}, s_0)
  4. 惩罚系数 $\lambda$控制“不能改太狠”的力度,系数越大越鼓励保守微调。
    λ>0\lambda > 0
  5. 奖励 $R(s_{t+1})$综合收益,只有奖励更高时,这条编辑路径才值得被策略网络记住。
    R(st+1)R(s_{t+1})

约束条件设置

设计图再精彩,也得过物业和房管局:承重墙不能拆、外立面不能随便改、燃气管线不能乱拉。结构优化同样有边界,违反边界的分子即使计算得分再高,也会被药化专家一票否决,因为合成不出来或毒性风险太大。

这些边界就是约束条件,常见的有四类:类药性规则(如 Lipinski 五规则,限制分子量、脂水分配系数、氢键供体和受体的数量),合成可行性评分(逆合成路线越短、越常用越好),结构相似性下限(确保不破坏先导母核的骨架与结合方式),以及禁忌结构过滤(排除已知毒性基团,如某些迈克尔受体、芳胺类结构)。把它们写成数学形式,就得到带约束的优化问题:

约束不是敌人,而是帮手。把可成药、可合成、可专利这些“红线”写进优化模型后,搜出来的分子才真正入得了药物化学家的法眼,而不是一堆“看起来很美、却做不出来”的纸面结构。换句话说,约束条件越贴近真实的物理化学世界,AI 的探索就越省力,最终交付的方案也越接近一个能进实验室的项目。

min⁡x∈XJ(x)s.t.gj(x)≤0,j=1,…,m\displaystyle \min_{x \in \mathcal{X}} J(x) \quad \text{s.t.} \quad g_j(x) \le 0, \quad j=1,\dots,m
约束条件像“装修红线”:目标函数帮你找最好的方案,但红线内才允许施工,任何一条红线都不能越。
  1. 候选空间 $\mathcal{X}$AI 可生成的所有分子结构集合,相当于物业允许动工的所有户型。
    X\mathcal{X}
  2. 目标函数 $J(x)$优化的总目标,比如做活性的负对数,数值越小越好,代表“主性能”。
    J(x)J(x)
  3. 约束函数 $g_j(x)$第 $j$ 条红线的违反程度,例如分子量超过阈值多少、合成步数超过上限多少。
    gj(x)g_j(x)
  4. 约束满足条件 $g_j(x) \le 0$要求所有约束都小于等于零,即任何一条红线都不能被越过。
    gj(x)≤0,j=1,…,mg_j(x) \le 0, \quad j=1,\dots,m

帕累托最优

改造中最憋屈的情形来了:想要更好的采光,就不得不牺牲一些室内面积;想要加强隔音,预算又超了。这时,设计师不会只给你一个“最优解”,而是把一整排“无法两全”的方案摊开,让你自己做决定。这一排方案,就是帕累托前沿。

在多目标优化里,若两个候选分子 $x^{*}$ 与 $x'$ 比较,只有当 $x^{*}$ 在所有目标上都不比 $x'$ 差,并且至少在一个目标上严格更好时,我们才说 $x^{*}$ 帕累托支配 $x'$。支配的数学定义如下:

帕累托前沿上的每个点都是一种取舍立场:想要高活性,就选前沿靠右的点,代价是药代分低;想要药代稳定,就选前沿靠左的点,活性会低调一点。工程上,AI 会先把整条前沿解集搜索出来,再由药物化学家结合合成成本、市场定位、专利空间等偏好去决策。这一套组合拳,正是多目标优化比单一评分函数更适合真实药物研发的原因。

x∗≻x′  ⟺  ∀i:fi(x∗)≥fi(x′)∧∃j:fj(x∗)>fj(x′)\displaystyle x^{*} \succ x' \iff \forall i: f_i(x^{*}) \ge f_i(x') \wedge \exists j: f_j(x^{*}) > f_j(x')
帕累托支配就是“全面不输、局部更优”。在前沿上的分子之间互不支配,你想提升一个目标,就必须接受另一个目标变差。
  1. 候选解 $x^{*}$ 与 $x'$两版不同的改造图纸,代表两个候选分子。
    x∗,x′x^{*}, \quad x'
  2. 目标向量 $f_i(\cdot)$第 $i$ 个目标函数,例如活性、药代或选择性,这里约定数值越大越好。
    fi(⋅)f_i(\cdot)
  3. 全员不差条件 $\forall i$在每一个目标上,$x^{*}$ 都不输给 $x'$。
    ∀i:fi(x∗)≥fi(x′)\forall i: f_i(x^{*}) \ge f_i(x')
  4. 至少一个更优条件 $\exists j$存在至少一个目标,$x^{*}$ 严格高于 $x'$。
    ∃j:fj(x∗)>fj(x′)\exists j: f_j(x^{*}) > f_j(x')
  5. 支配关系结论两条同时成立,才能称作“$x^{*}$ 支配 $x'$”,否则两者互不支配。
    x∗≻x′x^{*} \succ x'

多轮优化策略

装修从来不是一稿定终稿。头一版图纸往往要让业主和施工队来回改七八轮,每轮施工完都要验收、整改,再验收。AI 结构优化也是同样的循环:生成一批候选分子,交给预测模型打分,把得分反馈给策略网络去更新,然后再生成下一批,如此反复,直到改进空间趋近于零。

这种“生成→评估→反馈→再生成”的闭环就是多轮优化策略。每一轮被称为一次迭代,策略网络从上一轮的分子中汲取教训:哪个编辑动作带来了提升,哪个动作让分子掉进了约束禁区。为了知道该不该停止,工程上会监控相邻两轮最优得分的相对变化率,当它小于一个很小的阈值时,就认为优化已经收敛:

多轮策略的精髓在于“反馈驱动”:不是让 AI 一次性碰运气,而是让它在每一轮迭代中不断校准自己的手脚。同时要防止过早收敛导致的多样性枯竭——必要时会重置部分分子种群或调大探索噪声,就像装修中途业主突然说“这个风格不对”,设计师就要推翻重画。收敛分析因此不仅要看分数变化,还要观察帕累托前沿是否还在扩展。

ηt=∣Utmax⁡−Ut−1max⁡∣Ut−1max⁡<ε\displaystyle \eta_t = \frac{\left| U_t^{\max} - U_{t-1}^{\max} \right|}{U_{t-1}^{\max}} < \varepsilon
收敛判据可以类比为“整改验收”:连续几轮工人都说已经改无可改、得分几乎不动,那就果断竣工验收,别再烧钱。
  1. 第 $t$ 轮最优效用 $U_t^{\max}$第 $t$ 轮迭代中所有候选分子里的最高综合评分。
    Utmax⁡U_t^{\max}
  2. 绝对变化量相邻两轮最优得分的差值绝对值,反映“这轮比上轮进步了多少”。
    ∣Utmax⁡−Ut−1max⁡∣\left| U_t^{\max} - U_{t-1}^{\max} \right|
  3. 相对变化率 $\eta_t$用上一轮得分做分母归一化,便于跨项目设置统一的早停标准。
    ηt=∣Utmax⁡−Ut−1max⁡∣Ut−1max⁡\eta_t = \frac{\left| U_t^{\max} - U_{t-1}^{\max} \right|}{U_{t-1}^{\max}}
  4. 收敛阈值 $\varepsilon$若变化率小于阈值,就触发早停,输出当前候选集。
    ε≈0.01\varepsilon \approx 0.01

先导优化应用

老屋改造完成后,估值会大幅提升。结构优化也一样:同样一栋“先导化合物”骨架,通过精准改造,就能从“只有潜力”的化合物,升级成能进入临床前研究的候选药物。在真实创新药管线中,这是最花钱、最耗时、也最能体现 AI 价值的环节之一。

具体应用不胜枚举:解决代谢半衰期过短、让药物可以一天一次给药;提高水溶性以便注射制剂开发;优化选择性以降低脱靶毒性;甚至在专利悬崖前快速开发差异化改良药。传统路线下,一个先导优化项目往往要 2~3 年和上千万美元;AI 辅助的目标,是把时间缩短到数月、成本压缩到原来的几分之一。衡量这项技术效益时,产业界最常看的是“成本节省率”:

这门技术带来的产业价值,不只是某一个分子的成功,而是整个管线速度的提升:先导优化越快,进入临床的候选化合物越多,新药上市的概率就越大。对今天动辄“十年十亿美元”的新药研发来说,结构优化正是降本增效的第一现场,而 AI 恰恰把这个现场从“依靠经验堆人”变成了“依靠数据堆算力”。

ROI=C传统−CAIC传统×100%\displaystyle ROI = \frac{C_{\text{传统}} - C_{\text{AI}}}{C_{\text{传统}}} \times 100\%
ROI 就是“省下的钱占原本要花的钱的比例”。AI 不是免费魔法,而是用算力换时间、用大数据换经验,最终体现在研发成本的大幅削减上。
  1. 传统成本 $C_{\text{传统}}$使用传统经验迭代完成先导优化的总预算,包括合成、检测、人力与时间成本。
    C传统C_{\text{传统}}
  2. AI 成本 $C_{\text{AI}}$AI 辅助下的算力、训练数据、实验室验证等合计投入。
    CAIC_{\text{AI}}
  3. 成本差分子中的减法算出的绝对节省额,代表省下的真金白银。
    C传统−CAIC_{\text{传统}} - C_{\text{AI}}
  4. 成本回收率 $ROI$节省额占传统成本的比例,用于向管理层汇报“引入 AI 值不值”。
    C传统−CAIC传统×100%\frac{C_{\text{传统}} - C_{\text{AI}}}{C_{\text{传统}}} \times 100\%

AI 应用场景

候选药物的 ADMET 药代优化

阶段:先导优化(Lead Optimization)

解决的问题:先导化合物活性好,但溶解性差、代谢快,导致口服生物利用度低。传统做法只能靠化学家逐个替换基团,耗费数周;AI 通过多轮强化学习与分子编辑,在保持活性的前提下快速搜索更优的药代性质。

具体案例:某激酶抑制剂项目里,先导分子在肝微粒体中半衰期仅 12 分钟。AI 对酰胺键附近做极性基团编辑,30 个候选中有 3 个将半衰期提升到 86 分钟,且活性保留率超过 80%,进入下一轮合成验证。

激酶选择性优化

阶段:先导优化

解决的问题:先导化合物对目标激酶和多次要激酶的亲和力相近,脱靶毒性风险大。传统选择性优化依赖大量共晶结构分析和合成试错,效率低。

具体案例:项目靶点是某肿瘤相关激酶,先导分子对同家族另一激酶也有纳摩尔级抑制。AI 利用两靶点结合口袋差异构造约束,先锁定关键残基差异,再生成并评估改构分子,最终选出一个活性损失仅 3 倍、但选择性提升 20 倍的候选。

先导优化全流程提速

阶段:先导优化 → 临床前候选药物提名

解决的问题:把“设计—合成—检测—再设计”的闭环从数月压缩到数周,减少无效合成。

具体案例:某小分子抗病毒项目用 AI 多轮优化替代了传统一轮一改的流程:第一轮生成 500 个候选并虚拟筛选出 120 个,第二轮按 ADMET 约束精修到 18 个,最终 5 个在体内实验中胜出,从先导到候选仅耗时 4 个月。

Python 演示

python71 行
"""多目标分子结构优化演示(简化版)"""import mathimport random  class Molecule:    """简化分子: 用二维特征向量表示, 实际中为分子图结构"""     def __init__(self, feat):        self.feat = list(feat)     def copy(self):        return Molecule(self.feat)     def __repr__(self):        return "Molecule(活性=%.2f, 药代=%.2f)" % tuple(self.feat)  class ParetoOptimizer:    """以种群迭代的方式在活性、药代两个目标间搜索帕累托前沿"""     def __init__(self, seeds):        self.population = [s.copy() for s in seeds]        self.frontier = self.population[:]        self.iterations = 0     def _score(self, m, idx):        return 1.0 / (1.0 + math.exp(-(m.feat[idx] - 0.5) * 6.0))     def _dominates(self, a, b):        fa = (self._score(a, 0), self._score(a, 1))        fb = (self._score(b, 0), self._score(b, 1))        return all(x >= y for x, y in zip(fa, fb)) and any(            x > y for x, y in zip(fa, fb)        )     def _mutate(self, m):        new = m.copy()        k = random.randrange(2)        new.feat[k] = min(1.0, max(0.0, new.feat[k] + random.gauss(0, 0.15)))        return new     def optimize(self, rounds=300):        for _ in range(rounds):            idx = random.randrange(len(self.population))            cand = self._mutate(self.population[idx])            if not any(self._dominates(x, cand) for x in self.population):                self.population.append(cand)                self.population = [                    x for x in self.population if not self._dominates(cand, x)                ]            self.iterations += 1        self.frontier = [            x            for x in self.population            if not any(self._dominates(y, x) for y in self.population)        ]        return self.frontier  if __name__ == "__main__":    random.seed(42)    seeds = [        Molecule([0.7, 0.3]),        Molecule([0.5, 0.4]),        Molecule([0.6, 0.2]),    ]    opt = ParetoOptimizer(seeds)    result = opt.optimize(rounds=300)    print("迭代 %d 轮, 得到 %d 个帕累托候选分子: %s"          % (opt.iterations, len(result), result))
目的:用简化的二维特征表示分子,通过随机变异与帕累托支配淘汰,在“活性”和“药代”两个目标间做多轮优化,最终输出一整个帕累托前沿候选集。
  1. def copy(self): return Molecule(self.feat)分子复制,生成子代时不修改亲代,保护原始方案。
  2. def _score(self, m, idx)用 Sigmoid 把特征值映射成 0~1 的得分,对应前文的活性或药代得分。
  3. new.feat[k] = min(1.0, max(0.0, new.feat[k] + random.gauss(0, 0.15)))对第 k 个维度做高斯扰动,就是一次分子编辑动作。
  4. if not any(self._dominates(x, cand) for x in self.population)只有当种群中没有成员支配新候选时,才接受它,相当于给图纸一轮“审核”。
  5. self.population = [x for x in self.population if not self._dominates(cand, x)]反过来淘汰被新候选支配的旧成员,让种群整体向前沿逼近。
  6. self.frontier = [x for x in self.population if not any(self._dominates(y, x) for y in self.population)]最终筛选出互不支配的分子集合,就是帕累托前沿。

常见误区

误区我看到优化目标里有活性分数,那肯定是活性越高分子越强。先把活性拉满,其他问题以后再说,反正做药不就是图药效吗?

正解结构优化是多目标博弈,活性只是其中一项。活性过高往往伴随着溶解性差、代谢过快、脱靶毒性甚至细胞毒性。就像装修老屋,你总不能为了采光无限度砸窗,砸到承重墙塌了,再好的采光也没意义。AI 优化的核心正是“在活性可接受的前提下,把其他短板补齐”。

为何常见:人们天然被单一显性指标吸引,活性又是药物最直观的属性,容易忽略药物是“多方面都要及格”的系统工程。

误区AI 不是应该大力创新吗?结构改得越稀奇,专利价值越高,应该鼓励模型跳出先导化合物的框框。

正解先导优化不是从头设计,它的核心是“在原有骨架附近做精调”。完全跳走的结构往往合成路线未知、结合模式改变、专利覆盖也会落空。代码里的化学距离惩罚 $\lambda \cdot d(s_{t+1}, s_0)$ 就是在给“改太狠”踩刹车。老屋改造改的是门窗布局,不是把房子换成比萨斜塔。

为何常见:媒体渲染“AI 发现全新分子”的影响力大,让人误以为越新越好,却忽略制药工业更看重在真实约束下的可执行改良。

误区模型训练好,输入先导结构,一键输出候选药物,然后就去申报临床,为什么还要多轮迭代?

正解干实验的预测分数和湿实验的实测结果之间总有差距。一轮优化只是“首轮设计”,需要把候选拿去合成检测,把实测数据反馈给模型,再跑第二轮、第三轮。收敛判据也正是在监控这种迭代中的改进幅度。没有多轮反馈的优化,就像装修只看效果图就入住,入住才发现下水道堵塞。

为何常见:演示 demo 常常把一次生成当亮点,让小白以为 AI 输出即终稿,忽视了真实管线里“设计—验证—再设计”的闭环。

误区既然 AI 给出一整条帕累托前沿,那前沿上的每个分子应该都厉害,各方面都秒杀普通分子。

正解帕累托前沿的本质是“互不支配”:每个点都在某个目标上更好,但在另一个目标上更差。比如前沿右侧分子活性高但药代差,左侧相反。不存在任何前沿点在所有目标同时超过另一个前沿点。决策者只能结合自身偏好去选择,这也是帕累托方法最容易被误解的地方。

为何常见:把“最优”这个词想成绝对优劣,忽略了多目标优化里的“优劣”其实是相对的、需要权衡的。

面试题

Q1. 结构优化首先要“保住”的是什么?

单选题 · easy

  • A.先导母核的固有活性← 正确答案
  • B.化合物的水溶性指标
  • C.分子的代谢半衰期
  • D.靶点的选择性提高

答案:A。结构优化的前提是“保持活性”,就像老屋改造首先要保住承重墙。水溶性、半衰期、选择性都是后续可优化的属性,但活性母核一旦丢失,整个分子就偏离了先导化合物的系列,不再是“优化”而是“重设计”。

Q2. 先导优化中的“药代性质”不包括以下哪项?

单选题 · easy

  • A.吸收与分布过程
  • B.代谢与排泄过程
  • C.靶点结合活性强度← 正确答案
  • D.血脑屏障透过能力

答案:C。药代性质研究的是分子在体内的“旅程”——吸收、分布、代谢、排泄。靶点结合活性属于药效范畴,不是药代范畴。把这两个概念分清,是评估一个分子能否成药的基础,好比改造老屋时“采光”和“户型”是两件独立的事。

Q3. 药物化学里的“类药性”通常指的是什么?

单选题 · easy

  • A.分子与靶点的结合强度
  • B.分子符合成药规律的程度← 正确答案
  • C.分子合成路线总成本
  • D.分子在瓶中的化学稳定性

答案:B。类药性是用 Lipinski 五规则等经验规律衡量分子“像不像药”的程度,关注分子量、脂水分配系数、氢键供受体数等。它是对先导分子的初步过滤,与结合强度、合成成本、储存稳定性都不同,相当于物业对户型的基本审核。

Q4. 强化学习策略网络在结构优化中的输入通常是?

单选题 · mid

  • A.当前分子的结构状态← 正确答案
  • B.患者的医保报销记录
  • C.历史临床试验广告
  • D.上市药物的销售数据

答案:A。策略网络把当前分子 $s_t$ 作为状态输入,输出各编辑动作的概率。它决策的是“下一步怎么改分子”,因此输入必须是当前分子结构。患者记录、广告、销售数据属于完全不相干的信号,就像设计师改图纸不需要参考邻居的物业费。

Q5. 多轮优化中常用的收敛信号包括?

多选题 · mid

  • A.每轮最优得分变化很小← 正确答案
  • B.连续多轮前沿未更新← 正确答案
  • C.分子量降到固定值
  • D.计算资源完全耗尽

答案:AB。收敛意味着改进空间趋近于零,变现为每轮最优得分几乎不变或帕累托前沿不再扩展。分子量降到某个值不是收敛信号,而是约束条件;资源耗尽只是被迫终止,并非主动判定的收敛。后两者就像装修队“没钱停工”,和“房子已经改无可改”根本不是一回事。

Q6. 结构优化任务中常用的约束条件包括?

多选题 · mid

  • A.类药性规则限制← 正确答案
  • B.合成可行性限制← 正确答案
  • C.结构相似性限制← 正确答案
  • D.分子颜色限制

答案:ABC。类药性规则确保分子具有成药潜力,合成可行性确保能真正被做出并纯化,结构相似性确保不丢先导骨架。分子颜色对药物功能几乎无影响,不构成约束。约束条件就像装修红线,每条红线都拦着一个“不切实际的设计冲动”。

Q7. 关于帕累托前沿,正确的说法是?

单选题 · mid

  • A.前沿分子的活性一定相同
  • B.不能无损提升任一目标← 正确答案
  • C.所有目标均为全局最优
  • D.代谢稳定性均是最优

答案:B。前沿上的分子互不支配,任何稍微提升一个目标的行为都会导致另一个目标变差,这正是“不能无损提升任一目标”。活性相同、全局最优、代谢最佳都不准确,因为前沿关心的不是单目标极值,而是目标间的取舍边界。

Q8. 相比加权求和的评分函数,帕累托方法最大的优势是?

单选题 · hard

  • A.计算速度更快
  • B.保留目标间的权衡结构← 正确答案
  • C.不需要预测模型
  • D.保证分子一定可合成

答案:B。加权求和把多目标压成一个标量,得到唯一解但丢失了“目标之间如何冲突”的信息。帕累托方法保留整个权衡结构,让决策者看到活性与药代之间的完整折中曲线。计算速度不比加权快,预测模型依然需要,合成可行性更是要靠约束来保证。

Q9. 使用权重法做多目标优化时,“权重”存在什么理论风险?

单选题 · extreme

  • A.无法表达决策者的偏好
  • B.难搜凹形帕累托前沿← 正确答案
  • C.权重必须完全相等
  • D.权重随分子量变化

答案:B。权重法只能找到凸形帕累托前沿上的解,对凹形前沿无能为力,这是数学上已被证明的局限。权重可以自由表达偏好,不必相等,也不随分子量变化。这个坑反映了化工、制药领域实践中的真实问题:你以为拉权重就能覆盖所有权衡,结果凹形区域的优秀方案会被系统性遗漏。

Q10. 在帕累托前沿上筛选候选分子时,正确的工程实践有?

多选题 · hard

  • A.前沿点之间互不支配← 正确答案
  • B.结合合成成本与专利偏好取舍← 正确答案
  • C.前沿必定只有一个分子
  • D.活性最强即为最优解

答案:AB。前沿上的分子两两之间互不支配,这是帕累托前沿的定义;工程上最终会结合合成成本、专利空间、开发定位等偏好来挑选。前沿通常包含许多分子,活性最强也不等于最优,因为药代与毒性代价可能过大。这些实践原则正是结构优化从“算法输出”走向“项目决策”的关键桥梁。