Factbites
 Where results make sense
About us   |   Why use us?   |   Reviews   |   PR   |   Contact us  

Topic: Optimal substructure


Related Topics

In the News (Fri 17 Feb 12)

  
  Dynamic programming - Wikipedia, the free encyclopedia
In computer science, dynamic programming is a method for reducing the runtime of algorithms exhibiting the properties of overlapping subproblems and optimal substructure, described below.
Optimal substructure means that optimal solutions of subproblems can be used to find the optimal solutions of the overall problem.
For example, the shortest path to a goal from a vertex in a graph can be found by first computing the shortest path to the goal from all adjacent vertices, and then using this to pick the best overall path, as shown in Figure 1.
en.wikipedia.org /wiki/Dynamic_programming   (1376 words)

  
 No Title
The greedy algorithm that leads to an optimal solution is to always go to the farthest stop you can reach on a tank of gas until you reach the destination city.
Since we have already proven optimal substructure for this problem, to show our greedy choice leads to an optimal solution, we need only show that our greedy choice satisfies the greedy choice property, i.e., that the greedy choice is in an optimal solution and can be made first.
To show that the greedy choice is in an optimal solution, we will show that an optimal solution not containing the greedy choice can be changed to include the greedy choice without sacrificing optimality (i.e., minimal number of stops).
ranger.uta.edu /~cook/aa/hw/qs5/qs5.html   (468 words)

  
 Dynami Programming:   (Site not responding. Last check: 2007-10-26)
This principle state that an optimal sequence of decisions has the property that whatever the initial state decision are, the remaining decisions must constitute an optimal decision sequence with regard to the state resulting from the first decision.
The optimal substructure of a problem often suggests a suitable space of sub problems to which dynamic programming can be applied.
Investigating the optimal substructure of a problem by iterating on sub problem instances is a good way to infer a suitable space of sub problems for dynamic programming.
www.msci.memphis.edu /~giri/7713/f99/kolli/dyna.html~   (1025 words)

  
 Optimal substructure -- Facts, Info, and Encyclopedia article   (Site not responding. Last check: 2007-10-26)
In (The branch of engineering science that studies (with the aid of computers) computable processes and structures) computer science, a problem is said to have optimal substructure if its optimal solution can be constructed efficiently from optimal solutions to its subproblems.
This property is used to determine the usefulness of (additional info and facts about dynamic programming) dynamic programming and (additional info and facts about greedy algorithm) greedy algorithms in a problem.
Typically, a greedy algorithm is used to solve a problem with optimal substructure wherever such an algorithm can be found; otherwise, providing the problem exhibits (additional info and facts about overlapping subproblem) overlapping subproblems as well, dynamic programming is used.
www.absoluteastronomy.com /encyclopedia/o/op/optimal_substructure.htm   (206 words)

  
 Optimal substructure - Encyclopedia.WorldSearch   (Site not responding. Last check: 2007-10-26)
In computer science, the Optimal-substructure property refers to problems with optimal solutions that exhibit optimal solutions in its subproblems.
This property is used to determine the usefulness of dynamic programming and greedy algorithms in a problem.
Typically, a greedy algorithm is used to solve a problem with optimal substructure wherever such an algorithm can be found; otherwise, providing the problem exhibits overlapping subproblems as well, dynamic programming is used.
encyclopedia.worldsearch.com /optimal_substructure.htm   (163 words)

  
 dynamic programming   (Site not responding. Last check: 2007-10-26)
Dynamic programming is efficient in finding optimal solutions for cases with lots of overlapping subproblems.
Thus, dynamic programming is simply memoization of results of a recurrence, so that time is not spent trying to solve the same subproblem (or problem) repeatedly.
Optimal substructure means that the optimal solutions of local problems can lead to the optimal solution of the global problem.
www.yourencyclopedia.net /Dynamic_programming.html   (527 words)

  
 September 14, 1998   (Site not responding. Last check: 2007-10-26)
The problem has subproblems or substructures that are optimal, so optimal solution for the problem can be obtained by putting together optimal solutions for subproblems.
To solve the problem, the essential part is to find the substructure that is optimal, then get the optimal solution for substructures, then put together to solve whole problem.
In other words, if you look at the optimal solution, then there is a substructure of optimal solution which is a optimal solution for some subproblem.
www.msci.memphis.edu /~giri/7713/f98/lec4.html   (1886 words)

  
 Algorithm - Wikipedia, the free encyclopedia
heuristic algorithms, whose general purpose is not to find a optimal solution, but an approximate solution where the time or resources to find a perfect solution are not practical.
An example of this would be local search, taboo search, or simulated annealing algorithms, a class of heuristic probabilistic algorithms that vary the solution of a problem by a random amount.
The purpose of the random variance is to find close to globally optimal solutions rather than simply locally optimal ones, the idea being that the random element will be decreased as the algorithm settles down to a solution.
www.wikipedia.org /wiki/Algorithm   (2129 words)

  
 Greedy Algorithms
