function [Population] = genPopulation (NP,defOborXY,typ,D,CisFce,A,C,alp)
%fce generuje nahodnou pocatecni populaci o velikosti NP, s definicnim
%oborem prvku deOborXY a typem typ

   spmd
       
    if (typ == 1)
       
        Population = codistributed.rand(D+2,NP);
        for i = drange(1:NP)
            Population(2:D+1,i) = Population(2:D+1,i).*(defOborXY(:,2)-defOborXY(:,1))+defOborXY(:,1);
            Population(D+2,i)= 0; %ctvrty prvek pro pozicni selekci, pouze u GA
        end
        
    else
        % potreba zmenit velikost pole pro jine nez GA, posledni radek jiz
        % nebude pro indexaci poradi
        Population = codistributed.rand(D+2,NP);
        for i = drange(1:NP)
            Population = codistributed.rand(D+2,NP).*(defOborXY(:,2)-defOborXY(:,1))+defOborXY(:,1);
        end
    end 
    
    %ohodnoceni fitness funkci ktera je stejna jako funkce vniz hledame
    %minimum
    for i = drange(1:NP)
        Population(1,i) = FUNKCE(Population(2:end,i),D,CisFce,A,C,alp);
    end
   end
    
    
    
