> A linear program is a mathematical model that defines some number of variables, linear constraints, and a linear objective function. When some variables are forced to be integer (ILPs), you can solve a lot of useful problems like scheduling, routing, and packing. That’s basically how all supply chain optimization works.
The author clearly expects the audience to know what an "objective function" is (it's something that you want to optimize, e.g. minimizing fuel on a delivery route).
Furthermore:
> Fast forward to today, when my colleague pointed me to this 2023 paper by Microsoft researchers Beibin Li, Konstantina Mellou, Bo Zhang, Jeevan Pathuri, and Ishai Menache, “Large Language Models for Supply Chain Optimization”. They basically did the same thing as me, but added an LLM to convert natural language queries to their structured query language. The colleague who pointed me to this was working on a similar idea.
The author isn't showing examples of their idea, because another group did the same thing but arguably better, so they linked to that paper instead.
The Linear Assignment Problem: https://www.youtube.com/watch?v=dMJpCnocmGk
Simulated Annealing: https://www.youtube.com/watch?v=21EDdFVMz8I
Genetic Algorithms: https://www.youtube.com/watch?v=Jm4qGteDlZE
Ant Colony Optimization: https://www.youtube.com/watch?v=Jm4qGteDlZE
Whenever I find some mythical free time I'd like to add a video about Constraint Satisfaction, but in the mean time here's my full lecture on CSP: https://www.youtube.com/watch?v=w5tPsbOvkmU
When we think about Explainable AI, we're looking for a "reason the AI made a decision". LLMs are using text prediction to make their decisions, but more traditional AIs use a different heuristic for their selection process. Many of these methodologies are still in use today and get the job done quite well. The "explanation" for these AIs is a (hopefully) intuitive method inspired by other natural phenomena that occurs in the world (like evolution, blacksmithing, literally how ants move).
If however you're looking for AI to explain the "why" element, I will admit that is where the traditional algorithms struggle, but I would add that LLMs aren't much more informative. Its reflection is going to be by guessing what the next right word to say is, which isn't any better or worse than the other models in terms of explainability.
In real life you rarely encounter the vanilla book version of a problem.
Algorithmic approaches tend to break completely if your problem does not follow the exact assumptions.
Model based approaches are more flexible. You just add more variables and constraints, and you use the same solver.
Scheduling problems are a specific type of Optimization problem and many of those problems are NP-hard to exponential in complexity. For example a 25x25 Linear Assignment Problem has 25! potentially configurations, which would take longer than the heat death of the universe to find the global maxima. It doesn't matter what algorithm you use, finding the absolute best solution and proving it is impossible.
I'm not super familiar with Hungarian/Munkres but a quick GPT conversation points out that its O(n^3) isn't really good for those types of large problem sizes. Even if 25! isn't bad, I can always increase my N.
Again, how do you decide if Hungarian is better than Simulated? You find a bunch of problems that both can do and test the algorithms against them. If you get decent enough results, I'm sure there's a science journal out there that would also publish the results.
Sure, if you're using brute force, instead of a polynomial time algorithm.
> It doesn't matter what algorithm you use, finding the absolute best solution and proving it is impossible.
Hard disagree: https://en.wikipedia.org/wiki/Hungarian_algorithm
Linear Assignment seems a very strange choice to illustrate the utility of meta-heuristics, when that particular problem has a polynomial-time solution algorithm that has been known for 70 years.
The course is meant to serve as an intro to AI for students just coming out of a data structures course. Hungarian may be better for producing the optimal answer, I don't know I'd have to try it out. But I know that for my section on meta-heuristics Linear Assignment works as a great vehicle for demonstrating those algorithms.
The second question is, how (and where) are these techniques used in the ML/AI domain?
These techniques won't be as widely advertised not because they're inefficient but rather from a marketing perspective it is often easier to just say "AI". However what I would do if I needed to find use case examples would be to search for research articles on Google Scholar [1]. They haven't hooked up a GPT summarizer to Scholar so you'll have to read through everything, but the game is find papers that DID use the approach.
For example, [2] is a research paper looking at utilizing Simulated Annealing to schedule disaster relief teams.
[1] scholar.google.com
[2] https://link.springer.com/article/10.1007/s00500-021-06425-6
What i was specifically asking for was for some intuitive and explanatory books on Mathematical Optimization/Programming (https://en.wikipedia.org/wiki/Mathematical_optimization and https://en.wikipedia.org/wiki/Linear_programming) independent of AI/ML. This is of course a much older subject with a lot of breadth. However i have not been able to find a intuitive introduction to the subject. Everything has been symbol heavy but not much explanations on the intuitive and model building aspects which imo is crucial to understanding.
A quick Googling pulled up a Linear Programming Using Excel tutorial: https://science.utm.my/procscimath/wp-content/uploads/sites/...
This type of problem was what helped me understand the optimizations. I haven't studied the inner workings of the Simplex method, but it is used in Excel's Solver as well as Apache Commons'.
While it is still computer science oriented, I also like Grokking Algorithms (https://www.manning.com/books/grokking-algorithms). I used it as a source when I was building out some examples when I was teaching Algorithmic analysis and data structures. It does a great job of distilling the problems into a beginner friendly way that will lead you to dig into "what libraries are out there that have implemented this?"