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