Tent混沌人工蜂群与粒子群混合算法遇到问题,具体问题及解决方案如文。

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

问题描述

  Tent混沌人工蜂群与粒子群混合算法遇到问题

遇到的问题1:

  在运行主程序一次后,得出的TCPSO中的粒子和适应度值出了问题,粒子每个维度都是上下限,并且得到的适应度值和文章最后得到的适应度值0相差比较大,修改了很多次速度,没什么用,如下图(图中右边是我设置的TCPSO的初始化参数)

  但是当我把维度上下限变大之后,粒子的每个维度也随之增大近乎无穷大,而适应度值和文章要求的0越来越接近,如下图(图中右边是我设置的TCPSO的初始化参数)

  而且每次都是在运行完主程序的第一代,也就是TCPSO运行max_iter后,得出了最佳粒子和适应度值,之后每次都是这个适应度值,不会改变。
遇到的问题2:

我对文章以及文章的结论不太理解

1、我目前用的是Sphere当作了目标函数值,一般来说应该粒子的取值为0,并且目标函数值为0为最佳,但我的适应度函数为1/(1+目标函数值),那不就导致了最后的最佳适应度值应该为1?
2.但是问题是我的TCPSO中粒子却确实越来越大,这导致了我的目标函数值越来越大,而我的适应度函数为1/(1+目标函数值)趋向于为0,但还是和0不相等。

以下是我提供的主程序、目标函数程序、适应度程序、TCPSO程序、以及文章结果呈现

程序如下matlab

