function [node_map,path_map]=def_strat(nodes_CPU, nodes_load, inc, edges_BW, edges_load, claim_nodes, claim_inc, claim_edges) path_map=zeros(length(claim_edges),length(edges_BW)); node_map=[]; for x=claim_nodes free=ones(1,length(nodes_CPU)); free(node_map)=zeros(1,length(node_map)); [v,index]=max((nodes_CPU-nodes_load).*free); if(v>=x) node_map(end+1)=index; nodes_load(index)+=x; endif endfor disp("---------"); disp(node_map); if(length(node_map)==length(claim_nodes)) adjId=zeros(length(nodes_CPU)); for e=1:length(edges_BW) a=find(inc(:,e)); u=a(1);v=a(2); adjId(u,v)=e; adjId(v,u)=e; endfor for e=1:length(claim_edges) a=find(claim_inc(:,e)); u=a(1);v=a(2); A=inc2adj(inc(:,find(max(0,edges_BW-edges_load-claim_edges(e)+1)))); [d,path]=dijkstra(A,node_map(u),node_map(v)); if(path(1)==node_map(u)) for x=1:length(path)-1 path_map(e,adjId(path(x),path(x+1)))=1; endfor endif endfor else node_map=[]; endif endfunction