当前位置:首页>Excel>基于Excel的遗传算法原理与工程应用——从理论到到实操——轻松快速理解遗传算法-全网唯一首发

基于Excel的遗传算法原理与工程应用——从理论到到实操——轻松快速理解遗传算法-全网唯一首发

  • 2026-04-07 12:51:10
基于Excel的遗传算法原理与工程应用——从理论到到实操——轻松快速理解遗传算法-全网唯一首发

1 现实痛点

在实际工程场景中,优化问题无处不在,但多数工程人都面临以下痛点,传统方法难以破解,有没有一种方法,能更快找到一个“足够好的解”。

  1. 无明确数学模型,传统方法无从下手:多数工程问题(如零件加工质量优化、设备调度)受多因素影响,存在高维度(变量多)、非线性(关系复杂)、多峰(多个局部最优),无法推导精准的目标函数,经典的梯度下降、线性规划等方法难以不适用,只能凭经验试错。比如穷举法:计算量大(如100维问题,1秒算1亿次需3×10^84年),梯度下降:依赖导数,易陷入局部最优。

  2. 多约束、非线性,试错成本极高:以工艺参数优化为例,往往涉及3-5个变量,每个变量有不同取值范围,两两组合后候选解数量呈指数增长,人工试错不仅耗时久(可能需数天反复实验),还容易错过最优解,造成材料、工时浪费。而遗传算法,无需导数、全局搜索,是仿生智能优化的典型代表,能够极大提交计算效率。

  3. 编程门槛高,算法落地难:虽然Python、Matlab可实现遗传算法,但多数工程技术人员缺乏编程基础,面对代码调试、参数适配无从下手,导致“懂算法原理,却无法落地到实际工作”。

  4. 需快速试算,拒绝复杂工具:工程中常需快速验证优化思路、初筛参数,而专业算法软件(如Matlab)操作繁琐、启动慢,无法满足“即时试算、灵活调整”的需求。

而Excel版遗传算法恰好精准破解以上痛点——无需编程、无需复杂模型、操作可视化、调整灵活,既能快速验证优化思路,又能直接落地解决低维度工程优化问题,成为工程人高效工作的“轻量工具”。

另外,Excel能够更好地呈现计算的过程,从而帮助我们更好理解算法的原理和计算过程,从而实现对算法结果的诊断,而非简单的复制和粘贴代码,而且懂了原理后,在这个基础上,我们也可以继续进行组合优化和算法改进的工作。

2 概念和原理

遗传算法(GA)是一种模拟达尔文生物进化论的随机搜索优化算法,是一种启发式优化方法,核心是通过“选择、交叉、变异”三个操作,让随机的初始解不断进化,最终逼近问题的最优解(全局最优/近似最优),无需提前知道问题的数学模型(非常关键),特别适合工程中“多约束、非线性、无解析解”的优化问题(如工艺参数优化、资源分配、路径规划等)。

(1)遗传算法与生物进化的对应关系

把算法中的“解”比作生物的“个体”,所有解的集合是“种群”,解的优劣是“适应度”,解的参数是“基因”,算法的寻优过程就是种群的进化过程:

生物进化概念遗传算法概念核心作用
个体问题的一个可行解算法的基本操作单元一个潜在解,如染色体=二进制串11010
种群可行解的集合进化的载体,包含多个候选解多个个体的集合(如50个随机生成的二进制串)
基因解的参数/变量决定个体的“性状”(解的优劣)
适应度解的评价指标判断个体是否“优秀”,适应度越高越易保留评价解的质量(如Fitness=1/(目标函数值+ε))
选择优胜劣汰保留适应度高的个体,淘汰劣质个体,保证进化方向
交叉基因重组优秀个体交换基因,产生更优的子代,实现解的“改良”
变异基因随机突变随机改变个别基因,避免种群陷入“局部最优”,保证搜索的全面性

通过种群,遗传算法就保留多方案并行比较的逻辑。

 适应度(Fitness)用于评价一个方案的优劣,适应度高,并不等于“完美解”,而是“相对更优的解”。

选择使得好的方案更容易被保留,交叉使得优秀方案的特征重新组合,变异实现小概率随机变化,避免陷入局部最优。

