萌新求助,论坛下载的代码可以运行但就是出不了结果

m0_64902498 2024-05-16 23:21:36

  如图,程序就一直在运行那个unifrnd脚本出不去,按步进就在56到58行这里反复横跳,不执行下一步,跑不出结果,是这个for循环有问题吗,很急,请求各位大佬帮忙看看

主程序代码如下


clc;
clear;
close all;

%% Problem Definition

CostFunction=@(x) myfun(x);      % Cost Function

nVar=24;             % 时间段

VarSize=[1 nVar];   % Size of Decision Variables Matrix

VarMin= 2451.5.*ones(1,24);        % 水位下界 %这里为了产生初始解做了相关调整
VarMax= 2455.*ones(1,24);          % 水位上界

% Number of Objective Functions
% nObj=numel(CostFunction(unifrnd(VarMin,VarMax,VarSize)));
nObj = 2;

%% NSGA-II Parameters

MaxIt=70;      % Maximum Number of Iterations

nPop=80;        % Population Size

pCrossover=0.7;                         % Crossover Percentage
nCrossover=2*round(pCrossover*nPop/2);  % Number of Parnets (Offsprings)

pMutation=0.4;                          % Mutation Percentage
nMutation=round(pMutation*nPop);        % Number of Mutants

mu=0.02;                    % Mutation Rate

sigma=0.1*(VarMax-VarMin);  % Mutation Step Size


%% Initialization

empty_individual.Position=[];
empty_individual.Cost=[];
empty_individual.Rank=[];
empty_individual.DominationSet=[];
empty_individual.DominatedCount=[];
empty_individual.CrowdingDistance=[];

pop=repmat(empty_individual,nPop,1);

disp('产生初始可行解...')
for i=1:nPop
    
    flag=0;
    while flag==0
        tmp=[];
        for j=1:1:nVar
            tmp = [tmp unifrnd(VarMin(j),VarMax(j),1)];
        end
        flag = test(tmp); % 检查约束 约束不满足就重新生成解
    end
    pop(i).Position=tmp;
    
    pop(i).Cost=CostFunction(pop(i).Position);
    
end

% pause

% Non-Dominated Sorting
[pop, F]=NonDominatedSorting(pop);

% Calculate Crowding Distance
pop=CalcCrowdingDistance(pop,F);

% Sort Population
[pop, F]=SortPopulation(pop);


%% NSGA-II Main Loop

for it=1:MaxIt
    
    % 交叉
    popc=repmat(empty_individual,nCrossover/2,2);
    for k=1:nCrossover/2
        
        i1=randi([1 nPop]);
        p1=pop(i1);
        
        i2=randi([1 nPop]);
        p2=pop(i2);
        
        [popc(k,1).Position, popc(k,2).Position]=Crossover(p1.Position,p2.Position,VarMin,VarMax);
        if test(popc(k,1).Position)+test(popc(k,2).Position)==2
            popc(k,1).Cost=CostFunction(popc(k,1).Position);
            popc(k,2).Cost=CostFunction(popc(k,2).Position);
        else
            popc(k,1)=p1;
            popc(k,2)=p2;
        end
        
    end
    popc=popc(:);
    
    % 变异
    popm=repmat(empty_individual,nMutation,1);
    for k=1:nMutation
        
        i=randi([1 nPop]);
        p=pop(i);
        
        popm(k).Position=Mutate(p.Position,mu,sigma,VarMin,VarMax);
        
        %% 越界处理
