From 1af7758b877dc2bd721fdbfef0ce51aa2e12456e Mon Sep 17 00:00:00 2001 From: ChenX Date: Wed, 6 Nov 2019 23:50:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E5=90=8E=E6=9C=9F=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E5=A4=A7=E6=9D=BF=E4=BC=98=E5=85=88=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Nest/Individual.ts | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Nest/Individual.ts b/src/Nest/Individual.ts index c952c0028..38c3fe75b 100644 --- a/src/Nest/Individual.ts +++ b/src/Nest/Individual.ts @@ -89,20 +89,23 @@ export class Individual this.Fitness = Math.ceil(bestCount) + 1; return; }; - let area = 0; - let maxP: Part; - for (let i = 0; i < parts.length; i++) + let container = new Container(bin); + if (this.mutationRate > 0.21) { - let p = parts[i]; - if (p.State.PlaceOutline.Area > area) + let area = 0; + let maxP: Part; + for (let i = 0; i < parts.length; i++) { - maxP = parts[i]; - area = p.State.PlaceOutline.Area; + let p = parts[i]; + if (p.State.PlaceOutline.Area > area) + { + maxP = parts[i]; + area = p.State.PlaceOutline.Area; + } } + if (container.PutPart(maxP)) + parts = parts.filter(p => p !== maxP); } - let container = new Container(bin); - if (container.PutPart(maxP)) - parts = parts.filter(p => p !== maxP); parts = parts.filter(p => { return container.PutPart(p) !== true;