(2)遗传算法的核心特点

  1. 随机搜索但不盲目:以适应度为导向,始终向更优解的方向进化;

  2. 全局寻优能力强:变异操作避免“死磕局部最优”,适合工程复杂问题;

  3. 无需数学模型:只需定义“解的形式”和“优劣评价标准”,无需推导目标函数的导数/梯度;

  4. 操作简单易实现:核心仅3个操作,可通过Excel、编程等多种方式落地。

(3)遗传算法的通用求解步骤

  1. 编码:将工程问题的“实际解”转化为算法可处理的“基因编码”(如数字、二进制串),是算法落地的第一步;

  2. 初始化种群:随机生成一定数量的初始解,组成初代种群(数量不宜过少,否则搜索范围窄);

  3. 计算适应度:按工程问题的“评价标准”,计算每个个体的适应度(如“成本最低”则成本越小适应度越高);

  4. 选择操作:按适应度高低筛选个体,适应度越高被选中的概率越大;

  5. 交叉操作:让选中的优秀个体随机配对,交换部分基因,生成子代个体;

  6. 变异操作:以极低的概率随机改变子代个体的部分基因,引入新的解;

  7. 终止判断:若达到进化次数/适应度不再提升,输出最优个体(最优解);否则将子代作为新种群,返回步骤3继续进化。

遗传算法就是“随机生一批解→挑好的→好的互相结合生更好的→偶尔变个异防僵化→反复迭代直到找到最优解”。

具体算法流程如下:

基因编码设计:

编码类型适用场景示例
二进制离散决策(是否采购)1101表示选A/B/C设备
实数连续参数(混凝土配比)[0.5,   2.3, 40]
排列顺序敏感问题(施工工序)[3,1,4,2]

算法关键参数默认值:

  • 交叉概率:60%~90%

  • 变异概率:1%~10%

  • 最大迭代次数:100~1000次

终止条件:

  • 适应度连续N代无提升

  • 达到预设迭代次数

适应度函数设计:

  • 目标转换规则:最大化问题:直接使用原函数(如利润);最小化问题:取倒数(如工期:Fitness = 1/(工期+1))

  • 多目标处理方法:加权求和:Fitness = 0.7×利润 + 0.3×质量评分;帕累托排序(NSGA-II算法)

  • 约束处理技巧:罚函数法:Fitness = 目标值 - 1000×超预算金额;修复法:强制修改不可行解为可行(如随机删除超预算设备)

选择操作策略:

  • 轮盘赌选择:

    • 步骤:计算个体适应度占比 → 生成轮盘 → 随机选取

    • 缺点:高适应度个体可能垄断

    • 改进:适应度缩放(如指数缩放)

  • 锦标赛选择:

    • 步骤:随机选k个个体 → 取适应度最高者(k通常为2~5)

    • 优点:平衡选择压力与多样性

  • 精英保留:

    • 强制保留当代最优个体到下一代

    • 保留比例:通常1%~5%

交叉操作策略

  • 单点交叉(二进制):

    • 步骤:随机选切割点 → 交换父代后半段

    • 示例:父代101|100和011|001 → 子代101001和011100

  • 算术交叉(实数编码):

    • 公式:子代 = α×父代1 + (1-α)×父代2(α∈[0,1])

    • 示例:父代[5,8],α=0.3 → 子代[5×0.3+8×0.7=7.1]

  • 顺序交叉(OX,排列编码):

    • 步骤:保留父代A的片段 → 按父代B顺序填充剩余位置

    • 示例:父代A[1,2|3,4|5,6],父代B[6,3,5,2,4,1] → 子代[3,4,5,2,1,6]

变异操作策略

  • 位翻转(二进制):

    • 步骤:随机选择1位取反(如1010 → 1000)

    • 变异概率:通常每个基因位独立变异(如1%)

  • 高斯变异(实数编码):

    • 公式:新值 = 原值 + N(0,σ)(σ为标准差)

    • 示例:原值3.5,σ=0.2 → 新值3.5±0.2

  • 交换变异(排列编码):

    • 步骤:随机选两个位置交换(如[1,2,3,4] → [1,4,3,2])

在变异中,精英保留,确保历史最优解不丢失

为了防止种群陷入局部最优,需设置变异概率,如变异率=0.01~0.1

通过学习遗传算法,可以改变了我们看待复杂问题的方式:

  • 不再执着于一次求最优

  • 接受不确定性与试错

  • 用“进化”应对复杂现实

