5

I want to learn about metaheuristics and start building one to solve combinatorial optimization which is pretty hard to solve. I am looking for book recommendation or any learning experience to learn this topic. Python preferred for the programming language but i'm open to anything and not limited to.

overboxed
  • 593
  • 1
  • 12

2 Answers2

10

The most famous book on metaheuristics is probably the Handbook of Metaheuristics:

Michel Gendreau and Jean-Yves Potvin. 2010. Handbook of Metaheuristics (2nd. ed.). Springer Publishing Company, Incorporated.

which is freely available here. It includes a large range of metaheuristics such as Simulated Annealing, Tabu-Search, Variable Neighborhood Search or Genetic Algorithms.

Code wise I would suggest you to start with a problem where you find enough resources such as the TSP and a metaheuristic that you think is easy to implement (personally I started with Simulated Annealing). If you do not have experience with any other programming language, Python is a good choice, because it is fast to learn. However, starting with another language such as C++ might also be a good choice, because it will teach you the basics of programming and is more performant.

PeterD
  • 1,501
  • 4
  • 16
  • 1
    Julia is also a rising star these days with the "promise" of the convenience of Python and speed of C++. – berkorbay Jul 27 '22 at 08:12
  • i did learn c++ language but given the popularity of python, i choose to learn python. – overboxed Jul 27 '22 at 09:15
  • 1
    Nice. But not freely available if not affiliated with eligible institution. You should consider adding this to https://or.stackexchange.com/questions/869/what-are-good-reference-books-for-introduction-to-operations-research . – Mark L. Stone Jul 27 '22 at 12:06
  • is there a book in which they discuss about the theory first and then implemented with the code? I really looking for this resources material. – overboxed Jul 28 '22 at 01:09
2

Two good (free) books are:

If you want to try Julia, this is a good start point: https://jmejia8.github.io/Metaheuristics.jl/stable/