clc;clear;% 初始化种群M = 80;         % 种群规模D = 10;         % 维度X_min = -10;    % 最小值X_max = 10;     % 最大值max_iter = 100; % 最大迭代次数% 初始化Tent混沌序列tent_sequences = generate_tent_population(M, D);% 将混沌序列映射至解空间positions = X_min + (X_max - X_min) * tent_sequences;% 反向学习策略K = rand(size(positions));             % 生成随机数KOP = K .* (X_min - X_max) - positions; % 计算反向解% 选择适应度较好的前N个解作为初始种群O = floor(M / 2);fitness_values = calculate_fitness([positions; OP]);   % 计算所有解的适应度[~, sorted_indices] = sort(fitness_values, 'descend'); % 排序best_Indices = sorted_indices(1:O);New_group = [positions; OP];initial_population = New_group(best_Indices, :);       % 生成初始种群 % 确定A群和P群的规模population_size_A = floor(O / 2);population_size_P = O - population_size_A;  % 将初始种群分为A群和P群index = randperm(O);                       % 随机排列种群个体的索引index_A = index(1:population_size_A);      % A群的个体索引index_P = index(population_size_A+1:end);  % B群的个体索引% 使用索引划分种群population_A = initial_population(index_A, :);population_P = initial_population(index_P, :);% 对population_A和population_P进行规范化population_A = max(min(population_A, X_max), X_min);population_P = max(min(population_P, X_max), X_min);% 输出A群和P群disp('Population A:');disp(population_A);disp('Population P:');disp(population_P);% 初始化最优解A_best = initial_population(1, :);    % TCABC算法的最优解,选取初始种群中的一个解G_best = initial_population(1, :);    % TCPSO算法的全局最优解,选取初始种群中的一个解F_A_best = calculate_fitness(A_best); % TCABC算法的最优解的适应度值F_G_best = calculate_fitness(G_best); % TCPSO算法的全局最优解的适应度值% 主循环for iter = 1:max_iter% 调用TCABC算法[A_best, F_A_best] = TCABC(population_A,A_best);if iter == 1isFirstGen = true;elseisFirstGen = false;end% 调用TCPSO算法[G_best, F_G_best] = TCPSO(population_P,G_best,isFirstGen);% 使用重组算子生成新的最优解Best = recombination_operator(A_best, G_best, F_A_best, F_G_best);% 更新TCABC和TCPSO的最优解if iter < max_iterA_best = Best;G_best = Best;end% 输出当前迭代的最优解fprintf('Iteration %d: Best Fitness = %f\n', iter, min(F_A_best, F_G_best));end% 输出最终的最优解及其适应度值if F_A_best < F_G_bestReal_Best = A_best;Real_F_Best = F_A_best;elseReal_Best = G_best;Real_F_Best = F_G_best;enddisp('Final Best Solution:');disp(Real_Best);disp('Final Best Fitness:');disp(Real_F_Best);function initial_population = generate_tent_population(M, D)% M: 种群规模% D: 维度% 初始化种群initial_population = zeros(M, D);% 生成初始随机种群在 [0, 1] 间的随机数for i = 1:Mfor d = 1:Dinitial_population(i, d) = rand();endend% 进行 Tent 混沌映射迭代num_iterations = 1; % 这里只需迭代一次,根据需要调整for t = 1:num_iterationsfor i = 1:Mfor d = 1:DZ_k_d_t = initial_population(i, d);if Z_k_d_t < 0.7Z_k_d_t1 = Z_k_d_t / 0.7;elseZ_k_d_t1 = (10 * (1 - Z_k_d_t)) / 3;endinitial_population(i, d) = Z_k_d_t1;endendend
endfunction Best = recombination_operator(A_best, G_best, F_A_best, F_G_best)% 获取维数D = length(A_best);% 计算选择概率 P_bestP_best = F_A_best / (F_G_best + F_A_best);% 初始化最优解 BestBest = zeros(1, D);% 为每一维产生随机数,并选择对应的最优值for d = 1:Dr = rand();if r <= P_bestBest(d) = A_best(d);elseBest(d) = G_best(d);endend
endfunction f_val = objective_function(individual)% 示例目标函数:Sphere函数f_val = sum(individual .^ 2);
endfunction fitness = calculate_fitness(population)% 计算适应度值num_individuals = size(population, 1);fitness = zeros(num_individuals, 1);for i = 1:num_individualsf_val = objective_function(population(i, :));if f_val >= 0fitness(i) = 1 / (1 + f_val);elsefitness(i) = 1 + abs(f_val);endend
endfunction [A_best, F_A_best] = TCABC(population_A,Best)% Step1 : 初始化参数NP = 50;                    % 蜂群大小foodnumber = NP/2;          % 蜜源数量  D = 10;                     % 解的维度X_min = -10 * ones(1, D);   % 解空间最小值X_max = 10 * ones(1, D);    % 解空间最大值Limit = 100;                % 同一蜜源被限制次数max_iter = 10;              % 最大迭代次数iter = 0;                   % 初始化迭代次数% Step2 : 把通过混沌反向学习得出的种群中的A种群当作初始蜜源位置Initial_Foods = population_A;          % Step3 : 计算适应度,筛选出初始蜜源Initial_Fitness = calculate_fitness(Initial_Foods);                    %计算适应度值% 筛选出初始蜜源位置O = floor(foodnumber / 2);                                  % 选择前O个蜜源位置[~, sorted_Indices] = sort(Initial_Fitness, 'descend');best_Indices = sorted_Indices(1:O);Initial_Foods = Initial_Foods(best_Indices, :);   % 筛选出最佳蜜源位置,即初始蜜源位置Initial_Fitness = Initial_Fitness(best_Indices);                    % 筛选出最佳蜜源位置的适应度值,即最佳的适应度值trial = zeros(O, 1);                                        % 初始化蜜源位置的试验计数% 预设值F_A_best = -Inf;  A_best = zeros(O, 1);% 开始迭代
while iter < max_iteriter = iter + 1;% Step4、5 : 采蜜蜂阶段并更新个体for i = 1:O% 参数随机可变Param1Change = fix(rand * D) + 1;% 随机选择一个参数进行变化,生成一个介于 1 和 D 之间的整数,表示选择哪个维度进行变化。neighbour = fix(rand * O) + 1;% 随机选择另一个食物源作为邻居,生成一个介于 1 和 foodnumber 之间的整数,表示选择哪个邻居食物源。while neighbour == ineighbour = fix(rand * O) + 1;  % 确保 neighbour 不等于 i。endsol = Initial_Foods(i, :);          % 选择上一代中的第 i 个个体sol(Param1Change) = Initial_Foods(i, Param1Change) + (Initial_Foods(i, Param1Change) - Initial_Foods(neighbour, Param1Change)) * (rand - 0.5) * 2;% 使用当前解 i 和随机选择的邻居解之间的差值进行更新,(rand - 0.5) * 2 生成一个在 [-1, 1] 之间的随机数。% 个体取值范围约束ind = find(sol < X_min);  % 最小值约束sol(ind) = X_min(ind);ind = find(sol > X_max);  % 最大值约束sol(ind) = X_max(ind);% 估计新的目标函数值和适应度值FitnessSol = calculate_fitness(sol);% 更新最优个体值if FitnessSol > Initial_Fitness(i)            % 如果新产生的个体值适应度值越大,则表明函数值越小,则个体最优Initial_Foods(i, :) = sol;Initial_Fitness(i) = FitnessSol;trial(i) = 0;elsetrial(i) = trial(i) + 1;                  % 如果解 i 不能改善,增加其试验计数,即拖尾数+1endend% Step6、7 : 观望蜂阶段并更新个体,记录最佳位置与适应度值for i = 1:O% 锦标赛选择策略,初始化得分数组scores = zeros(O, 1);% 随机选取两个个体进行适应度比较,并对适应度较大的个体加1分for j = 1:Ocandidates = randperm(O, 2); % 随机选择两个个体if Initial_Fitness(candidates(1)) > Initial_Fitness(candidates(2))scores(candidates(1)) = scores(candidates(1)) + 1;elsescores(candidates(2)) = scores(candidates(2)) + 1;endend% 确保至少每个个体都参与一轮for j = 1:Oif scores(j) == 0% 若该个体未得分,则进行一次自我比较,确保至少参与一轮scores(j) = scores(j) + 1;endend% 计算每个蜜源被选择的概率probabilities = scores / sum(scores);% 按概率选择一个蜜源selected = find(rand <= cumsum(probabilities), 1);Param2Change = fix(rand * D) + 1;  % 随机选择一个参数进行变化if iter == 1neighbour_index = fix(rand * O) + 1;while neighbour_index == selectedneighbour_index = fix(rand * O) + 1;endneighbour = Initial_Foods(neighbour_index, :); % 确保 neighbour 是一个向量elseneighbour = Best; % 使用重组算子产生的最佳解 Best 作为邻居endsol = Initial_Foods(selected, :);sol(Param2Change) = Initial_Foods(selected, Param2Change) + ...(Initial_Foods(selected, Param2Change) - neighbour(Param2Change)) * (rand - 0.5) * 2;% 个体取值范围约束ind = find(sol < X_min);sol(ind) = X_min(ind);ind = find(sol > X_max);sol(ind) = X_max(ind);% 估计新的目标函数值和适应度值FitnessSol = calculate_fitness(sol);% 更新最优个体值if FitnessSol > Initial_Fitness(selected)Initial_Foods(selected, :) = sol;Initial_Fitness(selected) = FitnessSol;trial(selected) = 0;elsetrial(selected) = trial(selected) + 1;endend% Step8 : 侦察蜂阶段 for i = 1:Oif trial(i) > Limit                    tent_sequence = rand(1, D);                                       % 生成一个随机向量for j = 1:10                                                      % 使用Tent混沌映射进行多次迭代tent_sequence = arrayfun(@tent_map, tent_sequence);endInitial_Foods(i, :) = X_min + (X_max - X_min) .* tent_sequence;   % 将Tent混沌序列映射到解空间范围内Initial_Fitness = calculate_fitness(Initial_Foods);trial(i) = 0;endend% Step9 : 记录全局最佳蜜源和适应度值[best_fitness, best_index] = max(Initial_Fitness);best_food = Initial_Foods(best_index, :);%判断是否需要更新全局最佳if iter == 1 || best_fitness > F_A_bestF_A_best = best_fitness;A_best = best_food;endendfprintf('A_best : %s\n', mat2str(A_best));fprintf('F_A_best : %f\n', F_A_best);endfunction [G_Best, F_G_best] = TCPSO(population_P,Best,isFirstGen)% Step1 : 初始化算法相关参数N = 15;          % 选取适应度较好的个体数量
D = 10;          % 粒子维数
X_min = -1000000;  % 各维的取值范围
X_max = 1000000;      
C1 = 1.5;        % 学习因子
C2 = 1.5;        
max_iter = 100;  % 最大迭代次数
max_velocity = (X_max - X_min) / 10; % 最大速度限制
w_max = 0.9;    % 最大惯性权重
w_min = 0.4;    % 最小惯性权重% Step2 : 输入population_P作为若干初始蜜源positions = population_P; % Step3 : 计算粒子适应度值, 选取适应度较好的N个位置作为初始位置, 并随机产生N个初始速度fitness_values = calculate_fitness(positions);                    %计算适应度值
[~, sorted_indices] = sort(fitness_values);                       % 按适应度排序
positions1 = positions(sorted_indices(1:N), :);                   % 选取适应度较好的N个位置,即初始位置
velocities = (X_max - X_min) .* (rand(N, D) - 0.5) * 0.1;                % 生成N个初始速度% Step4-5 : 更新群体最佳个体及适应度,更新最佳个体及适应度fitness_values1 = calculate_fitness(positions1);                   %计算适应度值
[best_fitness,idx] = min(fitness_values1);                         % 计算出初始位置的适应度值的最小值与索引if isFirstGenF_G_best = best_fitness;                                       % 初代群体位置最优适应度G_Best = positions1(idx, :);                                   % 初代群体最优个体
elseF_G_best = calculate_fitness(Best);G_Best = Best;
endbest_positions = positions1;                                       % 每个粒子在搜索过程中的历史最佳位置矩阵   
fitness_best = fitness_values1;                                    % 个体最佳适应度 % Step6 : 更新粒子位置和速度for i = 1 : max_iter% 动态调整惯性权重W = w_max - (w_max - w_min) * i / max_iter; for j = 1 : N% 速度更新并限制在最大速度范围内velocities(j,:) =W * velocities(j,:) + C1 * rand * (best_positions(j,:) - positions1(j,:))...+ C2 * rand *(G_Best - positions1(j,:));velocities(j,:) = max(min(velocities(j,:), max_velocity), -max_velocity);% 位置更新positions1(j,:) = positions1(j,:) + velocities(j,:);positions1(j,positions1(j,:) > X_max) = X_max;positions1(j,positions1(j,:) < X_min) = X_min;% 适应度值更新fitness_values1(j) = calculate_fitness(positions1(j,:));% 更新个体最优位置if fitness_values1(j) < fitness_best(j)best_positions(j,:) = positions1(j,:);fitness_best(j) = calculate_fitness(positions1(j,:));end% 更新全局最优位置if fitness_values1(j) < F_G_bestF_G_best = fitness_values1(j);G_Best = positions1(j,:);endend% Step7 : 针对当前最优位置Global_best_positions, 利用Tent混沌搜索产生最优新解Gbesttent_Global_best_positions = generate_tent_population(1, D);tent_G_best_positions = X_min + (X_max - X_min) * tent_Global_best_positions; % 将Tent混沌序列映射到粒子位置范围内tent_G_best_fitness = calculate_fitness(tent_G_best_positions);               %计算适应度值% Step8 : 利用tent_G_best_positions替代种群任意一粒子的位置,作用:增加种群的变异性,使算法更容易跳出局部最优解,找到更好的全局最优解。if tent_G_best_fitness < F_G_bestG_Best = tent_G_best_positions;F_G_best = tent_G_best_fitness;end% 替代种群任意一粒子的位置replace_idx = randi(N);positions1(replace_idx, :) = tent_G_best_positions;          % positions1为当代种群fitness_values1(replace_idx) = tent_G_best_fitness;          % fitness_values1为当代适应度值% 检查停止条件if F_G_best < 1e-6                                           % 假设阈值1e-6break;endend% 输出最佳解和最佳适应度值
fprintf('G_Best : %s\n', mat2str(G_Best));
fprintf('F_G_best: %f\n', F_G_best);end