3 Excel实操

项目问题

某工厂项目存在多种配置方案,不同方案在技术选择、设备等级、人员规模等方面存在差异,如何在满足工期约束的前提下,使项目总成本最小。

基因编码

我们定义 4 个决定工期和成本的决策变量:

变量含义取值范围
X1是否采用新技术0 / 1
X2设备等级1–5
X3人员配置规模10–50
X4外包比例0–1

基因编码设计

  • 一个染色体 = 一个完整方案

  • 每个基因 = 一个决策变量

也就是说:

[X1, X2, X3, X4]

就是一条染色体。

在 Excel 中:

  • 一行 = 一个方案

  • 一列 = 一个变量

个体和初始种群生成

在 Excel 中,直接使用随机函数即可:

=RANDBETWEEN(0,1)=RANDBETWEEN(1,5)=RANDBETWEEN(10,50)=RAND()

向下填充 20–50 行,就得到了第一代“随机方案”。

📌 这一步相当于“拍脑袋先想一堆方案”,但数量多、覆盖面广。

生成函数的Excel设置如下:

生成后效果如下所示:

构造适应度函数(核心中的核心)

遗传算法本身并不知道什么是“好方案”,你必须用适应度函数告诉它。

一个简单但合理的工程假设

  • 人员越多,成本越高

  • 设备等级越高,成本越高

  • 新技术可以降低部分成本

  • 超出目标工期要受到惩罚

在这里假设,成本函数构成如下,可以通过多元回归方式或者进行获得Cost = - 300X1+ 500X2 +100X3 + 200X4

工期函数Time = 220 - 15X1 - 2X_2 - 0.5X_3

设目标工期为 180 天。

 惩罚函数(关键工程思想)

=IF(Time>180,1000*(Time-180),0)

📌 注意:遗传算法通常不“硬性剔除”不可行解,而是通过惩罚,让它们自然被淘汰。

5️⃣最终适应度函数

=1/(Cost+Penalty)

适应度越大,方案越好。

我们首先在Excel中设置参数如下:

接下来,我们在通过Excel的SumproductIF函数进行设定。核心就是将生成的方案计算出其相应的成本和工期进行结合。
接下来是设置适应度函数,适应度函数为成本和惩罚函数的反函数,也就是工期和成本越大,适应性越小。
通过上述设置,即可得到一个完整的初始选择方案。

选择操作:让好方案“活下来”

我们采用锦标赛选择法(非常适合 Excel)。

步骤很简单:

  1. 随机抽取两个方案

  2. 比较它们的适应度

  3. 选择适应度更高的方案作为父代

👉 含义:不是“绝对最优才活”,而是“相对更好的更容易留下”。

在Excel中是如何操作呢,为了让大家更好地掌握原理,我们选择随机选择3次。每次选择2个个体,然后挑选其中更优秀的个体,为后面的交叉操作做好准备。

  • 第一步是生成随机数

第二步是随机选择两组的个体,其Excel设置函数为=INDEX(A6:A35,RANDBETWEEN(1,COUNTA(A6:A35))),其大一为在个体列中,根据随机数抽取一个结果出来。
第三步是将随机选择的适应性函数匹配出来,在这里选择=VLOOKUP(K6,$A$6:$I$35,9,FALSE)即可。
第四步是优选出更优秀的个体,我们根据适应性结果,去匹配合适的个体,在这里选择=INDEX($K$6:$K$7,MATCH(MAX($L$6:$L$7),$L$6:$L$7,0))进行提取。
根据计算,其结果如下所示:

在这里我们选择了3个个体作为后面杂交的基础,我试了2个个体,发现容易钝化,所以用3个个体比较合适。

交叉操作:方案的“重组”

交叉的本质是:把两个方案的优点组合在一起。

在 Excel 中可以这样做:

=IF(RAND()<0.5, 父代1基因, 父代2基因)

对每一个变量都做一次随机继承,你就得到了一个新方案。

交叉操作是非常关键的,也是遗传算法的核心,我们是如何实现交叉的呢?

  • 首先用RANDBETWEEN(1,3)生成3个随机数

  • 然后用IndexMatch在优选出来的三个父类中进行随机选择

