Experiment code in MATLAB (version 2018a and above).

Files list:
- run_ex.m : contains the script to run the experiments
- greedy.m : contains the function that runs Greedy on a permutation
- convex_fill.m : contains the function computing the extreme points for bi-objective instances (Algorithm 2). Takes in two weights and a matroid 
- rank_graphic.m : contains the function computing the rank oracle for graphic matroid. Takes in an adjacency matrix of simple undirected graph and a list of solutions as edge-sets.
- random_graph.m : contains the function generating a random simple undirected graph fixing number of vertices and edges, number of weights, weight value range, and optional seed.
- dat.mat : contains the data used in the experiments, stored in variables "inst" and "results"
-- inst : contains bi-objective MST instances as adjacency matrices and weight matrices.
--- inst{i}.Adj : adjacency matrix of instance i
--- inst{i}.w : weights matrix of instance i
--- inst{i}.X : minimal sufficient solutions of instance i
--- inst{i}.Y : extreme points of instance i
--- inst{i}.L : minimal complete trade-offs of instance i
-- results : contains results from run_ex.m
--- results{i}.budget : evaluation budget for instance i
--- results{i}.MOEAD_o{j} : result from run j of MOEA/D on instance i
--- results{i}.GSEMO_o{j} : result from run j of GSEMO on instance i