以及文章的结果图片

论文为 Tent混沌人工蜂群与粒子群混合算法 匡芳君

友情提示:
  如上问题有的来自我自身项目开发,有的收集网站,有的来自读者…如有侵权,立马删除。再者,针对此专栏中部分问题及其问题的解答思路或步骤等,存在少部分搜集于全网社区及人工智能问答等渠道,若最后实在是没能帮助到你,还望见谅!并非所有的解答都能解决每个人的问题,在此希望屏幕前的你能够给予宝贵的理解,而不是立刻指责或者抱怨!如果你有更优解,那建议你出教程写方案,一同学习!共同进步。

解决方案

  如下是上述问题的解决方案,仅供参考:

  您好!针对您的问题,我提供以下分析和建议:

遇到的问题1:粒子和适应度值异常

  1. 粒子维度问题:您提到当维度上下限变大时,粒子每个维度的值也变得非常大。这可能是因为算法在更新粒子位置时没有正确地限制粒子的速度,导致粒子在迭代过程中超出了预定的范围。您需要检查TCPSO算法中的速度更新部分,确保速度不会过大。

  2. 适应度值问题:适应度值与预期不符可能是因为目标函数或适应度计算方式有误。您使用的Sphere函数,其最小值为0,当粒子位置接近0时,目标函数值也应接近0。但是,您的适应度函数是1 / (1 + 目标函数值),当目标函数值接近0时,适应度值应接近1,而不是0。这可能是导致适应度值与预期不符的原因。

  3. 算法收敛问题:您提到算法在第一代后不再更新最佳解,这可能是因为粒子更新策略或适应度计算存在问题。需要检查TCPSO算法中的粒子更新逻辑,确保粒子能够根据适应度信息正确更新。

