智能优化算法:协作搜索算法-附代码

news2024/10/5 18:24:51

智能优化算法:协作搜索算法

摘要:协作搜索算法( Cooperation search algorithm ,CSA)是 Zhong-kai Feng等 于 2021 年提出的一种新型元启发式优化算法 。 该算法受现代企业团队协作行为的启发,具有寻优能力强,收敛速度快的特点。

1.协作搜索算法

协作搜索算法主要包括4个阶段:团队建立,团队沟通,反思学习,内部竞争。

1.1 团队建立

在这一阶段,团队中的所有员工都是通过式(1)随机生成的。在评估所有解决方案的性能后,将从初始群中选择 M ∈ [ 1 , I ] \mathrm{M} \in[1, \mathrm{I}] M[1,I] 个领导者,以 形成外部精英集。
x i , j k = ϕ ( x ‾ j , x ‾ j ) , i ∈ [ 1 , I ] , j ∈ [ 1 ,   J ] , k = 1 (1) \mathrm{x}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}=\phi\left(\underline{\mathrm{x}}_{\mathrm{j}}, \overline{\mathrm{x}}_{\mathrm{j}}\right), \mathrm{i} \in[1, \mathrm{I}], \mathrm{j} \in[1, \mathrm{~J}], \mathrm{k}=1 \tag{1} xi,jk=ϕ(xj,xj),i[1,I],j[1, J],k=1(1)
其中, I是当前种群的解数量; x i , j k \mathrm{x}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}} xi,jk 是第 k \mathrm{k} k 次迭代中第 i \mathrm{i} i 个个体的第 j \mathrm{j} j 个位置; ϕ ( L , U ) \phi(\mathrm{L}, \mathrm{U}) ϕ(L,U) 是在 [ L , U ] [\mathrm{L}, \mathrm{U}] [L,U] 范围内 生成均匀分布的随机数的函数。

1.2 团队沟通

每位员工都可以通过与董事长、董事会和监事会的领导交流信息来获得新的信息。如式(2)所示,团队 沟通过程包括三个部分: 董事长的知识 A A A 、董事会的集体知识 B \mathrm{B} B 和监事会的集体知识 C \mathrm{C} C 。董事长从董 事会中随机选出,模批轮换饥制,而董事会和监事会的所有成员在计算B和 C \mathrm{C} C 时被赋予相同的职位。
u i , j k + 1 = x i , j k + A i , j k + B i , j k + C i , j k , i ∈ [ 1 , I ] , j ∈ [ 1 ,   J ] , k ∈ [ 1 ,   K ] (2) \mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}=\mathrm{x}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}+\mathrm{A}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}+\mathrm{B}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}+\mathrm{C}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}, \mathrm{i} \in[1, \mathrm{I}], \mathrm{j} \in[1, \mathrm{~J}], \mathrm{k} \in[1, \mathrm{~K}] \tag{2} ui,jk+1=xi,jk+Ai,jk+Bi,jk+Ci,jk,i[1,I],j[1, J],k[1, K](2)

A i , j k = log ⁡ ( 1 / ϕ ( 0 , 1 ) ) ⋅ ( g B e s t ind  , j k − x i , j k ) (3) \mathrm{A}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}=\log (1 / \phi(0,1)) \cdot\left(\mathrm{gBest}_{\text {ind }, \mathrm{j}}^{\mathrm{k}}-\mathrm{x}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}\right) \tag{3} Ai,jk=log(1/ϕ(0,1))(gBestind ,jkxi,jk)(3)

B i , j k = α ⋅ ϕ ( 0 , 1 ) ⋅ [ 1 M ∑ m = 1 M g B e s t m , j k − x i , j k ] (4) \mathrm{B}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}=\alpha \cdot \phi(0,1) \cdot\left[\frac{1}{\mathrm{M}} \sum_{\mathrm{m}=1}^{\mathrm{M}} \mathrm{gBest}_{\mathrm{m}, \mathrm{j}}^{\mathrm{k}}-\mathrm{x}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}\right] \tag{4} Bi,jk=αϕ(0,1)[M1m=1MgBestm,jkxi,jk](4)

C i , j k = β ⋅ ϕ ( 0 , 1 ) ⋅ [ 1 I ∑ i = 1 I p B e s t i , j k − x i , j k ] (5) \mathrm{C}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}=\beta \cdot \phi(0,1) \cdot\left[\frac{1}{\mathrm{I}} \sum_{\mathrm{i}=1}^{\mathrm{I}} \mathrm{pBest}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}-\mathrm{x}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}}\right] \tag{5} Ci,jk=βϕ(0,1)[I1i=1IpBesti,jkxi,jk](5)

