📄 1.m
字号:
close all;
clear all;
clc;
ITERATIONS= 5; % final result will be average of these
isML = 0;
isPlot = 1;
%%%%%%% Initialization%%%%%%%%%%%%%%%%%%%%%%%%%%
tic
St_KnapSack.NumItems = 4;
St_KnapSack.SearchSpace = 2^ St_KnapSack.NumItems;
St_KnapSack.Weight = [4 3 5 2 ]; %% weight vector. This known as benefit
St_KnapSack.ItemCapacity = [6 7 8 1]; %% capacity of each item. (volume of )
St_KnapSack.WeightLength = length(St_KnapSack.Weight);
St_KnapSack.Constraint(1) = 10;
St_KnapSack.ItemCapacityLength = length(St_KnapSack.ItemCapacity);
%%% sorting is used here. This is good to make infeasible sol. feasible
[St_KnapSack.Value St_KnapSack.Index] = sort(St_KnapSack.Weight);
St_KnapSack.Weight = St_KnapSack.Weight(St_KnapSack.Index);%% sorted weights
St_KnapSack.ItemCapacity = St_KnapSack.ItemCapacity(St_KnapSack.Index);%% Adjust capacity according to weight
%% Repeat Same line to convert back
% St_KnapSack.Weight = St_KnapSack.Weight(St_KnapSack.Index);%% sorted weights
% St_KnapSack.ItemCapacity = St_KnapSack.ItemCapacity(St_KnapSack.Index);%% Adjust capacity according to weight
%% Repeat Same line to convert back
St_EDA.POPULATION_SIZE = 10;
St_EDA.SELECTION_PROBABILITY = 0.5;
St_EDA.ITERATION = 10;
%%%%%%%% Exhaustive Search %%%%%%%%%%%%%%%%%%%%%%%%
SumCapacity = zeros(1,St_KnapSack.SearchSpace);
ConstraintCheckAndValue = zeros(2,St_KnapSack.SearchSpace);%% row 1 value, Row constraint check 0 or 1
SearchSpaceInBin = zeros(St_KnapSack.SearchSpace,St_KnapSack.NumItems);
for i = 1:St_KnapSack.SearchSpace
SearchSpaceInBin(i,:) = dec2binvect_m(i-1,St_KnapSack.NumItems);
SumCapacity(i)= sum(St_KnapSack.Weight .* SearchSpaceInBin(i,:));
ConstraintCheckAndValue(1,i)= sum(St_KnapSack.ItemCapacity .* SearchSpaceInBin(i,:));
end
ConstraintCheckAndValue(2,:) = ConstraintCheckAndValue(1,:) <= St_KnapSack.Constraint(1);
SumCapacity
ConstraintCheckAndValue
toc
%%%%%%% File Save%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
time = now;
str = datestr(time,0);
str_index=strfind(str,':');
str(str_index(1,1)) = '_';
str(str_index(1,2)) = '_';
% str1 = ['Data\\Knapsack_It_',num2str(ITERATIONS),'_NR_',num2str(N_R),'_Nr_',num2str(N_r_Start),'_',num2str(N_r_End),'_K_',num2str(K),'_Ks_',num2str(K_Start),'_',num2str(K_End),'_',str(1:17), '.mat'];
% save(str1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -