Skip to main content

Algorithm Evolution using Large Language Model

Project description


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

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

aell-0.0.1.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

aell-0.0.1-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file aell-0.0.1.tar.gz.

File metadata

  • Download URL: aell-0.0.1.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.5

File hashes

Hashes for aell-0.0.1.tar.gz
Algorithm Hash digest
SHA256 50c5dd8c6ae459da39126d05786e6c5628dd0c6db8afd5df227e53f9730fed3e
MD5 87cf0efc2ed33ab2df2a9f0d53132c40
BLAKE2b-256 2d5cef0e4fe8cd8c003dac96433d6c2a88f1fdf49c8291f00da13ebf4cd6d729

See more details on using hashes here.

File details

Details for the file aell-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: aell-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.5

File hashes

Hashes for aell-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 843aefebe147219c4576678feb2f60739cea8e3a082546450a0b4da2f8d269e2
MD5 7a5234dc4c5ddba4104e699c9c1b1988
BLAKE2b-256 07cc30abacb4ffb945a9e11c82944704647628cedac141a141e1961e543962ec

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