其中, u i , j k + 1 \mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1} ui,jk+1 是第 k + 1 \mathrm{k}+1 k+1 次迭代中第 i \mathrm{i} i 个个体的第 j \mathrm{j} j 个值; p B e s t i , j k \mathrm{pBest}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}} pBesti,jk 是第 k \mathrm{k} k 代第 i \mathrm{i} i 个个体最优解的第 j \mathrm{j} j 个值; 择的索引; A i , j k \mathrm{A}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}} Ai,jk 表示从外部精英集中随机选择的主席获得的知识; B i , j k \mathrm{B}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}} Bi,jk C i , j k \mathrm{C}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}} Ci,jk 分别是从迄今为止发现的 M \mathrm{M} M 个全局最优解和 I \mathrm{I} I 个个体最优解中获得的平均知识; α \alpha α β \beta β 是调整 B i , j k \mathrm{B}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}} Bi,jk C i , j k \mathrm{C}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}} Ci,jk 影响程度的学习系数。

1.3 反思学习

除了向领导者学习外,员工还可以通过总结自己在相反方向上的经验来获得新知识,具体表达如下:
v i , j k + 1 = { r i , j k + 1  if  ( u i , j k + 1 ≥ c j ) p i , j k + 1  if  ( u i , j k + 1 < c j ) , i ∈ [ 1 , I ] , j ∈ [ 1 ,   J ] , k ∈ [ 1 ,   K ] (6) \mathrm{v}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}=\left\{\begin{array}{ll} \mathrm{r}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1} & \text { if }\left(\mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1} \geq \mathrm{c}_{\mathrm{j}}\right) \\ \mathrm{p}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1} & \text { if }\left(\mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}<\mathrm{c}_{\mathrm{j}}\right) \end{array}, \mathrm{i} \in[1, \mathrm{I}], \mathrm{j} \in[1, \mathrm{~J}], \mathrm{k} \in[1, \mathrm{~K}]\right. \tag{6} vi,jk+1= ri,jk+1pi,jk+1 if (ui,jk+1cj) if (ui,jk+1<cj),i[1,I],j[1, J],k[1, K](6)

r i , j k + 1 = { ϕ ( x ‾ j + x ‾ j − u i , j k + 1 , c j )  if  ( ∣ u i , j k + 1 − c j ∣ < ϕ ( 0 , 1 ) ⋅ ∣ x ‾ j − x ‾ j ∣ ) ϕ ( x ‾ j , x ‾ j + x ‾ j − u i , j k + 1 )  otherwise  (7) \mathrm{r}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}= \begin{cases}\phi\left(\overline{\mathrm{x}}_{\mathrm{j}}+\underline{x}_{\mathrm{j}}-\mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}, \mathrm{c}_{\mathrm{j}}\right) & \text { if }\left(\left|\mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}-\mathrm{c}_{\mathrm{j}}\right|<\phi(0,1) \cdot\left|\overline{\mathrm{x}}_{\mathrm{j}}-\underline{\mathrm{x}}_{\mathrm{j}}\right|\right) \\ \phi\left(\underline{x}_{\mathrm{j}}, \overline{\mathrm{x}}_{\mathrm{j}}+\underline{\mathrm{x}}_{\mathrm{j}}-\mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}\right) & \text { otherwise }\end{cases}\tag{7} ri,jk+1= ϕ(xj+xjui,jk+1,cj)ϕ(xj,xj+xjui,jk+1) if ( ui,jk+1cj <ϕ(0,1) xjxj ) otherwise (7)

p i , j k + 1 = { ϕ ( c j , x ‾ j + x ‾ j − u i , j k + 1 )  if  ( ∣ u i , j k + 1 − c j ∣ < ϕ ( 0 , 1 ) ⋅ ∣ x ‾ j − x ‾ j ∣ ) ϕ ( x ‾ j + x ‾ j − u i , j k + 1 , x ‾ j )  otherwise  (8) \mathrm{p}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}= \begin{cases}\phi\left(\mathrm{c}_{\mathrm{j}}, \overline{\mathrm{x}}_{\mathrm{j}}+\underline{x}_{\mathrm{j}}-\mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}\right) & \text { if }\left(\left|\mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}-\mathrm{c}_{\mathrm{j}}\right|<\phi(0,1) \cdot\left|\overline{\mathrm{x}}_{\mathrm{j}}-\underline{\mathrm{x}}_{\mathrm{j}}\right|\right) \\ \phi\left(\overline{\mathrm{x}}_{\mathrm{j}}+\underline{x}_{\mathrm{j}}-\mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}, \overline{\mathrm{x}}_{\mathrm{j}}\right) & \text { otherwise }\end{cases}\tag{8} pi,jk+1= ϕ(cj,xj+xjui,jk+1)ϕ(xj+xjui,jk+1,xj) if ( ui,jk+1cj <ϕ(0,1) xjxj ) otherwise (8)

