Skip to content

Latest commit

 

History

History
83 lines (44 loc) · 3.19 KB

optimization.md

File metadata and controls

83 lines (44 loc) · 3.19 KB

Optimization algorithms

Table of contents


Linear programming

🔗

🎥


Dynamic programming

Dynamic programming is a method of solving optimization problems by breaking them into sub-problems and then recursively finding the optimal solutions to the sub-problems. All problems amenable to dynamic programming solution share the following two properties: optimal substructure (the optimal solution can be obtained given the optimal solutions of subproblems), and overlapping subproblems (sub-problems share sub-sub-problems).

🔗

🎥

📖


Knapsack


Linear partition

Problem: partition (without reordering) a set of non-negative integral numbers into k ranges such that the maximum sum over all the ranges is minimized.

📝

  • This problem has another solution based on binary searching the answer in the space of possible answers that is obtained using a greedy approach.

📖


Longest increasing subsequence

See Sequence algorithms – Longest increasing subsequence.