partical swarm optimization constraint optimization solver
Project description
Particle Swarm Optimization Constraint Optimization Solver
Arguments
Name | Type | Default Value |
---|---|---|
particle_size | int | 2000 |
max_iter | int | 1000 |
sol_size | int | 7 |
fitness | function | null |
constraints | a list of functions | null |
Usage
Transform constraints, it becomes:
Note: In order to faster search optimal solutions, please initialize solutions with specific low and high.
import psoco
import math
def objective(x):
'''create objectives based on inputs x as 2D array'''
return (x[:, 0] - 2) ** 2 + (x[:, 1] - 1) ** 2
def constraints1(x):
'''create constraint1 based on inputs x as 2D array'''
return x[:, 0] - 2 * x[:, 1] + 1
def constraints2(x):
'''create constraint2 based on inputs x as 2D array'''
return - (x[:, 0] - 2 * x[:, 1] + 1)
def constraints3(x):
'''create constraint3 based on inputs x as 2D array'''
return x[:, 0] ** 2 / 4. + x[:, 1] ** 2 - 1
def new_penalty_func(k):
'''Easy Problem can use \sqrt{k}'''
return math.sqrt(k)
constraints = [constraints1, constraints2, constraints3]
num_runs = 10
# random parameters lead to variations, so run several time to get mean
for _ in range(num_runs):
pso = psoco.PSOCO(sol_size=2, fitness=objective, constraints=constraints)
pso.h = new_penalty_func
pso.init_Population(low=0, high=1) # x并集的上下限,默认为0和1
pso.solve()
# best solutions
x = pso.gbest.reshape((1, -1))
Reference
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
psoco-0.0.8.tar.gz
(3.9 kB
view details)
File details
Details for the file psoco-0.0.8.tar.gz
.
File metadata
- Download URL: psoco-0.0.8.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a18bd142a46e314172a4a878d3c596ef58205a43b6ac1415484913327cafc0a9 |
|
MD5 | 265bffae4a8355cfe2ec3f6c675292f4 |
|
BLAKE2b-256 | 964a63d4367dca59e1f86b6131cbde5990d0f9c7b5e2ff45a5e98877d2cfbb26 |