# -*- coding: utf-8 -*- import numpy as np import random # 評価関数: z = x^2 + y^2 def criterion(x, y): z = x * x + y * y return z # 粒子の位置の更新を行う関数 def update_position(x, y, vx, vy): new_x = x + vx new_y = y + vy return new_x, new_y # 粒子の速度の更新を行う関数 def update_velocity(x, y, vx, vy, p, g, w=0.5, ro_max=0.14): #パラメーターroはランダムに与える ro1 = random.uniform(0, ro_max) ro2 = random.uniform(0, ro_max) #粒子速度の更新を行う