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

Citation

@article{song2024sais,
  title={SAIS: A Novel Bio-Inspired Artificial Immune System Based on Symbiotic Paradigm},
  author={Song, Junhao and Yuan, Yingfang and Pang, Wei},
  journal={arXiv preprint arXiv:2402.07244},
  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.2.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.3.2-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for sais-0.3.2.tar.gz
Algorithm Hash digest
SHA256 64daab5340d48b432fcc66ddef8d31091e759ecc82a85421e48ef3d26a8e4e00
MD5 2d8b6fa6cb06cd86cf4f73dc557547b4
BLAKE2b-256 48d61862bf1669e00471cb56e89585d2a06df769f61676f9a93c232ceb75c67c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for sais-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7d4c25f8609c419d76e84098f61cd200400f4180f485af78821e60341c041ab2
MD5 cd3513000139cd265f0f29207b3ba83d
BLAKE2b-256 6f0abe70794f14c7f011ff11cf3f88feeecc7ca678197c3d5a85c17c375798f5

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