群体智能优化算法-旗鱼优化算法 (Sailfish Optimizer, SFO,含Matlab源代码)
摘要
旗鱼优化算法(Sailfish Optimizer, SFO)是一种模拟旗鱼(Sailfish)和沙丁鱼(Sardine)之间捕食关系的新型元启发式算法。通过在搜索过程中模拟旗鱼对沙丁鱼的捕食行为,以及沙丁鱼群的逃逸与防御机制,SFO 平衡了全局探索与局部开发,在处理复杂优化问题时具有良好的收敛性能。本文提供了 SFO 的核心思路并提供了完整 MATLAB 代码及详细中文注释,以帮助读者快速理解并应用该算法。
1. 算法介绍
1.1 旗鱼优化算法 (SFO) 的灵感与思路
- 旗鱼(Sailfish)
- 旗鱼是一种速度极快的海洋捕食者,能迅速发起攻击并精准捕获猎物。算法中,旗鱼对应较小规模但具有高“适应度”的个体。
- 沙丁鱼(Sardine)
- 沙丁鱼以群居方式求生,彼此密集形成群体逃离策略,以降低被捕风险。算法中,沙丁鱼则对应数量更多、且在后期可能被旗鱼“替换”以模拟被捕食的场景。
- 捕食关系与进化
- 当旗鱼捕获沙丁鱼之后,会将其从沙丁鱼种群中移除,同时旗鱼种群可能获得“更优基因”(即更新位置)。
- 此过程在搜索过程中不断迭代,使得种群在全局和局部中进行动态平衡,帮助跳出局部最优并逐渐收敛。
1.2 算法主要步骤
- 初始化:随机生成一定数量的旗鱼个体(NSF)与沙丁鱼个体(NF),计算它们在搜索空间中的适应度。
- 最优个体识别:在旗鱼与沙丁鱼种群中分别找出其当前最优解(旗鱼最优与沙丁鱼最优)。
- 更新:
- 旗鱼更新:根据最优旗鱼与最优沙丁鱼位置,引入随机扰动来移动旗鱼个体。
- 沙丁鱼更新:按照一定几率对沙丁鱼进行“方向调整”,并在后期迭代中可能被旗鱼捕获而移除。
- 捕食机制:若旗鱼个体适应度较差并随机选中,则其位置可能被“受伤沙丁鱼”所替代,同时沙丁鱼群规模减少。
- 终止条件:迭代最大次数或到达可接受收敛标准,输出全局最优解(旗鱼种群的最优)。
2. 完整 MATLAB 代码及详细中文注释
下面是 SFO(旗鱼优化算法)的完整 MATLAB 源码:
function [Fbest_SF,x_eliteSF,HisBestFit] = SFO(npop, MaxIt, lb, ub, dim, fobj)
% SFO 主函数
% 输入参数:
% npop :旗鱼数量 (Sailfish)
% MaxIt :最大迭代次数
% lb, ub :搜索空间下界与上界(可为标量或向量)
% dim :问题维度
% fobj :目标函数句柄
%
% 输出参数:
% Fbest_SF :最终找到的最优旗鱼适应度值
% x_eliteSF :对应的最优旗鱼位置
% HisBestFit :每次迭代记录的旗鱼最优适应度历史%% ------------------- 人工参数定义 ---------------------%%
NSF = npop; % Number of Sailfish (旗鱼数量)
NF = 2*npop; % Number of Sardine (沙丁鱼数量 = 旗鱼的2倍)
NF_rest = NF; % 当前剩余沙丁鱼数量% 初始化种群空间
x_SF = zeros(NSF, dim); % 旗鱼位置
x_F = zeros(NF, dim); % 沙丁鱼位置% 若 lb, ub 为标量,则扩展为向量
if length(lb)==1lb = lb*ones(1,dim);ub = ub*ones(1,dim);
end%% ------------------- 1. 种群初始化 ------------------ %%
for i = 1:dimx_SF(:,i) = lb(i) + (ub(i)-lb(i)).*rand(NSF,1); % 随机分布x_F(:,i) = lb(i) + (ub(i)-lb(i)).*rand(NF,1);
end% 计算初始适应度
for j = 1:NSFFitness_SF(j) = fobj(x_SF(j,:)); % 旗鱼适应度
end
for j = 1:NFFitness_F(j) = fobj(x_F(j,:)); % 沙丁鱼适应度
end% 找到旗鱼与沙丁鱼最优解
[Fbest_SF, eliteSF] = min(Fitness_SF); % 最优旗鱼适应度 & 下标
[Fbest_F, injuredS] = min(Fitness_F); % 最优沙丁鱼适应度 & 下标x_eliteSF = x_SF(eliteSF,:); % 最优旗鱼位置
x_injuredS= x_F(injuredS,:); % 最优沙丁鱼位置% 参数设置
PD = 2/3; % prey density (沙丁鱼密度)
ks = 0.5/MaxIt; % 用于衰减的系数%% ------------------- 2. 主循环迭代 ------------------ %%
for it = 1:MaxIt% A 用于控制收敛系数, A 随迭代线性衰减A = 4*(1 - it/MaxIt);% AP 为进一步衰减AP = A*(1 - (2*it*ks));%----------- 2.1 更新所有旗鱼的位置 --------------%for ii=1:NSFlamda = 2*rand*PD - PD; % x_SF(ii,:) = x_eliteSF - lamda*(rand*0.5*(x_eliteSF+x_injuredS)- x_SF(ii,:));% 旗鱼向(最优旗鱼 & 最优沙丁鱼)之间的位置靠近,同时加入随机扰动 lamdax_SF(ii,:) = x_eliteSF - lamda*( rand*0.5*(x_eliteSF + x_injuredS) - x_SF(ii,:) );end%----------- 2.2 更新沙丁鱼位置 --------------%% alpha=ceil(AP*NF_rest) and beta=ceil(AP*dim)alpha = ceil(AP * NF_rest); % 选取沙丁鱼群中 alpha 个beta = ceil(AP * dim); % 选取维度的数量for jj=1:NF_restif AP < 0.5% 当 AP < 0.5时sizepop_value = randperm((NF_rest-alpha+1), alpha) + alpha -1;D_value = randperm((dim-beta+1), beta)+ beta -1;for kk=1:dimif ismember(jj,sizepop_value) && ismember(kk,D_value)x_F(jj,kk) = rand*( x_eliteSF(kk) - x_F(jj,kk) + AP );endendx_F(jj,:) = rand*(x_eliteSF - x_F(jj,:) + AP);else% 当 AP >= 0.5x_F(jj,:) = rand*(x_eliteSF - x_F(jj,:) + AP);endend%----------- 2.3 边界处理 --------------%for k=1:dim% 旗鱼的越界处理Flag4ub = x_SF(:,k) > ub(k);Flag4lb = x_SF(:,k) < lb(k);x_SF(:,k) = ( x_SF(:,k).*(~(Flag4ub + Flag4lb)) ) + ub(k).*Flag4ub + lb(k).*Flag4lb;% 沙丁鱼的越界处理Flag4ub = x_F(:,k) > ub(k);Flag4lb = x_F(:,k) < lb(k);x_F(:,k) = ( x_F(:,k).*(~(Flag4ub + Flag4lb)) ) + ub(k).*Flag4ub + lb(k).*Flag4lb;end%----------- 2.4 重新计算旗鱼和沙丁鱼的适应度 --------------%for i=1:NSFFitness_SF(i) = fobj(x_SF(i,:));endfor j=1:NF_restFitness_F(j) = fobj(x_F(j,:));end% 找到当前最优旗鱼, 最优沙丁鱼[fbest_SF, eliteSF] = min(Fitness_SF);[fbest_F, injuredS] = min(Fitness_F);% 如果发现更优旗鱼则更新全局最优if fbest_SF < Fbest_SFFbest_SF = fbest_SF;x_eliteSF= x_SF(eliteSF,:);end% 如果发现更优沙丁鱼if fbest_F < Fbest_FFbest_F = fbest_F;x_injuredS = x_F(injuredS,:);end%----------- 2.5 捕食过程:将某个旗鱼替换为受伤沙丁鱼 --------------%replace_num_SF = ceil(rand * NSF); if Fitness_SF(replace_num_SF) > fbest_F% 选中的旗鱼若适应度比最优沙丁鱼差,则被沙丁鱼替换x_SF(replace_num_SF,:) = x_F(injuredS,:);Fitness_SF(replace_num_SF)= fbest_F;% 从沙丁鱼群移除该受伤(最优)沙丁鱼x_F(injuredS,:)=[];Fitness_F(injuredS)=[];NF_rest = NF_rest - 1; % 沙丁鱼减少一条end%----------- 2.6 记录历史最优适应度 --------------%HisBestFit(it) = Fbest_SF;
end
end
3. 小结
旗鱼优化算法(SFO)通过模拟旗鱼和沙丁鱼的捕食与被捕关系,在搜索过程中动态减少沙丁鱼个体,并由旗鱼种群吸收最优沙丁鱼的优势“基因”。其交互更新、越界处理以及个体替换等机制,可在高维非线性问题中展现出良好的搜索性能。本文提供了SFO的完整实现及详细注释,为读者在实际应用或学术研究中提供参考并便于进一步改进与扩展。
相关文章:
群体智能优化算法-旗鱼优化算法 (Sailfish Optimizer, SFO,含Matlab源代码)
摘要 旗鱼优化算法(Sailfish Optimizer, SFO)是一种模拟旗鱼(Sailfish)和沙丁鱼(Sardine)之间捕食关系的新型元启发式算法。通过在搜索过程中模拟旗鱼对沙丁鱼的捕食行为,以及沙丁鱼群的逃逸与…...
适合企业内训的AI工具实操培训教程(37页PPT)(文末有下载方式)
详细资料请看本解读文章的最后内容。 资料解读:适合企业内训的 AI 工具实操培训教程 在当今数字化时代,人工智能(AI)技术迅速发展,深度融入到各个领域,AIGC(人工智能生成内容)更是成…...
用 Python 进行比特币数据分析:从入门到实战
用 Python 进行比特币数据分析:从入门到实战 前言 比特币,这个“数字黄金”,已经成为全球金融市场不可忽视的存在。无论是短线交易、长期投资,还是链上数据分析,都离不开数据的支撑。而 Python,作为数据分析的瑞士军刀,为我们提供了一整套强大的工具。 本篇文章将带你…...
CT重建笔记(四)——三维重建
人如果不思考不学习,天天刷短视频,跟咸鱼有什么区别? 平行的线积分数据(X射线变换) 平行光束图像重建的理论基础是中心切片定理(二维情形见我的博客https://leslielee.blog.csdn.net/article/details/134…...
蓝桥杯刷题周计划(第三周)
目录 前言题目一题目代码题解分析 题目二题目代码题解分析 题目三题目代码题解分析 题目四题目代码题解分析 题目五题目代码题解分析 题目六题目代码题解分析 题目七题目代码题解分析 题目八题目代码题解分析 题目九题目代码题解分析 题目十题目代码题解分析 前言 大家好&#…...
Qt 控件概述 QWdiget 1.1
目录 qrc机制 qrc使用 1.在项目中创建一个 qrc 文件 2.将图片导入到qrc文件中 windowOpacity: cursor 光标 cursor类型 自定义Cursor font tooltip focusPolicy styleSheet qrc机制 之前提到使用相对路径的方法来存放资源,还有一种更好的方式…...
Type_ C和锂电池自切换电路
支持Type_ C和锂电池双供电的供电方案: Type_ C插入,PMOS关断,电池切断,后级电路由Type_ C供电; 锂电池插入,Type_ C不接的时候,PMOS导通,锂电池供电; 1、没有插入USB电…...
CTP开发爬坑指北(九)
CTP API开发中有很多需要注意的小细节,稍有不慎就会出问题,不然,轻则表现与预期不符,重则程序崩溃影响策略盈利。本系列将容易遇到的坑列出来,以供开发时参考,如有疑义之处,欢迎指正。 在国内期…...
算法之双指针
移动零 题目链接:https://leetcode.cn/problems/move-zeroes 题目的要求是不能改变原数组的非零元素的顺序,也不得再额外开个空间。 算法原理:将数组划分,数组分块。 将所有的非零元素移到左边,零元素移到右边。 方…...
关于ISP Pipeline LSC(镜头阴影校正)位置的一些想法
关于LSC校正的一些基本原理可以参考如下链接: ISP之LSC 【ISP】浅析Lens Shading ISP-镜头阴影校正(LSC) 这篇博文不打算讲具体的LSC校正原理。 主要是答复一位网友关于LSC校正在ISP Pipeline的问题。 网友问题如下: Rin_Cyn…...
x012-MSP430F249智能步进电动百叶窗_proteus_光敏电阻_步进电机_仿真
https://www.dong-blog.fun/post/1997 46 、智能步进电动百叶窗 基本要求: 用一台步进电机控制百叶窗叶片的旋转(正转/反转) 用 LED 数码管显示旋转角度 设置按键: 手动/自动切换、手动正转和手动反转,停止/启动键 用一…...
WordPress调用当前文章作者头像
制作wordpress博客主题时经常会到用,需要调用wordpress当前文章作者头像的时候,用下面的这段代码即可。 <?php if (have_posts()) : the_post(); update_post_caches($posts); ?> //wodepress.com <?php echo get_avatar( get_the_author_e…...
Mysql表的查询
一:创建一个新的数据库(companydb),并查看数据库。 二:使用该数据库,并创建表worker。 mysql> use companydb;mysql> CREATE TABLE worker(-> 部门号 INT(11) NOT NULL,-> 职工号 INT(11) NOT NULL,-> 工作时间 D…...
25.单例模式实现线程池
一、线程池的概念 1.1 线程池的介绍 线程池是一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅…...
欢乐力扣:基本计算器
文章目录 1、题目描述2、思路代码括号 1、题目描述 基本计算器。 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 2、思路 本人也不太会,…...
app.config.globalProperties
目录 一:基础使用 1、简介 2、使用 3、打印结果: 二:封装 1、创建一个.ts文件(utils/msg.ts) 2、在main.ts中全局注册 3、在页面中使用 4、打印结果 一:基础使用 1、简介 app.config.globalProperties 是 Vue 3 应用实例(app)的一个配置属性&…...
Javascript BOM,DOM 知识简介
JSON 一种数据交换格式,作为数据载体,传输数据, Json比xml 更简单,可读性更高.js的对象和Json可以相互转换. //json定义格式: var varName{"key1":value1,"key2":value2};value的数据类型为数字,字符串(在双引号中),布尔值,数组(在方括号中),对象(在花括…...
记第一次跟踪seatunnel的任务运行过程四——getJobConfigParser().parse()的动作
前绪 记第一次跟踪seatunnel的任务运行过程三——解析配置的具体方法getLogicalDag 正文 书接上文 ImmutablePair<List<Action>, Set<URL>> immutablePair getJobConfigParser().parse(null);在前一篇文章中说到getLogicDag()方法的第一行(如…...
鸿蒙APP采用WebSocket实现在线实时聊天
本文配套视频: 鸿蒙APP基于websocket实时聊天功能_哔哩哔哩_bilibili 1. 案例环境: 鸿蒙APP采用ArkTS语法编写,API14环境,DevEco Studio 5.0.7.210编辑器开发后台接口基于SpringBoot,后台前端基于Vue开发核心技术采用…...
【2步解决】phpstudy开机自启(自动启动phpstudy、mysql、nignx或apache、自动打开网址)
重启执行最终效果图: 一、场景 线下部署,需要开启自动动,并打开网址http://localhost/。 二、操作步骤 ①、新建start.txt,并修改为start.bat,使用记事本编辑,粘贴上方代码如下: echo off:…...
一周学会Flask3 Python Web开发-SQLAlchemy删除数据操作-班级模块
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 首页list.html里加上删除链接: <!DOCTYPE html> <html lang"en"> <head><meta c…...
从过拟合到强化学习:机器学习核心知识全解析
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
uniapp-x 之useAttrs只读
数据类型: useAttrs在web端拿到的是obj,app拿到的是map 是否可以修改内部元素: 否,只读 这意味着你想这样写代码将会无效 let attrsuseAttrs();console.log("attrs",attrs, attrs instanceof Map)//appif(attrs ins…...
MySQL 8 主从同步安装与配置
拟机,由 CentOS 换成了 Ubuntu,用 Xteminal 连接之后,为了方便改配置文件,把文件权限改成 666 了,结果因为这个调半天,一直以为是网络问题或者是配置问题。要注意为了防止配置文件被未经授权的用户修改&…...
【人工智能】人工智能安全(AI Security)
人工智能安全(AI Security) 是指保障人工智能系统免受各种攻击、滥用和错误操作的措施与技术。随着人工智能的广泛应用,AI的安全性问题变得越来越重要。AI安全不仅关注系统本身的稳定性与安全性,还涉及到如何确保AI的决策和行为是…...
Shp文件转坐标并导出到Excel和JSON(arcMap + excel)
思路总结: 准备: 一个shp文件 (单个面, 多个面建议使用Python代码, 自己弄太复杂) 使用arcMap工具, 将面通过 要素折点转点 工具转为点 Shp文件转坐标 (Python) 第一步: 这样就得到了一个点文件. 第二步: 得到x, y坐标 使用工具添加xy坐标 这样在属性表中就会多出两列 第…...
【数据结构】线性表简介
0.本篇问题 线性表,顺序表,链表什么关系?它们是逻辑结构还是存储结构?线性表的基本操作有哪些? 线性表是具有相同数据元素的有限序列。 表中元素有先后次序,每个元素占有相同大小的存储空间。 一、线性…...
基于FPGA的制冷型红外成像电路设计(论文+图纸)
1.总体设计 对于本次课题基于FPGA的制冷型红外成像电路设计,其主要包括两个功能,第一就是红外图像的显示,第二就是红外图像中各点温度的测量。首先对于红外图像的显示来说,一般根据红外探测器根据阵列的大小可以显示出不同的清…...
Spring Boot 集成 Lua 脚本:实现高效业务逻辑处理
1. 前言 1.1 什么是Lua Lua是一种轻量级、高性能的脚本语言,常用于游戏开发、嵌入式系统、配置文件解析等领域。Lua语法简洁,易于学习和使用,且具有强大的扩展性。 1.2 Spring Boot与Lua集成的意义 将Lua集成到Spring Boot应用中,可以实现动态配置业务逻辑、简化复杂业…...
cursor使用
引入私有文档 设置-> Features->下滑找到Docs url后边多加一个 / 可以拉取url下所有的页面(子页面,子目录),不加只拉取url当前页面 使用 选择 Docs 回车 选择 文档 直接解析链接 链接 回车 搜索引擎 web 对比git版本差异 git 选择其中一个 g…...
时间序列预测(十九)——卷积神经网络(CNN)在时间序列中的应用
有关CNN的介绍可以参考以下博文: 卷积神经网络(CNN)详细介绍及其原理详解-CSDN博客 三万字硬核详解:卷积神经网络CNN(原理详解 项目实战 经验分享)_cnn卷积神经网络-CSDN博客 CNN笔记:通俗…...
uniapp-x js 限制
1.String(str) 不允许,android模拟室报错,找不到String 2.JSON.parse不接受泛类型 export const genData function<T> (initData:T) : T {return JSON.parse<T>(JSON.stringify(initData))!;//不可以,必须明确类型 } error: …...
Matlab 基于磁流变阻尼器的半主动车辆座椅悬架模糊控制研究
1、内容简介 略 Matlab 175-基于磁流变阻尼器的半主动车辆座椅悬架模糊控制研究 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...
QQuick3D-Model的实例化
QQuick3D-Model的实例化 Model的实例化 Model类继承于Node类;如果想让一个Model(模型)可以渲染,至少需要一个Mesh(网格)和material(材质)Mesh(网格):Qt内置了矩形(Rectangle&#…...
二分算法刷题
1. 初识 总结:二分算法题的细节非常多,容易写出死循环。使用算法的条件不一定是数组有序,而是具有“二断性”;模板三种后面会讲。 朴素二分二分查找左端点二分查找右端点 2. 朴素二分 题目链接:704. 二分查找 - 力扣…...
# RAG 框架 # 一文入门 全链路RAG系统构建与优化 —— 架构、策略与实践
本文全面阐述了RAG系统从数据收集、数据清洗(包括领域专有名词处理)、智能数据分块与QA对生成,到向量化、向量数据库选择与配置,再到检索方式及重排序,直至整合输出、监控反馈和安全保障的全流程。通过这一完整方案&am…...
网络运维学习笔记(DeepSeek优化版) 017 HCIA-Datacom综合实验02
文章目录 综合实验2sw3sw4gwcore1(sw1)core2(sw2)ISP 综合实验2 sw3 vlan 2 stp mode stp int e0/0/1 port link-type trunk port trunk allow-pass vlan 2 int e0/0/2 port link-type trunk port trunk allow-pass vlan 2 int e…...
Flutter——Android与Flutter混合开发详细教程
目录 1.创建FlutterModule项目,相当于Android项目里面的module库;2.或者编辑aar引用3.创建Android原生项目3.直接运行跑起来 1.创建FlutterModule项目,相当于Android项目里面的module库; 2.或者编辑aar引用 执行 flutter build a…...
java手机号、邮箱、日期正则表达式
Java正则核心API Java中用 java.util.regex 包的两个类: Pattern:编译正则表达式Matcher:执行匹配操作 1. 验证手机号 String regex "1[3-9]\\d{9}"; boolean isValid "18812345678".matches(regex); // true2. 提取…...
0x04.若依框架微服务开发(含AI模块运行)
微服务本地开发硬件资源有限,所以会将核心微服务组件先部署在服务器上比如:mysql,redis,注册中心Nacos,网关Gateway,认证中心Auth和upms模块以及低代码生成模块。 mysql、redis部署前篇已讲,这…...
数据库管理-第302期 国产类RAC架构数据库网络连接方式(20250314)
数据库管理302期 2025-03-14 数据库管理-第302期 国产类RAC架构数据库网络连接方式(20250314)1 Oracle RAC2 DMDSC3 YAC4 KES RAC总结 数据库管理-第302期 国产类RAC架构数据库网络连接方式(20250314) 作者:胖头鱼的鱼…...
ctf web入门知识合集
文章目录 01做题思路02信息泄露及利用robots.txt.git文件泄露dirsearch ctfshow做题记录信息搜集web1web2web3web4web5web6web7web8SVN泄露与 Git泄露的区别web9web10 php的基础概念php的基础语法1. PHP 基本语法结构2. PHP 变量3.输出数据4.数组5.超全局变量6.文件操作 php的命…...
CSS3-流星雨
1. 绘制标签 <div class"container"><span></span> </div>2. 设置div背景 在百度上搜索一幅星空的图片 <style>* {/* 初始化 */margin: 0;padding: 0;}body {/* 高度100% */height: 100vh;/* 溢出隐藏 */overflow: hidden;}.contai…...
【leetcode hot 100 199】二叉树的右视图
解法一:层级遍历,右侧看到的节点就是每一层最后一个元素 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }…...
Unity进阶课程【二】Mask 组件的使用 UI遮罩效果以及透明抠图效果
Unity组件讲解 Mask 时隔多年,今天咱们继续进阶课程,这几年变化很大,但是一直还是从事Unity行业,行业虽难,依旧坚持,以后会养成习惯,定期更新,希望小伙伴们监督,有想学习…...
本地部署Jina AI Reader:用Docker打造你的智能解析引擎
本地部署Jina AI Reader:用Docker打造你的智能解析引擎 🌟 引言:为什么需要本地部署?📌 场景应用图谱🔧 部署指南(Linux环境)1. 环境准备2. Docker部署3. 验证服务状态 🚀…...
【MyBatis Plus 逻辑删除详解】
文章目录 MyBatis Plus 逻辑删除详解前言什么是逻辑删除?MyBatis Plus 中的逻辑删除1. 添加逻辑删除字段2. 实体类的配置3. 配置 MyBatis Plus4. 使用逻辑删除5. 查询逻辑删除的记录 MyBatis Plus 逻辑删除详解 前言 MyBatis Plus 是一个强大的持久化框架…...
Unity--GPT-SoVITS接入、处理GPTAPI的SSE响应流
GPT-SoVITS GPT-SoVITS- v2(v3也可以,两者对模型文件具有兼容) 点击后 会进入新的游览器网页 ----- 看了一圈,发现主要问题集中在模型的训练很需要CPU,也就是模型的制作上,问题很多,如果有现有…...
一次Linux下 .net 调试经历
背景: Xt160Api, 之前在windows下用.net调用,没有任何问题。 但是移植到Linux去后,.net程序 调用 init(config_path) 总是报错 /root/test 找不到 traderApi.ini (/root/test 是程序目录) 然后退出程序 解决过程: 于是考虑是不是参数传错了&…...
Manus 技术探索 - 使用 gVisor 在沙箱内运行 Ubuntu 容器并通过远程浏览器访问
在容器化技术中,gVisor 为运行不信任的工作负载提供了额外的安全隔离。本文将详细介绍如何利用 gVisor 运行带 GUI 的 Ubuntu 容器,并通过 VNC/NoVNC 实现远程浏览器访问,从而轻松控制容器内的桌面环境。 1. 安装 gVisor 如果你还没有安装 …...