c j = ( x ‾ j + x j ) ⋅ 0.5 (9) \mathrm{c}_{\mathrm{j}}=\left(\overline{\mathrm{x}}_{\mathrm{j}}+\mathrm{x}_{\mathrm{j}}\right) \cdot 0.5 \tag{9} cj=(xj+xj)0.5(9)

1.4 内部竞争

团队通过确保所有表现较好的员工都能得到保护,逐步提升其市场竞争力,具体表示如下:
x i , j k + 1 = { u i , j k + 1  if  ( F ( u i , j k + 1 ) ≤ F ( v i , j k + 1 ) ) v i , j k + 1  if  ( F ( u i , j k + 1 ) > F ( v i , j k + 1 ) ) , i ∈ [ 1 , I ] , j ∈ [ 1 ,   J ] , k ∈ [ 1 ,   K ] \mathrm{x}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}=\left\{\begin{array}{ll} \mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1} & \text { if }\left(\mathrm{F}\left(\mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}\right) \leq \mathrm{F}\left(\mathrm{v}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}\right)\right) \\ \mathrm{v}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1} & \text { if }\left(\mathrm{F}\left(\mathrm{u}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}\right)>\mathrm{F}\left(\mathrm{v}_{\mathrm{i}, \mathrm{j}}^{\mathrm{k}+1}\right)\right) \end{array}, \mathrm{i} \in[1, \mathrm{I}], \mathrm{j} \in[1, \mathrm{~J}], \mathrm{k} \in[1, \mathrm{~K}]\right. xi,jk+1= ui,jk+1vi,jk+1 if (F(ui,jk+1)F(vi,jk+1)) if (F(ui,jk+1)>F(vi,jk+1)),i[1,I],j[1, J],k[1, K]
其中, F ( x ) \mathrm{F}(\mathrm{x}) F(x) 是解 x \mathrm{x} x 的适应度值。为了有效地多重物理约束,首先通过式(11)将 x \mathrm{x} x 中的所有变量修改为 可行区域,然后使用式(12)中的征罚函数方法,通过将约束违反值合并到目标值 F ( x ) \mathrm{F}(\mathrm{x}) F(x) 中来获得适应度 值 F ( x ) \mathrm{F}(\mathrm{x}) F(x) 。然后,对于可行解,充分满足所有约束,使适应度值等于原始目标值;对于不可行解,约 束冲突值变为正值,因此适应度值大于目标值。这样,就可以将种群引导到尽可能多的可行搜索区域。
x j = max ⁡ { min ⁡ { x ‾ j , x j } , x ‾ j } (11) \mathrm{x}_{\mathrm{j}}=\max \left\{\min \left\{\overline{\mathrm{x}}_{\mathrm{j}}, \mathrm{x}_{\mathrm{j}}\right\}, \underline{x}_{\mathrm{j}}\right\} \tag{11} xj=max{min{xj,xj},xj}(11)

F ( x ) = f ( x ) + ∑ e = 1 E c e 1 ⋅ max ⁡ { g e ( x ) , 0 } + ∑ f = 1 F c f 2 ⋅ ∣ h f ( x ) ∣ (12) \mathrm{F}(\mathrm{x})=\mathrm{f}(\mathrm{x})+\sum_{\mathrm{e}=1}^{\mathrm{E}} \mathrm{c}_{\mathrm{e}}^1 \cdot \max \left\{\mathrm{g}_{\mathrm{e}}(\mathrm{x}), 0\right\}+\sum_{\mathrm{f}=1}^{\mathrm{F}} \mathrm{c}_{\mathrm{f}}^2 \cdot\left|\mathrm{h}_{\mathrm{f}}(\mathrm{x})\right| \tag{12} F(x)=f(x)+e=1Ece1max{ge(x),0}+f=1Fcf2hf(x)(12)

