Metadata-Version: 2.0
Name: pysga
Version: 1.2.5
Summary: Search Group Algorithm metaheuristic optimization method python adaptation
Home-page: https://github.com/Ginklings/pysga
Author: André Ginklings
Author-email: andre.ginklings@gmail.com
License: LICENSE.txt
Keywords: metaheuristic optimization algorithm
Platform: Windows
Platform: Unix
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering
Description-Content-Type: text/markdown
Provides-Extra: full
Requires-Dist: numpy
Provides-Extra: full
Requires-Dist: docutils; extra == 'full'
Requires-Dist: kivy; extra == 'full'
Requires-Dist: kivy-deps.angle (==0.1.9); extra == 'full'
Requires-Dist: kivy-deps.glew (==0.1.12); extra == 'full'
Requires-Dist: kivy-deps.gstreamer (==0.1.17); extra == 'full'
Requires-Dist: kivy-deps.sdl2 (==0.1.22); extra == 'full'
Requires-Dist: pygments; extra == 'full'
Requires-Dist: pypiwin32; extra == 'full'

# pysga
A python adaptation to matlab Search Group Algorithm code

The Search Group Algorithm (SGA) is a metaheuristic optimization method for nonlinear, nonconvex, nonsmooth, multimodal, bounded optimization problems. You may also find a tutorial in a pdf file, which is a step by step explanation about how to use the SGA code.
The sections and equations cited in this file refer to the paper that presented the SGA:
M.S. Gonçalves, R.H. Lopez, L.F.F. Miguel, Search group algorithm: A new metaheuristic method for the optimization of truss structures, Computers & Structures, 153:165-184, 2015. DOI: 0.1016/j.compstruc.2015.03.003
This paper may also be download at Research Gate:

https://www.researchgate.net/publication/274253521_Search_group_algorithm_A_new_metaheuristic_method_for_the_optimization_of_truss_structures

or from science direct at:

http://www.sciencedirect.com/science/article/pii/S0045794915000851

The m-files original codes is provide from https://www.mathworks.com/matlabcentral/fileexchange/50598-search-group-algorithm-matlab-code

## Installation:

### Requeriments:
Actually is working in python 3.x. The following modules are necessary:
* numpy (all)
* kivy (for app only)

### Install
Use pip to install. For only the function without GUI App:
```bash
pip install pysga
```

This will install numpy if necessary.

For GUI App:
```bash
pip install pysga[full]
```

This will install the kivy module and dependencies. For any error, consult de kivy documentation.

## App example:
```python
from pysga.sgaApp import SearchGroupAlgorithmApp
from kivy.config import Config
Config.set('graphics', 'width', '500')
Config.set('graphics', 'height', '600')
app = SearchGroupAlgorithmApp()
app.run()
```

Put a fobj_function.py file in current directory and define your objective function as fobj function.

When run the app, choose the from file option and run the optimizer.

![Alt text](OptimizationParams.png?raw=true "Pameters of SGA optimizer")

![Alt text](FunctionParams.png?raw=true "Function configuration")

## Call SGA in python code:

See the example in github website.