遇到的问题2:对文章结论的理解

  1. 目标函数值:Sphere函数的目标函数值是粒子各维度平方和,最小值为0。当粒子位置接近0时,目标函数值也应接近0。

  2. 适应度函数:您的适应度函数是1 / (1 + 目标函数值)。这个函数的设计初衷可能是为了使目标函数值越小,适应度值越大。但是,当目标函数值接近0时,适应度值应接近1,而不是0。这可能是导致您的困惑的原因。

  3. 算法设计:TCPSO算法的设计可能需要重新审视,特别是粒子更新策略和适应度计算方式。确保算法能够正确地根据适应度信息更新粒子位置,并在迭代过程中找到目标函数值最小的粒子。

建议

  • 检查算法实现:仔细检查TCPSO算法的实现,特别是粒子位置和速度的更新部分,确保它们能够正确地反映适应度信息。
  • 调整适应度函数:考虑调整适应度函数,使其更直观地反映目标函数值的大小,例如使用1 - (目标函数值 / 最大可能目标函数值)
  • 调试和测试:在修改算法后,进行充分的调试和测试,确保算法能够正确运行并收敛到预期的解。

希望这些建议对您有所帮助!如果还有其他问题或需要进一步的帮助,请随时告诉我。

  希望如上措施及解决方案能够帮到有需要的你。

  PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。

  若有对当前Bug有与如下提供的方法不一致,有个不情之请,希望你能把你的新思路或新方法分享到评论区,一起学习,目的就是帮助更多所需要的同学,正所谓「赠人玫瑰,手留余香」。

