Some problems are easy. Like the matching problem in CCCS 620: turn it into a network flow problem and voilà, there is an efficient (deterministic polynomial time) solution algorithm. Some are hard. Like the scheduling problem in CCCS 620: no known approach is guaranteed to produce an optimal solution in a reasonable amount of time. We start off CCCS 660 with another problem of this kind, one for which we have to make do with what happens to be at hand: we will leverage an efficient algorithm to a simpler problem to arrive at an approximate solution, and then throw a heuristic into the mix to try to improve upon that.
This module will help you do the following:
Browse the textbook by Taillard (that is conveniently focused on the problem we will be using to explore these concepts) for a few minutes to get used to the vocabulary that awaits you in the live session. Yes, there are 287 pages in it. No, you do not have to look at all of them. Just skim it for a bit so you can later recall having seen things there if anything related to metaheuristics poses challenges to you later in life.
After browsing the above textbook for at least a few minutes, put it away and then carry out the following thought exercise without consulting further sources: In your own words, try to capture or at least speculate on your present understanding of what are the key differences between an algorithm, a heuristic, and a metaheuristic. Please do not look it up specificallyor ask an AI assistant to do this for you. It is completely acceptable to be confused or mistaken and elaborate educated guesses are most welcome.