通过染色体数量来替代种群数量
from copy import deepcopy
import math
import random
import matplotlib.pyplot as plt
import pandas as pd
from platypus import *
# 定义一个染色体类
class Chromosome:
def __init__(self, num_vars, upper_bounds, lower_bounds):
self.num_vars = num_vars # 变量个数
self.upper_bounds = upper_bounds # 变量上界
self.lower_bounds = lower_bounds # 变量下界
self.x = [None] * num_vars # 变量值
self.fitness = [0] * 2 # 适应度值
# 初始化染色体
def initialize(self):
for i in range(self.num_vars):
self.x[i] = random.uniform(self.lower_bounds[i], self.upper_bounds[i])
# 计算适应度值
def evaluate(self, objectives):
self.fitness[0] = objectives[0](self.x)
self.fitness[1] = objectives[1](self.x)
# 获取变量值
def get_x(self):
return self.x
# 获取适应度值
def get_fitness(self):
return self.fitness
# 定义一个种群类
class Population:
def __init__(self, num_chroms, num_vars, upper_bounds, lower_bounds):
self.num_chroms = num_chroms # 染色体个数
self.num_vars = num_vars # 变量个数
self.upper_bounds = upper_bounds # 变量上界
self.lower_bounds = lower_bounds # 变量下界
self.chroms = [None] * num_chroms # 染