☀️写在最后

  ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏《CSDN问答解惑-专业版》,都是实战中碰到的Bug,希望对你有所帮助。到此,咱们下期拜拜。

码字不易,如果这篇文章对你有所帮助,帮忙给 bug菌 来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。

同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!

📣关于我

我是bug菌,CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云2023年度十佳博主,掘金多年度人气作者Top40,掘金等各大社区平台签约作者,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计 30w+;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试真题、4000G PDF电子书籍、简历模板等海量资料,你想要的我都有,关键是你不来拿哇。


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

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

相关文章

谷歌再被OpenAI截胡?训练数学AI拿下IMO银牌,不及SearchGPT放了空响..

昨夜谷歌振臂高呼&#xff1a;我们新的数学AI&#xff0c;能在IMO数学竞赛达到银牌水平&#xff01; 但就在谷歌发文的几个小时后&#xff0c;OpenAI就偷了谷歌的家&#xff1a; 发布新的搜索方式SearchGPT &#xff0c;剑指挑战谷歌的搜索引擎。 谷歌双模型并用攻克数学难题…

2. 卷积神经网络无法绕开的神——LeNet

卷积神经网络无法绕开的大神——LeNet 1. 基本架构2. LeNet 53. LeNet 5 代码 1. 基本架构 特征抽取模块可学习的分类器模块 2. LeNet 5 LeNet 5: 5 表示的是5个核心层&#xff0c;2个卷积层&#xff0c;3个全连接层.核心权重层&#xff1a;卷积层、全连接层、循环层&#xff…

