加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
object_value.m 1.87 KB
一键复制 编辑 原始数据 按行查看 历史
Wintery 提交于 2022-05-23 16:12 . ywh made
function [total_cost]=object_value(x,task,execution_time,task_num,task_out,task_in)
%% 租用服务器费用、时耗
instance_types=3;
task_allocation=x((instance_types+1)*2:task_num+instance_types*2+1);
deadline =0.6*sum(execution_time(:,4)); % 工作流期限=0.9*本地执行时间
instance_id=x(2:x(1)+1); % 原始instance 种类id
option_instance=x(instance_types+2:instance_types*2+1); % 每个服务器的租用类型 reserved/on demand
reserved_price=[0.4 0.35 0.32;600 550 520]; % 按期限购买价格
on_demand_price=[1 0.9 0.85]; % 按需购买价格
[finish,time_span]=task_scheduling(task,execution_time,task_allocation,instance_id,task_num,task_out,task_in);
completion_time = max(finish); % 整个工作流完成时间
purchase_cost = 0;
for i = 1 : x(1)
if(option_instance(i)==1)
purchase_cost = purchase_cost+reserved_price(2,instance_id(i))+reserved_price(1,instance_id(i))*time_span(i);
elseif(option_instance(i)==2)
purchase_cost = purchase_cost+on_demand_price(instance_id(i))*time_span(i);
end
end
%% 功耗
Power_Cost_list=[1.5 1 1]; % 云服务器、边缘服务器的单位时间功耗
Power_Cost_end=0.6; % 终端单位时间功耗
Power_Cost=0;
Power_Cost=Power_Cost+Power_Cost_end*time_span(4);
for i = 1 : x(1)
Power_Cost=Power_Cost+Power_Cost_list(instance_id(i))*time_span(i);
end
%% 适应度值计算
f1=0.5; % 各项指标的占比
f2=0.2;
f3=0.3;
total_cost = f1*purchase_cost+f2*completion_time+f3*Power_Cost;
% if(completion_time<=deadline) % 是否超时
% total_cost = f1*purchase_cost+f2*completion_time+f3*Power_Cost;
% else
% total_cost = f1*purchase_cost+f2*completion_time*completion_time/deadline+f3*Power_Cost;
% end
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化