|
|
@ -89,6 +89,9 @@ export class Individual
|
|
|
|
this.Fitness = Math.ceil(bestCount) + 1;
|
|
|
|
this.Fitness = Math.ceil(bestCount) + 1;
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
let container = new Container(bin);
|
|
|
|
|
|
|
|
if (this.mutationRate > 0.21)
|
|
|
|
|
|
|
|
{
|
|
|
|
let area = 0;
|
|
|
|
let area = 0;
|
|
|
|
let maxP: Part;
|
|
|
|
let maxP: Part;
|
|
|
|
for (let i = 0; i < parts.length; i++)
|
|
|
|
for (let i = 0; i < parts.length; i++)
|
|
|
@ -100,9 +103,9 @@ export class Individual
|
|
|
|
area = p.State.PlaceOutline.Area;
|
|
|
|
area = p.State.PlaceOutline.Area;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let container = new Container(bin);
|
|
|
|
|
|
|
|
if (container.PutPart(maxP))
|
|
|
|
if (container.PutPart(maxP))
|
|
|
|
parts = parts.filter(p => p !== maxP);
|
|
|
|
parts = parts.filter(p => p !== maxP);
|
|
|
|
|
|
|
|
}
|
|
|
|
parts = parts.filter(p =>
|
|
|
|
parts = parts.filter(p =>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return container.PutPart(p) !== true;
|
|
|
|
return container.PutPart(p) !== true;
|
|
|
|