LCD 横屏切换为竖屏-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板

LCD 横屏切换为竖屏 横屏显示如何切换为竖屏显示 LCD 屏默认横屏显示 开发板配套的 LCD 屏默认都是横屏显示&#xff0c;如 4.3 寸、7 寸和 10.1 寸的不同分辨率的 RGB LCD 屏 固定坐标体系 &#xff08;以 800*480 分辨率为例&#xff09;横屏模式下的固定坐标&#xff1a;…

快醒醒,别睡了!...讲《数据分析pandas库》了—/—<5>

一、 1、修改替换变量值 本质上是如何直接指定单元格的问题&#xff0c;只要能准确定位单元地址&#xff0c;就能够做到准确替换。 1.1 对应数值的替换 具体用法如下&#xff1a; replace方法&#xff1a; df.replace(to_replace None :将被替换的原数值&#xff0c;所有…

【Python机器学习】决策树的构造——信息增益

决策树是最经常使用的数据挖掘算法。它之所以如此流行&#xff0c;一个很重要的原因就是不需要了解机器学习的知识&#xff0c;就能搞明白决策树是如何工作的。 决策树的优缺点&#xff1a; 优点&#xff1a;计算复杂度不高&#xff0c;输出结果易于理解&#xff0c;对中间值的…

linux集群架构--高可用--keepalived(13985字详解)

linux架构高可用 a.概述 高可用&#xff1a;HA HighAvailablity —>Keepalived生成VIP&#xff0c;DNS解析到这个IP地址即可 b.原理 keepalived 是基于VRRP协议实现高可用VRRP虚拟路由器冗余协议&#xff0c;最开始是给网络设备实现高可用&#xff0c;目前keepalive实现v…

项目实战1(30小时精通C++和外挂实战)

项目实战1&#xff08;30小时精通C和外挂实战&#xff09; 01-MFC1-图标02-MFC2-按钮、调试、打开网页05-MFC5-checkbox及按钮绑定对象06--文件格式、OD序列号08-暴力破解09-CE10-秒杀僵尸 01-MFC1-图标 这个外挂只针对植物大战僵尸游戏 开发这个外挂&#xff0c;首先要将界面…

GUL图形化界面操作(下部)

目录 ​编辑 前言 Swing 窗口 注意点 新增的组件 进度条组件 开关按钮 多面板和分割面板 多面板 分割面板 ​编辑 选项窗口 对话框带三个选项是&#xff0c;否&#xff0c;取消。 对话框提示输入文本: 前言 修炼中&#xff0c;该篇文章为俺很久前的学习笔记 Swi…

2024钉钉杯A题思路详解

文章目录 一、问题一1.1 问题1.2 模型1.3 目标1.4 思路1.4.1 样本探究1.4.2 数据集特性探究&#xff1a;1.4.3 数据预处理1.4.4 数据趋势可视化1.4.5 ARIMA和LSTM两种预测模型1.4.6 参数调整 二、问题二2.1 问题2.2 模型2.3 目标2.4 思路2.4.1 样本探究2.4.2 数据集特性探究2.4…

