Skip to content

Latest commit

 

History

History
201 lines (142 loc) · 7.46 KB

README_CN.md

File metadata and controls

201 lines (142 loc) · 7.46 KB

EoH: Evolution of Heuristics

进化计算+大模型 自动算法设计平台

English Version 英文版本

Github License Releases Wiki


演变计算 + 大型语言模型的平台,用于自动算法设计。

eoh


新闻 🔥


简介

启发式算法在解决复杂的搜索和优化问题时是不可或缺的。然而,手动启发式设计是繁琐的,需要大量的人类直觉和经验。

EOH引入了一种新的范式,利用大型语言模型(LLMs)和演变计算(EC)之间的协同作用进行自动启发式设计(AHD)。思维和代码在演变框架内的共同演化为卓越的AHD性能,同时降低了计算成本。

eoh

EOH在分钟/小时内设计出了非常有竞争力的算法/启发式方法。例如,在在线装箱问题上,EoH自动设计出新的最优启发式算法,优于人工设计算法和同期谷歌工作FunSearch。

下图显示了在在线装箱问题上EOH的演变。我们概述了在演变过程中对最佳结果有所贡献的关键思想和相应的代码。此外,我们标记了导致改进的提示策略。最后,我们展示了最终种群中的最优启发式方法,并将其与人类设计的启发式方法和来自FunSearch的启发式方法进行了比较。

ael

如果您发现EoH对您的研究或应用项目有所帮助:

@inproceedings{fei2024eoh,
    title={Evolution of Heuristics: Towards Efficient Automatic Algorithm Design Using Large Language Model},
    author={Fei Liu, Xialiang Tong, Mingxuan Yuan, Xi Lin, Fu Luo, Zhenkun Wang, Zhichao Lu, Qingfu Zhang},
    booktitle={International Conference on Machine Learning (ICML)},
    year={2024},
    url={https://arxiv.org/abs/2401.02051}
}

如果您对LLM4Opt或EoH感兴趣,您可以:

如果您在使用代码时遇到任何困难,请通过上述方式与我们联系或提交[问题]。

系统要求

  • python >= 3.10
  • numba
  • numpy
  • joblib

EoH示例用法

第1步:安装EoH 我们建议在具有python>=3.10的conda环境中安装和运行EoH

cd eoh

pip install .

第2步:尝试示例: 在开始前设置您的端点和密钥以远程LLM或在启动之前设置您的本地LLM!

例如: 把 llm_api_endpoint 设置为 "api.deepseek.com", 把 llm_api_key 设置为 "your key",把 llm_model 设置为 "deepseek-chat".

from eoh import eoh
from eoh.utils.getParas import Paras

# Parameter initilization #
paras = Paras() 

# Set parameters #
paras.set_paras(method = "eoh",    # ['ael','eoh']
                problem = "bp_online", #['tsp_construct','bp_online']
                llm_api_endpoint = "xxx", # set your LLM endpoint
                llm_api_key = "xxx",   # set your LLM key
                llm_model = "gpt-3.5-turbo-1106",
                ec_pop_size = 5, # number of samples in each population
                ec_n_pop = 5,  # number of populations
                exp_n_proc = 4,  # multi-core parallel
                exp_debug_mode = False)

# initilization
evolution = eoh.EVOL(paras)

# run 
evolution.run()
示例1:旅行商问题的构造算法
cd examples/tsp_construct

python runEoH.py
示例2:在线装箱问题

(在您的个人计算机上在30分钟内生成新的最佳启发式方法并击败Funsearch! i7-10700 2.9Ghz, 32GB)

cd examples/bp_online

python runEoH.py
示例3:使用EoH解决您的本地问题
cd examples/local_problem

python runEoH.py

使用EoH平台的更多示例(代码和论文)

组合优化

  • 在线装箱问题 (BP),贪婪启发式方法,代码, [论文]
  • 旅行商问题 (TSP),构造启发式方法,代码, [论文]
  • 旅行商问题 (TSP),引导式局部搜索,[代码], [论文]
  • 流水车间调度问题(FSSP),引导式局部搜索,[代码], [论文]

机器学习

  • 图像攻击,[代码], 论文

贝叶斯优化

  • 获取函数自动设计,论文

数学

  • 可接受集合

物理学

  • 计算流体动力学

在您的应用程序中使用EoH

提供了这里的逐步指南(即将推出)

大模型设置

  1. 远程LLM + API(例如, GPT3.5, Deepseek, Gemini Pro) (推荐!):
  1. 本地LLM部署 + API(例如,Llamacode,instruct Llama,gemma,deepseek等):
  1. 自己的实现:
  • 如果您想使用其他LLM或自己的GPT API或本地LLMs,请在ael/llm中添加您的接口

关于LLM4Opt的相关工作

欢迎访问大模型与优化参考文献和研究论文收藏

贡献者

Rui Zhang Zhiyuan Yang Ping Guo
Shunyu Yao