其函数设置为:SWITCH(RANDBETWEEN(1,3),1,INDEX(A6:J35,MATCH(M6,A6:A35,0),COLUMN()),2,INDEX(A6:J35,MATCH(M10,A6:A35,0),COLUMN()),3,INDEX(A6:J35,MATCH(M14,A6:A35,0),COLUMN()))。其中column的作用是对应位置的列,目的是为了后续迭代的方便,本质是对应第几列。

变异操作:防止“思路僵化”

如果所有方案都越来越相似,算法就容易“陷入局部最优”。

所以需要小概率变异

=IF(RAND()<0.1,重新生成方案值,优选方案的值)

📌 工程直觉:偶尔“跳出常规方案”,反而可能带来更优解。

为了方便,在这里我们将交叉和变异组合在一起设置公式。

=IF(RAND()<$I$2,RANDBETWEEN(0,1),SWITCH(RANDBETWEEN(1,3),1,INDEX(A6:J35,MATCH(M6,A6:A35,0),COLUMN()),2,INDEX(A6:J35,MATCH(M10,A6:A35,0),COLUMN()),3,INDEX(A6:J35,MATCH(M14,A6:A35,0),COLUMN())))

其Excel设置效果如下:

迭代:让方案一代代进化

需要完成以下步骤:

  1. 生成新一代方案

  2. 重新计算适应度

  3. 记录每一代最优解

  4. 不断重复,直到得到满意解。

我们在Excel中如何进行重复呢?

首先根据交叉和变异结果生成新方案,然后计算成本和工期,接下来计算适应度函数,优选个体,我们将其公式自动化,就可以通过反复粘贴是实现迭代啦。左上角的1是第一次。

为了演示效果,我复制粘贴迭代了10次。

效果展示

我们将每一代的最优适应度和平均适应度提取出来,组成一个表。其中适应度函数采用max实现,平均适应度采用average实现。

其折线图效果如下:

从图中你会看到:

  • 最优成本逐步下降

  • 方案结构逐渐稳定

用 Excel 折线图画出来,“进化过程”会非常直观。

我们进行了10次迭代,如果你愿意复制的话,可以不断迭代。如果你有兴趣的话,可以关注公众号下载这个文档,反复迭代试试看,不过对于学习和小型工程,这个文档应该是够用了的。

知识点分析

  • 遗传算法的原理

  • 遗传算法的Excel纯公式实现,应该是全网唯一首发了,方便大家学习

  • 使用来的IndexMatchSwitchSUMPRODUCTRANDBETWEENVLOOKUP等经典函数,方便学习

学习视频

资源下载

课程文档下载,请关注公众号,菜单栏点击获取。

总结

本文应该是全网首个纯公式的Excel遗传网络算法版本,相比一些VBA版本,能够更好地展现进化的过程。通过基于Excel的遗传算法原理与工程应用,你会理解到遗传算法并不神秘,它本质是一套工程决策逻辑,无需编程,采用Excel公式足以承载完整算法流程,通过掌握建模思路,你以后进行应用就简单啦。用Excel进行遗传算法分析,非常酷。我是兔子家的萝卜头,请问你学会了吗?

相关推文

版权所有,商业转载请联系本人。

长按关注本公众号

问卷调查,调研您关注或感兴趣的问题,方便请填写调查问卷(长按二维码识别):

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-08 01:13:34 HTTP/2.0 GET : https://h.sjds.net/a/479399.html
  2. 运行时间 : 0.087869s [ 吞吐率:11.38req/s ] 内存消耗:4,384.69kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=28b8b2001e6c3d3e88d34011e0a7a231
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000498s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000852s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000334s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000356s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000527s ]
  6. SELECT * FROM `set` [ RunTime:0.000194s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000606s ]
  8. SELECT * FROM `article` WHERE `id` = 479399 LIMIT 1 [ RunTime:0.001236s ]
  9. UPDATE `article` SET `lasttime` = 1775582014 WHERE `id` = 479399 [ RunTime:0.005342s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000238s ]
  11. SELECT * FROM `article` WHERE `id` < 479399 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000472s ]
  12. SELECT * FROM `article` WHERE `id` > 479399 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004805s ]
  13. SELECT * FROM `article` WHERE `id` < 479399 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004215s ]
  14. SELECT * FROM `article` WHERE `id` < 479399 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000673s ]
  15. SELECT * FROM `article` WHERE `id` < 479399 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000638s ]
0.089443s