其中, x j x_j xj 是解 x x x 中的第 j j j 个值; c e 1 c_e^1 ce1 是第 e \mathrm{e} e 个不等式约束的惩罚系数; c f 2 c_{\mathrm{f}}^2 cf2 是第 f \mathrm{f} f 个不等式约束的惩罚系数。

在这里插入图片描述

2.实验结果

在这里插入图片描述

3.参考文献

[1] Zhong-kai Feng, Wen-jing Niu, Shuai Liu. Cooperation search algorithm: A novel metaheuristic evolutionary intelligence algorithm for numerical optimization and engineering optimization problems[J]. Applied Soft Computing Journal, 2021, 98: 106734.

4.Matlab

5.Python

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/126265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Seata-AT模式数据源代理-JDBC中的关键知识点

背景 Seata 对业务无侵入是通过数据源代理实现的&#xff0c;从下图中可看出&#xff0c;数据源代理的实现涉及到 DataSource、Connection 以及 Statement&#xff0c;这几个关键知识属于 JDBC 的范畴&#xff0c;所以本篇从 JDBC 的视角对他们进行介绍。 一、JDBC 概述 JDBC…

【算法】面试题 - 回溯算法解题套路框架

回溯算法解题套路框架前言回溯算法的框架排列&#xff08;元素无重不可复选&#xff09;46. 全排列解析子集&#xff08;元素无重不可复选&#xff09;78. 子集解析组合&#xff08;元素无重不可复选&#xff09;77. 组合解析子集/组合&#xff08;元素可重不可复选&#xff09…

免费PDF转Word?有这几个网站就够了

如果您想使用 Word 文档&#xff0c;您可能需要将PDF 转换为 Word&#xff0c;以便您可以随意使用该文档。将 PDF 转换为 Word 的过程需要一个好的 PDF 转换器。在本文中&#xff0c;您将探索可用的 5个免费转换器&#xff0c;其中包括 奇客PDF 和PDF2Go。 最好的 6 个 PDF 转 …

【unity笔记】图解Vector3.SignedAngle()方法的返回值

首先看一下官方文档的说明&#xff1a; public static float SignedAngle (Vector3 from, Vector3 to, Vector3 axis); from测量角度差的源向量。to测量角度差的目标向量。axis一个向量&#xff0c;其他向量将绕其旋转。返回 from 与 to 之间的有符号角度&#xff08;以度为单…

CodeQL 源代码漏洞扫描

目录 1、下载配置 codeql 1.1 配置 codeql 1.2 配置 maven 2、测试 codeql 漏洞检测 2.1 构建 codeql 查询数据库 2.2 漏洞检测 测试环境&#xff1a;centos7 jdk11 maven 1、下载配置 codeql 1.1 配置 codeql 下载安装 codeql-cli: https://github.com/github/code…

大数据系列——什么是Flink?Flink有什么用途?

目录 一、基本概念 批与流 数据可以作为无界流或有界流处理 二、什么是Flink&#xff1f; 三、Flink有什么用途&#xff1f; 四、适用场景 五、flink事件驱动 六、flink拥有分层API flink sql 七、fllink企业级使用 一、基本概念 批与流 批处理的特点是有界、持久、大…

被误认为是外国人开发的4款软件,功能强大到离谱,且用且珍惜

国外的月亮不一定比国内圆&#xff0c;随着国内互联网飞速发展&#xff0c;国内研发出许多实用又良心的软件&#xff0c;由于偏见&#xff0c;功能强大的它们却被误认为是外国佬研发的。 1、Foxit PDF用系统自带的Adobe实在难用&#xff0c;Foxit这款PDF阅读器实在太强大&#…

unity使用RenderTexture可以渲染粒子特效

一&#xff0c;使用UIRawImage,创建材质球&#xff0c;把Shader给材质球&#xff0c;放到RawImage的Material上&#xff0c; // Upgrade NOTE: replaced mul(UNITY_MATRIX_MVP,*) with UnityObjectToClipPos(*)Shader "UI/Default No-Alpha" {Properties{[PerRende…

基于文本和图像的网络舆情分析方法研究

基于文本和图像的网络舆情分析方法研究 一、舆情分析技术 &#xff08;1&#xff09;舆情数据采集与提取技术&#xff1b; &#xff08;2&#xff09;自动文摘技术&#xff1b; &#xff08;3&#xff09;事件发现与追踪技术&#xff1b; &#xff08;4&#xff09;舆情情感分…