%         chrom=[popm(k).Position];
%         chrom(find(chrom<VarMin(1)))=VarMin(1);
%         chrom(find(chrom>VarMax(1)))=VarMax(1);
%         popm(k).Position=chrom;
        
        if test(popm(k).Position)
            
            popm(k).Cost=CostFunction(popm(k).Position);
        else
            popm(k)=p;
        end
        
    end
    
    % 合并父代和子代
    pop=[pop
        popc
        popm]; %#ok
    
    % Non-Dominated Sorting
    [pop, F]=NonDominatedSorting(pop);
    
    % Calculate Crowding Distance
    pop=CalcCrowdingDistance(pop,F);
    
    % Sort Population
    pop=SortPopulation(pop);
    
    % 截取前n个解
    pop=pop(1:nPop);
    
    % Non-Dominated Sorting
    [pop, F]=NonDominatedSorting(pop);
    
    % Calculate Crowding Distance
    pop=CalcCrowdingDistance(pop,F);
    
    % Sort Population
    [pop, F]=SortPopulation(pop);
    
    % Store F1
    F1=pop(F{1});
    
    % Show Iteration Information
    disp(['Iteration ' num2str(it) ': Number of F1 Members = ' num2str(numel(F1))]);
    
    % Plot F1 Costs
    figure(1);
    PlotCosts(F1);
    pause(0.01);
    
end

%% Results
result

...全文
Hello World
拼手气红包 10.00元
3108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
太空漫步11 05-17
  • 打赏
  • 举报
回复

img

m0_64902498 05-17
  • 举报
回复
@太空漫步11 感谢帮助
m0_64902498 05-17
  • 举报
回复
@太空漫步11 开源这个代码的博主说是可运行的,会不会是随机生成的数组tmp通过检测约束要很长一段时间?
丞旭缘 05-17
  • 打赏
  • 举报
回复
建议你打印一下nVar和j,看看他们的变化
小李很执着 05-17
  • 打赏
  • 举报
回复
大佬互关
萌新求助,关于Intellij Idea
大佬们,我刚开始入手Java的学习,使用的是Intellij Idea工具。然后我最近在编写一个乘法表代码时遇到了一些问题。 代码案例用的是Eclipse,对于循环输运行结果默认是不换行的。所以它可以直接进行循环,然后设置换行就可以完成一个乘法表的编写。代码如下图1 运行结果如下图2 而Intellij Idea对于循环输默认是换行的,我运行结果如下图3(省略掉大部分结果) ...
vscode萌新求助
这是我的json 有大佬帮忙看看什么问题吗。代码本身没有任何问题。
24点计算器c语言源代码,萌新求助!!24点游戏计算器
该楼层疑似违规已被系统折叠隐藏此楼查看此楼有没有大佬知道这个代码运行过程,急!!#include #include #include #define PRECISION 1E-6#define TARGET 24#define SIZE 4/** 最终表达式由四个数、括号、运算符组成,其大小不会超过* 5 * ( SIZE - 1 ) + SIZE * 2 + 1*/typedef s...
萌新求助大佬救救我
大佬们帮帮我
萌新求助
就是没办法导入,我在代码后面有写分号但是也是无法运行是怎么回事?ctrl+c退了也没法打其他代码?为什么我的这个mysql导入数据库会现这样的情况?然后我的文件地址也没问题。
Matlab学习社区

96,254

社区成员

298

社区内容

发帖
与我相关
我的任务
社区描述
好记性不如烂笔头,欢迎大家交流Matlab技术!
matlab 个人社区 四川省·成都市
社区管理员
  • 珞瑜·
  • CSDN-Ada助手
加入社区
  • 近7日
  • 近30日
  • 至今

加载中

查看更多榜单
社区公告

欢迎大家交流Matlab技术!互相成就互相成长!

试试用AI创作助手写篇文章吧

+ 用AI写文章

深圳坪山网站建设公司株洲网站排名优化成都网站推广优化公司哪家好绵阳网站建设和优化服务宝鸡网站优化公司有效网站优化的方法石家庄学习网站优化技术济南新网站优化蒲江网站关键字优化丰台网站优化排名推广贵港网站运营优化公司seo优化网站死链政务网站的优化方案关于网站seo优化阿克苏网站seo优化哪家好网站搜索引擎优化的表现高港区网站优化多少钱平山网站优化推广费用荆门品牌网站优化哪家好苏州网站排名优化系统杭州好的网站优化咸宁本地网站优化哪家好昆明网站优化公司靖江网站优化价格网站竞价如何优化奎文网站优化推广哪家好福田网站优化嘉兴网站优化销售厂家电话津南网站排名优化营销网站seo优化难点优化网站的原理香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化