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. Link to the paper

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 License 2.0.

Citation

@misc{song2024sais,
      title={SAIS: A Novel Bio-Inspired Artificial Immune System Based on Symbiotic Paradigm}, 
      author={Junhao Song and Yingfang Yuan and Wei Pang},
      year={2024},
      eprint={2402.07244},
      archivePrefix={arXiv},
      primaryClass={cs.NE}
}

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.1.9.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sais-0.1.9-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sais-0.1.9.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for sais-0.1.9.tar.gz
Algorithm Hash digest
SHA256 6df39f93793f977534bae637f68300045fea97a0112c6bd6dcbc99eb019f0039
MD5 7622c4fbbd9c9a00cad960d11fab628d
BLAKE2b-256 60f944668d709f1271a2f3c672bc1e6cb105526426c9b4be4779ef5c88b52826

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sais-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for sais-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 883ce9b229eedd48b9b7a6a954a9724f60b320ab4792cfcfaf819dcce7653b6c
MD5 d459d42bbbe93b700611e006228a73b6
BLAKE2b-256 04c046a77f94d5c21f3904f9452ab8bacfb863cf97f97d788c1136ac4f38a573

See more details on using hashes here.

Supported by

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