【虚幻引擎UE】UE5 模型描边的三个方法

一、后期处理法 1、创建描边材质&#xff0c;方法很多种&#xff0c;主要有设置深度、法线描边等 可以参考现有文章制作或直接下载材质资源使用。 参考文章&#xff1a; 1、【UE4】几种后处理描边的方法&#xff0c;效果及效率 2、UE4之物体描边 3、【UE4_001】后期处理轮廓…

第002课 - 项目整体效果展示

文章目录 基础篇高级篇流量控制:alibaba sentinel注册中心链路追踪高可用集群篇CICD这个章节是进行项目效果的演示。 基础篇 第一个就是基础篇。 这是我们的后台管理系统。 围绕电商的管理系统做一个整套的增删改查逻辑。 这个商品系统都会教给大家来编写的。 这个是使用前…

网站报错:PHP Fatal error: Allowed memory size of 134217728 bytes exhausted的处理方法

原因分析 内存已耗尽&#xff0c;这关系到PHP的memory_limit的设置问题&#xff0c;根据自己的需要及参考本机的内存大小修改php内存限制。 解决方案 1、修改php.ini &#xff08;改配置&#xff09; memory_limit 128 这种方法需要重启服务器&#xff0c;很显然&#xff0c…

向Linux内核添加驱动的步骤详解

1、获取驱动源码 (1)驱动源码一般都是从设备厂商处获取&#xff1b; (2)设备厂商给的驱动源码大体上是没有问题的&#xff0c;能加载但是效果不一定好&#xff0c;需要根据自己的板子进行适配&#xff1b; 2、驱动在内核中的两种形式 (1)直接编译进内核&#xff1a;内核启动时自…

ubuntu下编译opencv

目录 1. 下载opencv和opencv-contrib 2. 安装依赖 3. cmake 4. make 5. 安装 6. 配置opencv的路径 7. 测试 后续 1. 下载opencv和opencv-contrib https://github.com/opencv/opencv/archive/refs/tags/4.6.0.zip https://github.com/opencv/opencv_contrib/archive/re…

python两种方式实现读写航拍影像JPG图片的GPS坐标

写入坐标效果 读取坐标效果 1、写入JPG坐标数据 1.1、准备数据 gps坐标文件 图片 可以查看它的属性中目前并没有坐标信息 1.2、执行脚本 第一种方法(piexif) writegps2jpg_piexif.py import csv,os import

KubeEdge云原生边缘计算公开课04——云原生边缘计算学术研究现状与趋势

KubeEdge云原生边缘计算公开课04——云原生边缘计算学术研究现状与趋势Ding Yin & 徐飞&#xff1a;KubeEdge架构与技术解读1. 边缘计算的形态定义与关键挑战2. 云原生边缘计算的优势与挑战3. KubeEdge核心架构4. KubeEdge关键技术5. KubeEdge社区介绍Ding Yin & 徐飞&…

JavaSE笔记——流式编程

文章目录前言一、从外部迭代到内部迭代二、实现机制三、常用的流操作1.collect(toList())2.map3.filter4.flatMap5.max和min6.reduce四、多次调用流操作五、高阶函数总结前言 流是一系列与特定存储机制无关的元素——实际上&#xff0c;流并没有 “存储” 之说。利用流&#x…

火山引擎 DataTester:如何做 A/B 实验的假设检验作者:字节跳动数据平台

A/B 实验的核心统计学理论是&#xff08;双样本&#xff09;假设检验&#xff0c;是用来判断样本与样本、样本与总体的差异是由 抽样误差 引起还是 本质差别 造成的一种统计推断方法。 假设检验&#xff0c;顾名思义&#xff0c;是一种对自己做出的假设进行数据验证的过程。通…

STM32CUBEMX_SDIO和FATFS_读写SD卡

STM32CUBEMX_SDIO和FATFS_读写SD卡 简述 FATFS是一个完全免费开源&#xff0c;专为小型嵌入式系统设计的FAT&#xff08;File Allocation Table&#xff09;文件系统模块。FATFS的编写遵循ANSI C&#xff0c;并且完全与磁盘I/O层分开。支持FAT12/FAT16/FAT32&#xff0c;支持多…

Django入门

Django 中文官网&#xff1a;初识 Django | Django 文档 | Django (djangoproject.com) Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。 使用 Django&#xff0c;只要很少的代码&#xff0c;Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部…