Note that an optimal code for a file is always represented by a full (complete) binary tree.
Let T be a full binary tree representing an optimal prefix code over an alphabet C, where frequency f[c] is define for each character c belongs to set C. Consider any two characters x and y that appear as sibling leaves in the tree T and let z be their parent.
Proof is immediate from the greedy choice property and an optimal substructure property.
www.personal.kent.edu /~rmuhamma/Algorithms/MyAlgorithms/Greedy/huffman.htm   (1696 words)

  
 Class 1: Minimum Spanning Trees   (Site not responding. Last check: 2007-10-26)
Optimal Substructure-this is the same property as was required by dynamic programming.
Again, this is a problem which meets the optimal substructure problem (an optimal tree has optimal subtrees), and meets the greedy property.
To prove the optimal substructure property, split up an MST T by removing an edge (u,v)-say this creates two subtrees T1 and T2.
www.mines.edu /Academic/courses/math_cs/macs406.old/node43.html   (569 words)

  
 Pattern for Greedy Algorithms
Problems where optimal solution is computationally expensive or exponential, greedy algorithms provide an excellent heuristic that leads closer to optimal solution.
The "greedy-choice property" and "optimal substructure" are two ingredients in the problem that lead to a greedy strategy.
An interesting problem that can be solved using the greedy technique is the problem of optimally scheduling unit time tasks on a single processor, where each task has a deadline and a penalty that must be paid if the deadline is missed.
www.scs.carleton.ca /~tpathman/GreedyAlgorithmPattern.htm   (2140 words)

  
 Intro to Algorithms: CHAPTER 16: DYNAMIC PROGRAMMING
Optimal substructure within an optimal solution is one of the hallmarks of the applicability of dynamic programming, as we shall see in Section 16.2.
The optimal substructure of a problem often suggests a suitable space of subproblems to which dynamic programming can be applied.
Investigating the optimal substructure of a problem by iterating on subproblem instances is a good way to infer a suitable space of subproblems for dynamic programming.
www.personal.kent.edu /~mlu3/CSCourses/AdvAlgorithms/CLR-BOOK/books/book6/chap16.htm   (7695 words)

  
 Analysis of Algorithms: Lecture 13
Greedy algorithms are similar to dynamic programming algorithms in that the solutions are both efficient and optimal if the problem exhibits some particular sort of substructure.
Some problems have a structure such that a greedy approach is an optimal approach; problems such as these are said to have the greedy-choice property.
There are many codes, but we would like to find one that is optimal with respect to the number of bits needed to represent the data.
camino.rutgers.edu /ut/utsa/cs3343/lecture13.html   (1374 words)

  
 [No title]
An optimal code is always represented by a full binary tree in which every non-leaf node has exactly two children.
Proof: Consider the optimal tree T for characters C. Let x and y be the greedy choice: the lowest frequency characters in C. Consider the optimal tree for the subproblem (which is all characters less the greedy choice plus the parent of the greedy choice): T' for
We assert Huffman does NOT exhibit optimal substructure: that we can implement a globally optimal solution where in the solution to the subproblem is NOT optimal.
ranger.uta.edu /~cook/aa/transcript/ln09f   (2911 words)

  
 Sankhya Technologies - Articles - Dynamic Programming
Optimal Substructure - the structure of the problem must be such that the optimal solution to the problem contains the optimal solution of the subproblems
Finding the structure of the optimal solution to the problem - DP relies on the "Principle of Optimality" which states that the optimal solution of a problem will involve the optimal solutions of the subproblems which make up the problem.
Finding the optimal value using the recursive function - Using the recursive function is used to enumerate all possible solutions and then combining them will not be ideal.
www.sankhya.com /articles/0008.html   (570 words)

  
 [No title]   (Site not responding. Last check: 2007-10-26)
Theorem of Optimization ----------------------- - The "Theorem of Optimization" is essentially a formal statement that allows you to demonstrate the *optimal substructure* of a problem.
- By "optimal substructure" we mean that it becomes evident that the a certain problem can be broken down into smaller sub-problems in order to achieve the optimal solution (which is how dynamic programming works).
Therefore, I and I' demonstrate an optimal substructure.
www.cdf.toronto.edu /~bijan/270/270lect4-1.txt   (489 words)

  
 [No title]   (Site not responding. Last check: 2007-10-26)
To show correctness, we have to show the greedy choice property and the optimal substructure property.\\ Greedy Choice Property:\\ Assume that our first choice is a penny.
Let $S$ be the optimal solution to $C$ and $S'$ be the optimal solution to $C'$.
However, the optimal solution is to choose $4$ each time, giving $2$ coins instead of $3$.
dop.outsidetheworld.com /Programs/HW4.txt   (1212 words)

  
 [No title]   (Site not responding. Last check: 2007-10-26)
The optimal path can be expressed in terms of the best of the optimal paths from the nearby corners plus the cost of reaching the next corner.
The optimal cost is computed in the forward phase and the actual path is obtained by backtracking.
Finding the differences between two files with optimality criteria (minimum number of extent of changes) is equivalent to the string matching problem, and hence can be solved with dynamic programming.
n.ethz.ch /student/berker/download/w3r/wr3/dmatthey_quiz4.xml   (346 words)

  
 Dynamic programming - Encyclopedia.WorldSearch   (Site not responding. Last check: 2007-10-26)
