Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/huidaecho/ispso
Isolated-Speciation-based Particle Swarm Optimization
https://github.com/huidaecho/ispso
algorithm optimization particle-swarm-optimization
Last synced: 3 days ago
JSON representation
Isolated-Speciation-based Particle Swarm Optimization
- Host: GitHub
- URL: https://github.com/huidaecho/ispso
- Owner: HuidaeCho
- License: gpl-3.0
- Created: 2017-08-05T11:02:48.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-05-21T19:50:42.000Z (6 months ago)
- Last Synced: 2024-05-21T20:52:53.693Z (6 months ago)
- Topics: algorithm, optimization, particle-swarm-optimization
- Language: R
- Size: 46.8 MB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# ISPSO
Isolated-Speciation-based Particle Swarm Optimization <>ispso.R implements the Isolated-Speciation-based Particle Swarm Optimization algorithm published in [Cho, Huidae, Kim, Dongkyun, Olivera, Francisco, Guikema, Seth D., 2011. Enhanced Speciation in Particle Swarm Optimization for Multi-Modal Problems. European Journal of Operational Research 213 (1), 15--23](http://www.sciencedirect.com/science/article/pii/S0377221711001810).
ISPSO is a multi-modal optimization algorithm that aims to discover global and local minima. This algorithm has successfully been used in stochastic rainfall generation, climate change, storm tracking, hydrology, and hydraulics studies.
Install `fOptions` from `https://r-forge.r-project.org/`:
```R
install.packages("fOptions", repos="https://r-forge.r-project.org/")
```## Griewank Function
```
source("ispso.R")
source("funcs.R")s <- list()
s$f <- griewank
s$D <- 2
s$xmin <- rep(-14, s$D)
s$xmax <- rep(14, s$D)
s$S <- 10 + floor(2*sqrt(s$D))
s$vmax <- (s$xmax-s$xmin)*0.1
s$vmax0 <- diagonal(s)*0.001
s$maxiter <- 2000
s$xeps <- 0.001
s$feps <- 0.0001
s$rprey <- diagonal(s)*0.0001
s$age <- 10
s$rspecies <- diagonal(s)*0.1
s$rnest <- diagonal(s)*0.01
s$.plot_distance_to_solution <- 0.01ret <- ispso(s)
```![Finding global and local minima in the Griewank function](griewank.gif "Finding global and local minima in the Griewank function")
## License
Copyright (C) 2008, Huidae Cho <>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.You should have received a copy of the GNU General Public License
along with this program. If not, see <>.