5
$\begingroup$

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.

$\endgroup$

2 Answers 2

10
$\begingroup$

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.

$\endgroup$
4
  • 1
    $\begingroup$ Julia is also a rising star these days with the "promise" of the convenience of Python and speed of C++. $\endgroup$
    – berkorbay
    Jul 27, 2022 at 8:12
  • $\begingroup$ i did learn c++ language but given the popularity of python, i choose to learn python. $\endgroup$
    – overboxed
    Jul 27, 2022 at 9:15
  • 1
    $\begingroup$ Nice. But not freely available if not affiliated with eligible institution. You should consider adding this to or.stackexchange.com/questions/869/… . $\endgroup$ Jul 27, 2022 at 12:06
  • $\begingroup$ 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. $\endgroup$
    – overboxed
    Jul 28, 2022 at 1:09
2
$\begingroup$

Two good (free) books are:

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

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.