这是一个官方的例子:假设现在有N个进程需要N台电脑去维护,且每台电脑配置可能不一样。每台电脑不管维护多少进程,他们的维护费用一致;进程所需的CPU功率之和与所需内存之和不能超过电脑的CPU功率与内存容量。求怎样分配能够降低维护成本。
图片示例:
一、开始建模。
jar包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.15.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.15.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.5</version>
</dependency>
①、资源对象
/**
* @author Xiao Mi feng
* Created with IntelliJ IDEA
* @date 2024-01-26 14:14
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
public class Computer extends AbstractPersistable {
/**
* cpu功率
*/
private Integer cpuPower;
/**
* 内存容量
*/
private Integer memoryCapacity;
/**
* 网络容量
*/
private Integer networkCapacity;
/**
* 维护费用
*/
private Integer cost;
}
②、问题解决对象(包含资源对象)
/**
* @author Xiao Mi feng
* Created with IntelliJ IDEA
* @date 2024-01-26 14:22
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@PlanningEntity
public class Processes extends AbstractPersis