Radon(拉当) 变换:超详细讲解(附MATLAB,Python 代码)

Radon 变换 Radon 变换是数学上用于函数或图像的一种积分变换&#xff0c;广泛应用于图像处理领域&#xff0c;尤其是在计算机断层成像 (CT) 中。本文档将详细介绍 Radon 变换的数学含义及其在图像处理中的应用。 数学定义 Radon 变换的数学定义是将二维函数 f ( x , y ) f…

SRTOD

文章目录 AbstractMethodoverviewinnovationsolve Experiment link Abstract 本文主要探讨了在目标检测领域中&#xff0c;如何解决微小物体检测的问题。传统的通用检测器在处理微小物体时性能下降严重&#xff0c;主要是因为难以提取有效的特征。为了解决这个问题&#xff0c…

STL-string(使用和部分模拟实现)

1.string basic_string<char> 是 C 标准库中定义的一个模板类型,用于表示一个字符串。这个模板类接收一个字符类型作为模板参数。typedef basic_string<char> string&#xff1a;string类是basic_string类模板的实例化&#xff0c;它使用 char作为其字符类型。 2.…

狗都能看懂的Actor-Critic强化学习算法讲解

Review Policy Gradient 上面的公式是Policy Gradient的更新函数&#xff0c;这个式子是指在 s t s_t st​时刻采取了 a t a_t at​&#xff0c;计算出对应发生的概率 p θ p_\theta pθ​&#xff0c;然后计算在采取了这个 a t a_t at​之后&#xff0c;所得到的reward有多大。…

优化算法|自适应大邻域搜索算法及MATLAB代码实现

回来填坑了&#xff0c;本篇推文将详细讲解ALNS算法求解VRP问题及MATLAB代码实现。 算法介绍 节约算法构造初始解 function routessaving_init(DistMatrix, Demand, Cap) C_EPS1e-1;Nsize(DistMatrix,1); routescell(numel(2:N),1); for i1:numel(routes) % 每个节点单独一条…

【Django】前端技术HTML常用标签(开发环境vscode)

文章目录 安装两个常用插件HTML常用标签定义文档类型DOCTYPE网页的结构html/head//title/body/div标题h1/h2/h3/h4/h5分割线hr段落 p列表ul/li&#xff0c;ol/li超链接a文本span图片img按钮button表格table&#xff08;table、tr、th、td&#xff09;表单form 安装两个常用插件…

目标检测 YOLOv5-7.0 详细调试自制数据集实战

目标检测 YOLOv5-7.0 详细调试&自制数据集实战 一、项目介绍及环境配置&#xff08;一&#xff09;项目解读&#xff08;二&#xff09;版本选择&#xff08;三&#xff09;环境配置 二、如何利用YOLOv5进行预测&#xff08;detect.py&#xff09;&#xff08;一&#xff0…

Windows 实用小工具:窗口钉子/文件管理 2024/7/27

一: wintop 窗口置顶工具 二:WinDirStat 这是一个免费的、开源的磁盘使用分析工具&#xff0c;适用于Windows系统。它会扫描你的硬盘&#xff0c;列出所有文件和文件夹的大小&#xff0c;并以图形化的方式展示&#xff0c;便于理解。 可以用来检测硬盘文件夹占用从而,酌情处…

JAVA.抽象、接口、内部类

1.抽象 共性&#xff0c;父类定义抽象方法&#xff0c;子类必须重写&#xff0c;或者子类也是抽象类 示例代码 animal package animalabstract;//定义抽象类animal public abstract class animal {String name;int age;//定义抽象方法eat&#xff0c;子类必须重写public abs…

Java给定一些元素随机从中选择一个

文章目录 代码实现java.util.Random类实现随机取数(推荐)java.util.Collections实现(推荐)Java 8 Stream流实现(不推荐) 完整代码参考&#xff08;含测试数据&#xff09; 在Java中&#xff0c;要从给定的数据集合中随机选择一个元素&#xff0c;我们很容易想到可以使用 java.…