Population = 10

%Create Population 

for i=1:Population
    InitialPopulation(i,:) = randperm (Length);
end

ActualPopulation=InitialPopulation

%Define Crossover Type --> random number between 0-2

Crossovertype = ceil (rand()*2) 

if Crossovertype == 0 % No Mutation 

    ActualPopulation = FinalPopulation 
    
   end

if Crossovertype == 1 % One Point Crossover

    k=randi(Population)
    Parent1=ActualPopulation(k,:)
    
     j=randi(Population)
    Parent2=ActualPopulation(j,:)
    
    Crossoverpoint = ceil (rand()*4)
    
        Child1 =Parent1(1,Crossoverpoint)
        Parent2=Parent2(Parent2~=Child1)
        
        Child = [Child1 Parent2]
end

if Crossovertype == 2 % Two Point Crossover
    
     k=randi(Population)
    Parent1=ActualPopulation(k,:)
    
    j=randi(Population)
    Parent2=ActualPopulation(j,:)   
    
     Crossoverpoint1 = ceil (rand()*4)
     Crossoverpoint2 = ceil (rand()*4)
     
     Child1 = Parent1(1:Crossoverpoint1)
     Child2 = Parent1 (Crossoverpoint2:end)
     Parent2 = Parent2(Parent2~=Child1)
     Parent2 = Parent2(Parent2~=Child2)
     
     Child= [Child1 Parent2 Child2]
     
end
