Commit a9f7d0cc authored by Tong Li's avatar Tong Li

遗传算法-增加kpi

parent 9640e865
......@@ -115,4 +115,45 @@ public class Chromosome {
private String ScenarioName;
private LocalDateTime BaseTime ; // 当前基准时间
//最大设备利用率
private double machineMaxRate;
//最小设备利用率
private double machineMinRate;
//设备等待时长
private double machineWaitTime;
//订单及时完成率
private double orderOnTime;
//最大延迟
private double orderMaxDelay;
//最小延迟
private double orderMinDelay;
//平均延迟
private double orderAvgDelay;
//最长生产周期
private double orderMaxProductTime;
//最短生产周期
private double orderMinProductTime;
//平均生产周期
private double orderAvgProductTime;
//最大流量
private double orderMaxFlow;
//最小流量
private double orderMinFlow;
//平均流量
private double orderAvgFlow;
}
......@@ -19,6 +19,10 @@ public class Machine {
private List<Holiday> holidays;
private double actualWorkTime;
private double rate;
// 事件回调
private Consumer<Void> shiftsChanged;
private Consumer<Void> maintenanceWindowsChanged;
......
......@@ -22,6 +22,12 @@ public class Order {
private LocalDateTime dueDate;
private LocalDateTime orderCompletion;
private LocalDateTime orderStart;
private double machineProcessingTime;
private double orderFlow;
private double orderProductTime;
private double tardiness;
private int priority;
private boolean canSplit = false;
......@@ -30,4 +36,6 @@ public class Order {
private String mainId;
/*使用这个半成品的成品工单*/
public List<String> FinishOrderId ;
private double delayHours;//延迟时间
}
\ No newline at end of file
This diff is collapsed.
......@@ -650,6 +650,10 @@ public class ScheduleOperationService {
decoder.decode(chromosome);
KpiCalculator kpiCalculator=new KpiCalculator(chromosome);
kpiCalculator.calculatekpi();
// if(chromosome.getWeightedObjective()==0) {
//
// double[] normalized = objectiveWeights.normalizeObjectives(chromosome.getObjectives(), null, null);
......
......@@ -13,10 +13,7 @@ import com.aps.entity.Schedule.GenVO;
import com.aps.entity.Schedule.MachineVO;
import com.aps.entity.basic.*;
import com.aps.service.*;
import com.aps.service.Algorithm.GeneticAlgorithm;
import com.aps.service.Algorithm.IdGroupingWithDualSerial;
import com.aps.service.Algorithm.RoutingDataService;
import com.aps.service.Algorithm.ScheduleOperationService;
import com.aps.service.Algorithm.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -309,8 +306,11 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
// 5. 执行调度算法
GeneticAlgorithm scheduler =new GeneticAlgorithm(globalParam,machines,orders,null,machineScheduler,entryRel); //new GeneticAlgorithm(products, machines, orders, machineScheduler);
param.initAdaptiveParams(entrys.size());
Chromosome chromosome =scheduler.Run(param,entrys);
KpiCalculator kpiCalculator=new KpiCalculator(chromosome);
kpiCalculator.calculatekpi();
_sceneService.saveChromosomeToFile(chromosome, SceneId);
// Chromosomes.forEach(this::WriteScheduleSummary);
......@@ -524,7 +524,8 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
GeneticAlgorithm scheduler =new GeneticAlgorithm(globalParam,machines,orders,null,machineScheduler,entryRel); //new GeneticAlgorithm(products, machines, orders, machineScheduler);
param.initAdaptiveParams(entrys.size());
Chromosome chromosomes =scheduler.Run(param,entrys);
KpiCalculator kpiCalculator=new KpiCalculator(chromosomes);
kpiCalculator.calculatekpi();
chromosomes.setScenarioID(SceneId);
chromosomes.setBaseTime(param.getBaseTime());
chromosomes.setOperatRel(entryRel);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment