Skip to main content

Symbiotic Artificial Immune Systems

Project description

SAIS: Symbiotic Artificial Immune Systems

Symbiotic

Introduction

SAIS (Symbiotic Artificial Immune Systems) is a novel Artificial Immune System inspired by symbiotic relationships observed in biology. It leverages the three key stages of symbiotic relationships—mutualism, commensalism, and parasitism—for population updating, as seen in the Symbiotic Organisms Search (SOS) algorithm. This approach effectively tackles the challenges associated with large population sizes and enhances population diversity, issues that traditional AIS and SOS algorithms struggle to address efficiently. This project aims to provide an open-source implementation of the SAIS algorithm to foster innovation and research in bio-inspired computing and immune-inspired algorithms.

Publication

The paper has been published in the Proceedings of the Genetic and Evolutionary Computation Conference (GECCO '24 Companion).

The preprint is available on arXiv.

Features

  • Implementation of the Symbiotic Artificial Immune Systems algorithm.
  • Easy to calculate the objective value of the function.
  • Customizable for different optimisation needs.
  • Support for multiple benchmark functions.

Quick Start

Ensure the following dependencies are installed on your system:

  • Python 3.x
  • numpy

Install sais using pip:

pip install sais

Here's a simple example of how to use the SAIS package to optimise a function:

from sais import run

# define your benchmark number and population size
population_size = 2000
# number from Benchmarks List
benchmark_number = 1

run(population_size, benchmark_number)

Example outputs:

Starting SAIS for benchmark 1 with population size 2000.
Iterations Number: 8
Running Time: 0.18377017974853516 Secounds
Best Fitness: 4.523554492464579e-10
Best Antibody: [2.9999822  0.49999976]

How to get the value corresponding to the target point on the function:

import numpy as np
from sais import benchmark_result


x = np.random.uniform(np.pi, np.pi, 2)
y = sais.benchmark_result(x, 2)
print(x, y)

Benchmarks List

### Benchmarks (Name, Range, Global Minimum)
# F1 = Beale [-4.5; 4.5]; 0
# F2 = Easom [-100,100]; -1
# F3 = Matyas [-10,10]; 0
# F4 = Bochachvesky 1 [-100,100]; 0
# F5 = Booth [-10, 10]; 0
# F6 = Michalewicz 2[0,pi]; -1.8013
# F7 = Schaffer [-100; 100]; 0
# F8 = Six Hump Camel Back [-5; 5]; -1.03163
# F9 = Bochachvesky 2 [-100,100]; 0
# F10 = Bochachvesky 3 [-100,100]; 0
# F11 = Shubert [-10,10]; -186.73
# F12 = Colville [-10,10]; 0
# F13 = Michalewicz 5 [0,pi]; -4.6877
# F14 = Zakharov[-5,10]; 0
# F15 = Michalewicz 10 [0,pi]; -4.6877
# F16 = Step [-5.12; 5.12]; 0
# F17 = Sphere [-100,100]; 0
# F18 = SumSquares [-10, 10]; 0
# F19 = Quartic [-1.28,1.28]; 0
# F20 = Schwefel 2.22 [-10,10]; 0
# F21 = Schwefel 1.2 [-10,10]; 0
# F22 = Rosenbrock [-30,30]; 0
# F23 = Dixon-Price [-10, 10]; 0
# F24 = Rastrigin [-5.12; 5.12];
# F25 = Griewank [-600,600]; 0
# F26 = Ackley [-600; 600]; 0

SAIS Flowchart

Flowchart

Contact

For any questions or suggestions, please contact us via:

License

This project is licensed under the Apache 2.0 License.

Citation

@inproceedings{song2024sais,
  title={SAIS: A Novel Bio-Inspired Artificial Immune System Based on Symbiotic Paradigm},
  author={Song, Junhao and Yuan, Yingfang and Pang, Wei},
  booktitle={Proceedings of the Genetic and Evolutionary Computation Conference Companion},
  pages={2115--2118},
  year={2024}
}

Acknowledgements

We extend our sincere thanks to Dr. Wei Pang for his expert guidance and to Dr. Yingfang Yuan for his pivotal contributions to this project. We also acknowledge Heriot-Watt University and Imperial College London for their support and the academic environment that facilitated our research.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sais-0.3.3.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

sais-0.3.3-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file sais-0.3.3.tar.gz.

File metadata

  • Download URL: sais-0.3.3.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sais-0.3.3.tar.gz
Algorithm Hash digest
SHA256 c52a239bb876a68a0e41d4f00cb1c57cebbb6172d7bedc5cc7f8c631ea0a58d5
MD5 d9d51419f815160bf0d76269570ea70a
BLAKE2b-256 ea70a26c04e6ff290641448d5cdb552cad396086a705638b765db5df474093dc

See more details on using hashes here.

File details

Details for the file sais-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: sais-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sais-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cbc16cac2c1b26b28b08e9c6669fb3bf1d76b47e9deb0211a0b738f850213153
MD5 0cf9cc8456683e57717ea929f58c36a3
BLAKE2b-256 0bcc19892aee344ee377b3e65edb8c59afc050ff24d765ba38d8fa3e9b90c14e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page