pso导入一个已知的粒子的训练算法
初始化pso的代码见开源库
https://github.com/guofei9987/scikit-opt/blob/master/sko/PSO.py
导入一个粒子作为初始的粒子的代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2019/8/20
# @Author : github.com/guofei9987
import numpy as np
from sko.tools import func_transformer
from .base import SkoBase
import os
import logging
class Logger(object):
def __init__(self, log_file_name, log_level, logger_name):
# 创建一个logger
self.__logger = logging.getLogger(logger_name)
# 指定日志的最低输出级别,默认为WARN级别
self.__logger.setLevel(log_level)
# 创建一个handler用于写入日志文件
file_handler = logging.FileHandler(log_file_name)
# 创建一个handler用于输出控制台
console_handler = logging.StreamHandler()
# 定义handler的输出格式
formatter = logging.Formatter(
'[%(asctime)s] - %(levelname)s: %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
# 给logger添加handler
self.__logger.addHandler(file_handler)
self.__logger.addHandler(console_handler)
def get_log(self):
return self.__logger
def makedir(dir):
# 创建目录
import os
dir = dir.strip()
isExist = os.path.exists(dir)
if not isExist:
os.makedirs(dir)
return True
else:
return False
def getList():
xushu_list = []
resList = []
xushu_list.extend((1, 4, 5, 7, 10, 11, 14, 15, 18, 19, 22, 23, 25, 28, 30, 31, 34, 35, 37, 39, 41, 44))
for xxx in xushu_list:
resList.append((int)(xxx - 1 + 44))
return resList
def getList44xushu():
xushu_list = []
resList=[]
for xushuNumber in range(44):
xushu_list.append((int)(1+xushuNumber))
# xushu_list.extend((1, 4, 5, 7, 10, 11, 14, 15, 18, 19, 22, 23, 25, 28, 30, 31, 34, 35, 37, 39, 41, 44))
for xxx in xushu_list:
resList.