UsageΒΆ
To use pyJaya:
from pyJaya.variants.clasic import JayaClasic
from pyJaya.variables import VariableFloat
def himmelblau(solution):
"""Himmelblau function
Args:
solution (Solution): Candidate solution
Returns:
float: Himmelblau function value
"""
return (
solution[0] ** 2 + solution[1] - 11) ** 2 +\
(solution[0] + solution[1] ** 2 - 7) ** 2
def himmelblauConstraintOne(solution):
"""First restriction
Args:
solution (Solution): Candidate solution
Returns:
bool: True if it meets the constraint, False otherwise
"""
return (26 - (solution[0] - 5) ** 2 - solution[1] ** 2) >= 0
def himmelblauConstraintTwo(solution):
"""Second restriction
Args:
solution (Solution): Candidate solution
Returns:
bool: True if it meets the constraint, False otherwise
"""
return (20 - 4 * solution[0] - solution[1]) >= 0
print("RUN: JayaClasic")
# Two variables in the range [-6.0, 6.0]
listVars = [VariableFloat(-6.0, 6.0) for i in range(2)]
# JayaClasic with initial population of 100 solutions and two constrains.
ja = JayaClasic(
100, listVars, himmelblau,
listConstraints=[himmelblauConstraintOne, himmelblauConstraintTwo])
# Execution of 100 iterations and obtaining better and worse solution
print(ja.run(100).getBestAndWorst())