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.
Introduction
If you are interested on LLM&Opt or AEL, you can:
- Join LLM4Opt in Slack,
- Join Wechat Group,
- 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
- Online Bin Packing, greedy heuristic, code, [paper]
- TSP, construct heuristic, code, [paper]
- TSP, guided local search, [code], [paper]
- Flow Shop Scheduling Problem (FSSP), guided local search, [code], [paper]
Machine Learning
- 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:
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:
- selection:
Reference Papers
- 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
- 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
- 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