# Use these optimal solutions to construct an optimal solution for the original problem.
Show how the placement of parentheses affects the number of scalar multiplications required when multiplying a bunch of matrices.
Show how to write a dynamic program to calculate the optimal parentheses placement.
encyclopedia.worldsearch.com /dynamic_programming.htm   (1495 words)

  
 Elements of Dynamic Programming
Optimal Substructure: OS holds if optimal solution contains within it optimal solutions to sub problems.
Sub-problems must be optimal, otherwise the optimal splitting would not have been optimal.
A general way to investigate optimal substructure of a problem in DP is to look at optimal sub-, sub-sub, etc. problems for structure.
www.cs.fsu.edu /~cop4531/slideshow/chapter16/16-2.html   (353 words)

  
 [No title]   (Site not responding. Last check: 2007-10-26)
She suggests that an optimal solution to the matrix chain multiplication problem can be found by always choosing the matrix Ak at which to split the subproduct Ai Ai+1 … Aj (by selecting k to minimize the quantity pi-1pkpj) before solving the subproblems.
Here is a proposal for a greedy algorithm to determine the best order in which to perform the matrix multiplication to compute A1 * A2 * … * An : At each step, choose the largest remaining dimension (from among d1, …, dn-1) and multiply two adjacent matrices that share that dimension.
Observe that this strategy produces the optimal factorization for the matrices.
www.public.asu.edu /~ssshah2/academics/daa/hw3.doc   (463 words)

  
 No Title
The fact that an optimal BST consists of optimal subtrees allows us to use a smaller instance of the same problem is solving the whole problem.
Thus, an optimal subtree consists finding a root (with optimal subtrees) such that the tree has the smallest expected cost over all such trees.
Notice that while the optimal tree is not actually stored, it is easily built from the information which is stored.
www.cs.usu.edu /~allanv/cs2200/prog7/prog7.html   (1310 words)

  
 Class 1: DP: Matrix chain-multiplication   (Site not responding. Last check: 2007-10-26)
We stress that matrix multiplication is associative (but obviously not commutative), so the order in which you parenthesize the chain of matrices is not important.
Then we define the optimal substructure of the problem, and show how the problem can be solved recursively.
Optimal Substructure: finding an optimal solution to a problem involves finding optimal solutions to its component subproblems.
www.mines.edu /Academic/courses/math_cs/macs406.old/body-node40.html   (261 words)

  
 Dynamic programming   (Site not responding. Last check: 2007-10-26)
Dynamic programming is efficient in finding optimal for cases with lots of overlapping subproblems.
Thus dynamic programming simply memoization of results of a recurrence that time is not spent trying to the same subproblem (or problem) repeatedly.
Optimal substructure means that the optimal of local problems can lead to the solution of the global problem.
www.freeglossary.com /Dynamic_programming   (799 words)

  
 Optimization (mathematics)   (Site not responding. Last check: 2007-10-26)
A feasible solution that maximizes (or minimizes, if that is the goal) the objective function is called an optimal solution.
dynamic programming studies the case which has optimal substructure and overlapping subproblems.
For derivable functions, unconstrained problems can be solved by finding the places where the gradient of the function is 0 (i.e.
www.worldwidewebfind.com /encyclopedia/en/wikipedia/o/op/optimization__mathematics_.html   (796 words)

  
 [No title]   (Site not responding. Last check: 2007-10-26)
that is, the optimal solution to a problem contains within it an optimal solution to subproblem.
The reason is, DP solves problems by trying all possible solutions to subproblems and pick the one that is optimal but greedy only chooses the best choice at the moment at a time without relying on solutions to subproblems of the past.
Greedy does not always yield the optimal solution but in some problem such as activity selection it always does.
www.eecs.tufts.edu /~sanpawat/al/chap17.txt   (157 words)

  
 Encyclopedia: Algorithm
Jump to: navigation, search In mathematics and computer science, recursion specifies (or constructs) a class of objects (or an object from a certain class) by defining a few very simple base cases (often just one), and then defining rules to break down complex cases into simpler cases.
Jump to: navigation, search In computer science, dynamic programming is a method for reducing the runtime of algorithms exhibiting the properties of overlapping subproblems and optimal substructure, described below.
In computer science, a problem is said to have overlapping subproblems if the problem can be broken down into subproblems which are reused several times.
www.nationmaster.com /encyclopedia/algorithm   (4982 words)

  
 4.6 Dynamic Programming
Dynamic programming typically applies to optimization problems in which a set of choices must be made in order to arrive at an optimal solution.
The key ingredients that an optimization problem must have for dynamic programming to be applicable are: optimal substructure and overlapping subproblems.
The second ingredient is that the space of subproblems must be ''small'' in the sense that a recursive algorithm for the problem solves the same subproblems over and over, rather than always generating new subproblems.
linneus20.inf.ethz.ch:8080 /4_6.html   (366 words)

Try your search on: Qwika (all wikis)

Factbites
  About us   |   Why use us?   |   Reviews   |   Press   |   Contact us  
Copyright © 2005-2007 www.factbites.com Usage implies agreement with terms.