hybris

Particle Swarm Optimizer with fuzzy parameter control

https://github.com/kaeryv/hybris

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (5.1%) to scientific vocabulary

Keywords

fuzzy-control fuzzy-logic global-optimization optimization-algorithms particle-swarm-optimization
Last synced: 6 months ago · JSON representation ·

Repository

Particle Swarm Optimizer with fuzzy parameter control

Basic Info
  • Host: GitHub
  • Owner: Kaeryv
  • Language: C
  • Default Branch: main
  • Homepage: http://kaeryv.be/
  • Size: 1.94 MB
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
fuzzy-control fuzzy-logic global-optimization optimization-algorithms particle-swarm-optimization
Created almost 3 years ago · Last pushed 12 months ago
Metadata Files
Readme Citation

README.md

Hybris-Python

Installation

To install from this git repo in a virtualenv:

bash pip install 'hybris-py @ git+https://github.com/Kaeryv/Hybris'

If you are installing this software on a distributed cluster with different architectures, prefer an explicit:

bash CFLAGS="-march=x86-64 -O2" pip install 'hybris-py @ git+https://github.com/Kaeryv/Hybris'

for maximum compatibility.

Getting started

Optimizing any function

An optimization of function Sphere can be conducted as follows

```python def objective_function(X): return np.mean(np.power(X, 2), axis=-1)

from hybris.optim import ParticleSwarm opt = ParticleSwarm(20, [10, 0], max_fevals=200) opt.vmin = -5.0, opt.vmax = 5.0 # Boundaries opt.reset(456349)

while not opt.stop(): decisionvariables = opt.ask() objectivevalues = objectivefunction(decisionvariables) opt.tell(objective_values)

Show the resulting profile

import matplotlib.pyplot as plt plt.semilogy(opt.profile) plt.savefig("Profile.png") ```

Optimizing the optimizer

To do meta-optimization, any categorical optimizer can be used. We provide a simplified way to do so in the meta module. ```python from hybris.meta import optimize_self

Optimizing controls for omega and hybridation with QPSO

prof = optimize_self("1001000", 43) import matplotlib.pyplot as plt plt.plot(prof) plt.show() ```

Owner

  • Login: Kaeryv
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Roy
    given-names: Nicolas
    orcid: https://orcid.org/0000-0001-5417-2834
title: "Hybris: Evolvable Fuzzy Particle Swarm Optimization"
version: 1.0.0
doi: 10.5281/zenodo.10390666
date-released: 2023-12-15
url: https://github.com/Kaeryv/Hybris

GitHub Events

Total
  • Push event: 3
Last Year
  • Push event: 3

Dependencies

requirements.txt pypi
  • matplotlib *
  • numpy *
  • tqdm *