82 lines
2.2 KiB
Matlab
82 lines
2.2 KiB
Matlab
clear;
|
|
% Load data
|
|
dataPath = fullfile('.', 'sandbox', 'plot1');
|
|
simHists = dir(dataPath); simHists = simHists(3:end);
|
|
simInits = simHists(endsWith({simHists.name}, 'miSimInits.mat'));
|
|
simHists = simHists(endsWith({simHists.name}, 'miSimHist.mat'));
|
|
assert(length(simHists) == length(simInits), "input data availability mismatch");
|
|
|
|
% Initialize plotting data
|
|
Cfinal = NaN(12, 1);
|
|
n = NaN(12, 1);
|
|
doubleIntegrator = NaN(12, 1);
|
|
numObjective = NaN(12, 1);
|
|
|
|
% Aggregate relevant data
|
|
for ii = 1:length(simHists)
|
|
initName = strrep(simInits(ii).name, "_miSimInits.mat", "");
|
|
histName = strrep(simHists(ii).name, "_miSimHist.mat", "");
|
|
assert(initName == histName);
|
|
|
|
init = load(fullfile(simInits(ii).folder, simInits(ii).name));
|
|
hist = load(fullfile(simHists(ii).folder, simHists(ii).name));
|
|
|
|
% Stash relevant data
|
|
Cfinal(ii) = hist.out.perf(end) / init.objectiveIntegral;
|
|
n(ii) = init.numAgents;
|
|
doubleIntegrator(ii) = init.useDoubleIntegrator;
|
|
numObjective(ii) = size(init.objectivePos, 1);
|
|
for jj = 1:length(hist.out.agent)
|
|
alphaDist(jj, ii) = hist.out.agent(jj).sensor.alphaDist;
|
|
end
|
|
end
|
|
|
|
sensors = unique(alphaDist(1, :));
|
|
|
|
config = [];
|
|
for ii = 1:length(simHists)
|
|
% number of agents
|
|
s = num2str(n(ii));
|
|
|
|
% number of objectives
|
|
if numObjective(ii) == 1
|
|
s = strcat(s, "_A");
|
|
elseif numObjective(ii) == 2
|
|
s = strcat(s, "_B");
|
|
end
|
|
|
|
% sensor pararmeter set
|
|
if alphaDist(1, ii) == sensors(1)
|
|
s = strcat(s, "_I");
|
|
elseif alphaDist(1, ii) == sensors(2)
|
|
s = strcat(s, "_II");
|
|
end
|
|
|
|
% agent dynamics
|
|
if ~doubleIntegrator(ii)
|
|
s = strcat(s, '_alpha');
|
|
elseif doubleIntegrator(ii)
|
|
s = strcat(s, '_beta');
|
|
end
|
|
config = [config; s];
|
|
end
|
|
|
|
close all;
|
|
f = figure;
|
|
x = axes; grid(x, "on");
|
|
|
|
n_unique = sort(unique(n));
|
|
C = [];
|
|
for ii = 1:length(n_unique)
|
|
nIdx = n == n_unique(ii);
|
|
C = [C; [Cfinal(nIdx)]'];
|
|
end
|
|
bar(C);
|
|
xlabel("Number of agents");
|
|
ylabel("Final coverage (fraction of maximum)");
|
|
title("Final performance of parameterizations");
|
|
legend(["$AI\alpha$"; "$AI\beta$"; "$AII\alpha$"; "$BI\beta$"], "Interpreter", "latex");
|
|
grid("on");
|
|
keyboard
|
|
|