A new unconstrained global optimization method based on clustering and parabolic approximation
Project description
Table of contents
General Info
GOBC-PA: A new unconstrained global optimization method based on clustering and parabolic approximation (GOBC-PA) is proposed. Although the proposed method is basically similar to other evolutionary and stochastic methods, it represents a significant advancement of global optimization technology for four important reasons. First, it is orders of magnitude faster than existing optimization methods for global optimization of unconstrained problems. Second, it has significantly better repeatability, numerical stability, and robustness than current methods in dealing with high dimensionally and many local minima functions. Third, it can easily and faster find the local minimums using the parabolic approximation instead of gradient descent or crossover operations. Fourth, it can easily adapted to any theoretical or industrial systems which are using the heuristic methods as an intelligent system. In this study, we assume that the best cluster center gives the position of the possible global optimum. The usage of clustering and curve fitting techniques brings multi-start and local search properties to the proposed method. The experimental studies show that the proposed methodology is simple, faster and, it demonstrates a superior performance when compared with some state of the art methods.
Arguments: (input)
- func - objective function as text
- rang - range of search space
- target - target function value. That value used for measuring error.
- N - dimension number of objective function
- ite - Maximum iteration
- pop_size - population size
Arguments: (output)
- Best_point - Global minimum points
- Best_result - Global minimum value on global minimum points
- perf - errors list
- broken_epoch - epoch number of code break
- performance - best points and their objective value on each epoch
Technologies
Project is created with:
- Python 3.7
Setup
To run this project, install it locally using pip:
$ pip install GOBC-PA
How to use
from GOBC_PA.GOBC_PA import GOBC_PA
Best_point, Best_result, perf, broken_epoch, performance = GOBC_PA(func,rang,target,N,ite,pop_size)
Example
import numpy as np
from GOBC_PA.GOBC_PA import GOBC_PA
def func(x): Rastrigin function
y= x[0]**2+x[1]**2-np.cos(18*x[0])-np.cos(18*x[1])
return y
# min range values for each dimension are in the first row, max range values for each dimension are in the second row
rang = np.array([[-1,-1],[1, 1]])
target = -2
N,ite,pop_size = 2,1000,60
Best_point, Best_result, perf, broken_epoch, performance = GOBC_PA(func,rang,target,N,ite,pop_size)
Example2
You can make an example like below to see how it sorts files in console output.
import numpy as np
from GOBC_PA.GOBC_PA import GOBC_PA
def func2(x): # Goldstein-Price's Function
y = (1 + ((x[0] + x[1] + 1) ** 2) * (
19 - 14 * x[0] + 3 * x[0] ** 2 - 14 * x[1] + 6 * x[0] * x[1] + 3 * x[1] ** 2)) * (
30 + ((2 * x[0] - 3 * x[1]) ** 2) * (
18 - 32 * x[0] + 12 * x[0] ** 2 + 48 * x[1] - 36 * x[0] * x[1] + 27 * x[1] ** 2))
return y
rang2 = np.array([[-2,-2],[2, 2]])
target2=3
N,ite,pop_size = 2,1000,60
Best_point, Best_result, perf, broken_epoch, performance = GOBC_PA(func2,rang2,target2,N,ite,pop_size)
Cite
Pence, I., Cesmeli, M. S., Senel, F. A., & Cetisli, B. (2016). A new unconstrained global optimization method based on clustering and parabolic approximation. Expert Systems with Applications, 55, 493-507.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.