Skip to main content

AEL: Algorithm Evolution using Large Language Model

[![Github][Github-image]][Github-url] [![License][License-image]][License-url] [![Releases][Releases-image]][Releases-url] [![Web Demo][Installation-image]][Web Demo-url] [![Wiki][Wiki-image]][Wiki-url]

This code provides a framework for **Evolutionary Computation** + **Large Language Model** for automatic algorithm design. ael

Introduction

If you are interested on LLM&Opt or AEL, you can:

  1. Join LLM4Opt in Slack,
  2. Join Wechat Group,
  3. Contact us through email.

If you encounter any difficulty using the code, you can contact use thought the above or submit an [issue]

Our implementation of FunSearch, Deepmind as the baseline, can be found here

A Quick Web Demo

A Quick Web Demo can be found here

Examples using AEL

Step 1: Install AEL

cd ael

pip install .

Step 2: Try Example: Greedy Algorithm for TSP

cd ael/examples/greedy_tsp

python runAEL.py

More Examples using AEL (Code & Paper)

Combinatorial Optimization

  1. Online Bin Packing, greedy heuristic, code, [paper]
  2. TSP, construct heuristic, code, [paper]
  3. TSP, guided local search, [code], [paper]
  4. Flow Shop Scheduling Problem (FSSP), guided local search, [code], [paper]

Machine Learning

  1. Attack, , code, paper

Bayesian Optimization

Use AEL in You Application

A Step-by-step guide is provided in here

Files in ael

  • ael.py: main ael
  • ec:
    • interface_EC.py: interface for ec
    • evolution.py: evolution operators
    • management.py: population management
    • selection.py: parents selection
  • llm
    • interface_LLM.py: interface for LLM
    • api_api2d.py: api2d api for GPT
    • others
  • utils:
    • some util functions

Current support:

  • ECs:
    • 1i: design a new algorithm without any in-context inf.
    • e1: design an algorithm totally different from existing ones
    • e2: identify the common patterns in existing algorithms, design a new algorithm
    • m1: design a new algorithm modified from existing one
    • m2: do not design new algorithm, try different parameter settings
  • LLMs:
    • API2D (https://api2d.com/) or OpenAI interface for GPT3.5 and GPT4. (Paid)
    • Huggingface interface (Free), in testing
    • Local model Llama2, in testing
    • If you want to use other LLM or if you want to use your own GPT API or local LLMs, please add your interface in ael/llm
  • population management:
    • delete worst
  • selection:
    • probability

Reference Papers

  1. AEL: "Fei Liu, Xialiang Tong, Mingxuan Yuan, and Qingfu Zhang, Algorithm Evolution Using Large Language Model. arXiv preprint arXiv:2311.15249. 2023." https://arxiv.org/abs/2311.15249
  2. Guided Local Search: "Fei Liu, Xialiang Tong, Mingxuan Yuan, Xi Lin, Fu Luo, Zhenkun Wang, Zhichao Lu, and Qingfu Zhang, An Example of Evolutionary Computation+ Large Language Model Beating Human: Design of Efficient Guided Local Search" https://arxiv.org/abs/2401.02051
  3. Adversarial Attacks: Pin Guo, Fei Liu, Xi Lin, Qingchuan Zhao, and Qingfu Zhang, L-AutoDA: Leveraging Large Language Models for Automated Decision-based Adversarial Attacks. arXiv preprint arXiv:2401.15335. 2024.

License

MIT

Metadata

Release files for aell 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aell 0.0.1
File Size Uploaded
aell-0.0.1.tar.gz 13.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aell 0.0.1
File Interpreter ABI Platform
aell-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 27.8 kB

Release files / aell-0.0.1.tar.gz

Download URL aell-0.0.1.tar.gz
Size 13.1 kB
Tags Source
SHA-256 checksum
How to use checksums
50c5dd8c6ae459da39126d05786e6c5628dd0c6db8afd5df227e53f9730fed3e
BLAKE2b-256 checksum
How to use checksums
2d5cef0e4fe8cd8c003dac96433d6c2a88f1fdf49c8291f00da13ebf4cd6d729
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.5

Release files / aell-0.0.1-py3-none-any.whl

Download URL aell-0.0.1-py3-none-any.whl
Size 14.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
843aefebe147219c4576678feb2f60739cea8e3a082546450a0b4da2f8d269e2
BLAKE2b-256 checksum
How to use checksums
07cc30abacb4ffb945a9e11c82944704647628cedac141a141e1961e543962ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.5

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page