This document provides an overview of dynamic programming. It begins by explaining that dynamic programming is a technique for solving optimization problems by breaking them down into overlapping subproblems and storing the results of solved subproblems in a table to avoid recomputing them. It then provides examples of problems that can be solved using dynamic programming, including Fibonacci numbers, binomial coefficients, shortest paths, and optimal binary search trees. The key aspects of dynamic programming algorithms, including defining subproblems and combining their solutions, are also outlined.
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...Simplilearn
This presentation on 'What Is Dynamic Programming?' will acquaint you with a clear understanding of how this programming paradigm works with the help of a real-life example. In this Dynamic Programming Tutorial, you will understand why recursion is not compatible and how you can solve the problems involved in recursion using DP. Finally, we will cover the dynamic programming implementation of the Fibonacci series program. So, let's get started!
The topics covered in this presentation are:
1. Introduction
2. Real-Life Example of Dynamic Programming
3. Introduction to Dynamic Programming
4. Dynamic Programming Interpretation of Fibonacci Series Program
5. How Does Dynamic Programming Work?
What Is Dynamic Programming?
In computer science, something is said to be efficient if it is quick and uses minimal memory. By storing the solutions to subproblems, we can quickly look them up if the same problem arises again. Because there is no need to recompute the solution, this saves a significant amount of calculation time. But hold on! Efficiency comprises both time and space difficulty. But, why does it matter if we reduce the time required to solve the problem only to increase the space required? This is why it is critical to realize that the ultimate goal of Dynamic Programming is to obtain considerably quicker calculation time at the price of a minor increase in space utilized. Dynamic programming is defined as an algorithmic paradigm that solves a given complex problem by breaking it into several sub-problems and storing the results of those sub-problems to avoid the computation of the same sub-problem over and over again.
What is Programming?
Programming is an act of designing, developing, deploying an executlable software solution to the given user-defined problem.
Programming involves the following stages.
- Problem Statement
- Algorithms and Flowcharts
- Coding the program
- Debug the program.
- Documention
- Maintainence
Simplilearn’s Python Training Course is an all-inclusive program that will introduce you to the Python development language and expose you to the essentials of object-oriented programming, web development with Django and game development. Python has surpassed Java as the top language used to introduce U.S.
Learn more at: https://www.simplilearn.com/mobile-and-software-development/python-development-training
Dynamic Programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems, solving each of those subproblems just once, and storing their solutions using a memory-based data structure (array, map,etc).
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...Simplilearn
This presentation on 'What Is Dynamic Programming?' will acquaint you with a clear understanding of how this programming paradigm works with the help of a real-life example. In this Dynamic Programming Tutorial, you will understand why recursion is not compatible and how you can solve the problems involved in recursion using DP. Finally, we will cover the dynamic programming implementation of the Fibonacci series program. So, let's get started!
The topics covered in this presentation are:
1. Introduction
2. Real-Life Example of Dynamic Programming
3. Introduction to Dynamic Programming
4. Dynamic Programming Interpretation of Fibonacci Series Program
5. How Does Dynamic Programming Work?
What Is Dynamic Programming?
In computer science, something is said to be efficient if it is quick and uses minimal memory. By storing the solutions to subproblems, we can quickly look them up if the same problem arises again. Because there is no need to recompute the solution, this saves a significant amount of calculation time. But hold on! Efficiency comprises both time and space difficulty. But, why does it matter if we reduce the time required to solve the problem only to increase the space required? This is why it is critical to realize that the ultimate goal of Dynamic Programming is to obtain considerably quicker calculation time at the price of a minor increase in space utilized. Dynamic programming is defined as an algorithmic paradigm that solves a given complex problem by breaking it into several sub-problems and storing the results of those sub-problems to avoid the computation of the same sub-problem over and over again.
What is Programming?
Programming is an act of designing, developing, deploying an executlable software solution to the given user-defined problem.
Programming involves the following stages.
- Problem Statement
- Algorithms and Flowcharts
- Coding the program
- Debug the program.
- Documention
- Maintainence
Simplilearn’s Python Training Course is an all-inclusive program that will introduce you to the Python development language and expose you to the essentials of object-oriented programming, web development with Django and game development. Python has surpassed Java as the top language used to introduce U.S.
Learn more at: https://www.simplilearn.com/mobile-and-software-development/python-development-training
Dynamic Programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems, solving each of those subproblems just once, and storing their solutions using a memory-based data structure (array, map,etc).
TSP is np- hard problem which has number of solution but it's difficult to find optimal solution . I gave here fast,easy and efficient solution on TSP using one algorithm with good explanation.Hope you understood very well.
Introduction to Dynamic Programming, Principle of OptimalityBhavin Darji
Introduction
Dynamic Programming
How Dynamic Programming reduces computation
Steps in Dynamic Programming
Dynamic Programming Properties
Principle of Optimality
Problem solving using Dynamic Programming
P, NP, NP-Complete, and NP-Hard
Reductionism in Algorithms
NP-Completeness and Cooks Theorem
NP-Complete and NP-Hard Problems
Travelling Salesman Problem (TSP)
Travelling Salesman Problem (TSP) - Approximation Algorithms
PRIMES is in P - (A hope for NP problems in P)
Millennium Problems
Conclusions
it contains the detail information about Dynamic programming, Knapsack problem, Forward / backward knapsack, Optimal Binary Search Tree (OBST), Traveling sales person problem(TSP) using dynamic programming
TSP is np- hard problem which has number of solution but it's difficult to find optimal solution . I gave here fast,easy and efficient solution on TSP using one algorithm with good explanation.Hope you understood very well.
Introduction to Dynamic Programming, Principle of OptimalityBhavin Darji
Introduction
Dynamic Programming
How Dynamic Programming reduces computation
Steps in Dynamic Programming
Dynamic Programming Properties
Principle of Optimality
Problem solving using Dynamic Programming
P, NP, NP-Complete, and NP-Hard
Reductionism in Algorithms
NP-Completeness and Cooks Theorem
NP-Complete and NP-Hard Problems
Travelling Salesman Problem (TSP)
Travelling Salesman Problem (TSP) - Approximation Algorithms
PRIMES is in P - (A hope for NP problems in P)
Millennium Problems
Conclusions
it contains the detail information about Dynamic programming, Knapsack problem, Forward / backward knapsack, Optimal Binary Search Tree (OBST), Traveling sales person problem(TSP) using dynamic programming
Dynamic Programming is an algorithmic paradigm that solves a given complex problem by breaking it into subproblems and stores the results of subproblems to avoid computing the same results again.
Dynamic Programming is one of the most interesting design techniques. The concise idea is to avoid recomputations. Matrix Chain Multiplication and All Pairs Shortest Paths are two interesting applications of this design technique
This presentation discusses the following topics:
Basic features of R
Exploring R GUI
Data Frames & Lists
Handling Data in R Workspace
Reading Data Sets & Exporting Data from R
Manipulating & Processing Data in R
A study on “Diagnosis Test of Diabetics and Hypertension by AI”, Presentation slides for International Conference on "Life Sciences: Acceptance of the New Normal", St. Aloysius' College, Jabalpur, Madhya Pradesh, India, 27-28 August, 2021
A study on “impact of artificial intelligence in covid19 diagnosis”Dr. C.V. Suresh Babu
A study on “Impact of Artificial Intelligence in COVID-19 Diagnosis”, Presentation slides for International Conference on "Life Sciences: Acceptance of the New Normal", St. Aloysius' College, Jabalpur, Madhya Pradesh, India, 27-28 August, 2021
A study on “impact of artificial intelligence in covid19 diagnosis”Dr. C.V. Suresh Babu
Although the lungs are one of the most vital organs in the body, they are vulnerable to infection and injury. COVID-19 has put the entire world in an unprecedented difficult situation, bringing life to a halt and claiming thousands of lives all across the world. Medical imaging, such as X-rays and computed tomography (CT), is essential in the global fight against COVID-19, and newly emerging artificial intelligence (AI) technologies are boosting the power of imaging tools and assisting medical specialists. AI can improve job efficiency by precisely identifying infections in X-ray and CT images and allowing further measurement. We focus on the integration of AI with X-ray and CT, both of which are routinely used in frontline hospitals, to reflect the most recent progress in medical imaging and radiology combating COVID-19.
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Honest Reviews of Tim Han LMA Course Program.pptxtimhan337
Personal development courses are widely available today, with each one promising life-changing outcomes. Tim Han’s Life Mastery Achievers (LMA) Course has drawn a lot of interest. In addition to offering my frank assessment of Success Insider’s LMA Course, this piece examines the course’s effects via a variety of Tim Han LMA course reviews and Success Insider comments.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
Unit 8 - Information and Communication Technology (Paper I).pdfThiyagu K
This slides describes the basic concepts of ICT, basics of Email, Emerging Technology and Digital Initiatives in Education. This presentations aligns with the UGC Paper I syllabus.
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdfTechSoup
In this webinar you will learn how your organization can access TechSoup's wide variety of product discount and donation programs. From hardware to software, we'll give you a tour of the tools available to help your nonprofit with productivity, collaboration, financial management, donor tracking, security, and more.
2. Topics
What
is Dynamic Programming
Binomial Coefficient
Floyd’s Algorithm
Chained Matrix Multiplication
Optimal Binary Search Tree
Traveling Salesperson
2
3. Why Dynamic Programming?
Divide-and-Conquer:
a top-down approach.
Many smaller instances are computed more
than once.
Dynamic
programming: a bottom-up approach.
Solutions for smaller instances are stored in a
table for later use.
3
4. Dynamic Programming
An Algorithm Design Technique
A framework to solve Optimization problems
Elements of Dynamic Programming
Dynamic programming version of a recursive
algorithm.
Developing a Dynamic Programming Algorithm
–
Example: Multiplying a Sequence of Matrices
4
5. Why Dynamic Programming?
• It sometimes happens that the natural way of dividing an
instance suggested by the structure of the problem leads us to
consider several overlapping subinstances.
• If we solve each of these independently, they will in turn
create a large number of identical subinstances.
• If we pay no attention to this duplication, it is likely that we
will end up with an inefficient algorithm.
• If, on the other hand, we take advantage of the duplication and
solve each subinstance only once, saving the solution for later
use, then a more efficient algorithm will result.
5
6. Why Dynamic Programming? …
The underlying idea of dynamic programming is
thus quite simple: avoid calculating the same thing
twice, usually by keeping a table of known results,
which we fill up as subinstances are solved.
• Dynamic programming is a bottom-up technique.
• Examples:
1) Fibonacci numbers
2) Computing a Binomial coefficient
6
7. Dynamic Programming
• Dynamic Programming is a general algorithm design
technique.
• Invented by American mathematician Richard Bellman in
the 1950s to solve optimization problems.
• “Programming” here means “planning”.
• Main idea:
• solve several smaller (overlapping) subproblems.
• record solutions in a table so that each subproblem is
only solved once.
• final state of the table will be (or contain) solution. 7
8. Dynamic Programming
Define
a container to store intermediate
results
Access container versus recomputing results
Fibonacci
–
numbers example (top down)
Use vector to store results as calculated so they
are not re-calculated
8
10. Example: Fibonacci numbers
• Recall definition of Fibonacci numbers:
f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)
for n ≥ 2
• Computing the nth Fibonacci number recursively (topdown):
f(n)
f(n-1)
f(n-2)
+
+
f(n-3)
f(n-2)
f(n-3)
+
f(n-4)
10
11. Fib vs. fibDyn
int fib(int n) {
if (n <= 1)
return n; // stopping conditions
else return fib(n-1) + fib(n-2);
// recursive step
}
int fibDyn(int n, vector<int>& fibList) {
int fibValue;
if (fibList[n] >= 0) // check for a previously computed result and return
return fibList[n];
// otherwise execute the recursive algorithm to obtain the result
if (n <= 1)
// stopping conditions
fibValue = n;
else
// recursive step
fibValue = fibDyn(n-1, fibList) + fibDyn(n-2, fibList);
// store the result and return its value
fibList[n] = fibValue;
return fibValue;
}
11
16. Top down vs. Bottom up
Top
down dynamic programming moves
through recursive process and stores results
as algorithm computes
Bottom up dynamic programming evaluates
by computing all function values in order,
starting at lowest and using previously
computed values.
16
17. Examples of Dynamic Programming Algorithms
• Computing binomial coefficients
• Optimal chain matrix multiplication
• Floyd’s algorithms for all-pairs shortest paths
• Constructing an optimal binary search tree
• Some instances of difficult discrete optimization problems:
• travelling salesman
• knapsack
17
18. A framework to solve Optimization problems
For
–
–
–
each current choice:
Determine what subproblem(s) would remain if this
choice were made.
Recursively find the optimal costs of those
subproblems.
Combine those costs with the cost of the current
choice itself to obtain an overall cost for this choice
Select
a current choice that produced the
minimum overall cost.
18
19. Elements of Dynamic Programming
Constructing solution to a problem by building it up
dynamically from solutions to smaller (or simpler) subproblems
–
–
sub-instances are combined to obtain sub-instances of
increasing size, until finally arriving at the solution of the
original instance.
make a choice at each step, but the choice may depend on the
solutions to sub-problems.
19
20. Elements of Dynamic Programming …
Principle of optimality
–
the optimal solution to any nontrivial instance of a problem is a
combination of optimal solutions to some of its sub-instances.
Memorization (for overlapping sub-problems)
–
–
avoid calculating the same thing twice,
usually by keeping a table of know results that fills up as subinstances are solved.
20
21. Development of a dynamic programming
algorithm
Characterize the structure of an optimal solution
– Breaking a problem into sub-problem
– whether principle of optimality apply
Recursively define the value of an optimal solution
– define the value of an optimal solution based on value of solutions
to sub-problems
Compute the value of an optimal solution in a bottom-up fashion
– compute in a bottom-up fashion and save the values along the
way
– later steps use the save values of pervious steps
Construct an optimal solution from computed information
21
23. Binomial Using Divide & Conquer
Binomial formula:
n − 1 n − 1
C
k − 1 + C k 0 < k < n
n
C =
k
n
n
1
k = 0 or k = n (C or C )
0
n
23
24. Binomial using Dynamic Programming
Just like Fibonacci, that formula is very inefficient
Instead, we can use the following:
(a + b) n = C (n,0)a n + ... + C (n, i )a n −i b i + ... + C (n, n)b n
24
27. Binomial Coefficient
Record the values in a table of n+1 rows and k+1 columns
0
1
2
0
1
1
2
1
3
3
k
1
3
k-1
1
2
…
1
1
3
1
...
k
1
1
…
n-1
1
n
1
n − 1
C
k − 1
n − 1
C
k
n
C
k
27
28. Binomial Coefficient
ALGORITHM Binomial(n,k)
//Computes C(n, k) by the dynamic programming algorithm
//Input: A pair of nonnegative integers n ≥ k ≥ 0
//Output: The value of C(n ,k)
for i 0 to n do
for j 0 to min (i ,k) do
if j = 0 or j = k
C [i , j] 1
else C [i , j] C[i-1, j-1] + C[i-1, j]
return C [n, k]
k
i −1
A( n, k ) = ∑∑1 +
i =1 j =1
=
n
k
k
n
i =1
i =K +1
∑ ∑1 = ∑(i −1) + ∑k
i =k +1 j =1
( k −1) k
+ k ( n − k ) ∈Θ( nk )
2
28
29. Floyd’s Algorithm: All pairs shortest paths
•Find shortest path when direct path doesn’t exist
•In a weighted graph, find shortest paths between every pair of
vertices
• Same idea: construct solution through series of matrices
D(0), D(1), … using an initial subset of the vertices as
4
3
intermediaries.
1
• Example:
1
6
1
5
2
3
4
29
30. Shortest Path
Optimization problem – more than one candidate for
the solution
Solution is the candidate with optimal value
Solution 1 – brute force
–
–
Find all possible paths, compute minimum
Efficiency?
Worse than O(n2)
Solution 2 – dynamic programming
–
–
Algorithm that determines only lengths of shortest paths
Modify to produce shortest paths as well
30
35. Floyd’s Algorithm: All pairs shortest paths
• ALGORITHM Floyd (W[1 … n, 1… n])
•For k ← 1 to n do
•For i ← 1 to n do
•For j ← 1 to n do
•W[i, j] ← min{W[i,j], W{i, k] + W[k, j]}
•Return W
•Efficiency = ?
Θ(n)
35
36. Example: All-pairs shortest-path problem
Example: Apply Floyd’s algorithm to find the t Allpairs shortest-path problem of the digraph defined by
the following weight matrix
0
6
∞
∞
3
2
0
∞
∞
∞
∞
3
0
2
∞
1
2
4
0
∞
8
∞
∞
3
0
36
38. Chained Matrix Multiplication
Problem: Matrix-chain multiplication
– a chain of <A1, A2, …, An> of n matrices
–
find a way that minimizes the number of scalar multiplications to
compute the product A1A2…An
Strategy:
Breaking a problem into sub-problem
– A1A2...Ak, Ak+1Ak+2…An
Recursively define the value of an optimal solution
– m[i,j] = 0 if i = j
– m[i,j]= min{i<=k<j} (m[i,k]+m[k+1,j]+pi-1pkpj)
–
for 1 <= i <= j <= n
38
39. Example
Suppose
we want to multiply a 2x2 matrix
with a 3x4 matrix
Result is a 2x4 matrix
In general, an i x j matrix times a j x k matrix
requires i x j x k elementary multiplications
39
40. Example
Consider multiplication of four matrices:
A
(20 x 2)
x
B
(2 x 30)
x
C
(30 x 12)
x
D
(12 x 8)
Matrix multiplication is associative
A(B (CD)) = (AB) (CD)
Five different orders for multiplying 4 matrices
1.
2.
3.
4.
5.
A(B (CD)) = 30*12*8 + 2*30*8 + 20*2*3 = 3,680
(AB) (CD) = 20*2*30 + 30*12*8 + 20*30*8 = 8,880
A ((BC) D) = 2*30*12 + 2*12*3 + 20*2*8 = 1,232
((AB) C) D = 20*2*30 + 20*30*12 + 20*12*8 = 10,320
(A (BC)) D = 2*30*12 + 20*2*12 + 20*12*8 = 3,120
40
41. Algorithm
int minmult (int n, const ind d[], index P[ ] [ ])
{
index i, j, k, diagonal;
int M[1..n][1..n];
for (i = 1; i <= n; i++)
M[i][i] = 0;
for (diagonal = 1; diagonal <= n-1; diagonal++)
for (i = 1; i <= n-diagonal; i++)
{
j = i + diagonal;
M[i] [j] = minimum(M[i][k] + M[k+1][j] + d[i-1]*d[k]*d[j]);
// minimun (i <= k <= j-1)
P[i] [j] = a value of k that gave the minimum;
}
return M[1][n];
}
41
42. Optimal Binary Trees
Optimal
way of constructing a binary search
tree
Minimum depth, balanced (if all keys have
same probability of being the search key)
What if probability is not all the same?
Multiply probability of accessing that key by
number of links to get to that key
42
44. Traveling Salesperson
The
Traveling Salesman Problem (TSP) is a
deceptively simple combinatorial problem. It
can be stated very simply:
A salesman spends his time visiting n cities
(or nodes) cyclically. In one tour he visits
each city just once, and finishes up where he
started. In what order should he visit them to
minimize the distance traveled?
44
45. Why study?
The problem has some direct importance, since
quite a lot of practical applications can be put in this
form.
It also has a theoretical importance in complexity
theory, since the TSP is one of the class of "NP
Complete" combinatorial problems.
NP Complete problems are intractable in the sense
that no one has found any really efficient way of
solving them for large n.
–
They are also known to be more or less equivalent to each
other; if you knew how to solve one kind of NP Complete
problem you could solve the lot.
45
46. Efficiency
The
holy grail is to find a solution algorithm
that gives an optimal solution in a time that
has a polynomial variation with the size n of
the problem.
The best that people have been able to do,
however, is to solve it in a time that varies
exponentially with n.
46
49. Chapter Summary
• Dynamic programming is similar to divide-andconquer.
• Dynamic programming is a bottom-up approach.
• Dynamic programming stores the results (small
instances) in the table and reuses it instead of
recomputing it.
• Two steps in development of a dynamic
programming algorithm:
• Establish a recursive property
• Solve an instance of the problem in a bottom-up 49
51. Rules of Sudoku
• Place a number (1-9) in each blank cell.
• Each row (nine lines from left to right), column (also
nine lines from top to bottom) and 3x3 block bounded
by bold line (nine blocks) contains number from 1
through 9.
51