Jump to content

Talk:Dynamic programming

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Vapula (talk | contribs) at 23:54, 15 February 2020 (Remark added about the Fibonacci example on the page.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Template:Vital article

Template:Findsourcesnotice

Example

I (FvdP 21:51 Oct 22, 2002 (UTC)) had begun an example but do not feel the motivation to finish it cleanly right now (and perhaps not in the immediate future either). Here is it if anyone wants to complete it::

Suppose that we have to compute the product of n matrices A1.A2. ... .An, and we want to minimize the total number of operations by executing the matrix products in the best possible order.

The product of two matrices of size i × j and j × k

........


This example is published in Cormen's Introduction to Algorithms textbook. Will we run into copyright issues by putting it here?

Absolutely not! Ideas cannot be copyrighted, only a particular way of expressing those ideas. CLRS itself based this section on various papers. In other words, we can write an explanation of the problem and its solution in our own words, but should be careful not to copy text or even the precise presentation of the problem. Derrick Coetzee 20:09, 5 Oct 2004 (UTC)

Confusion

The first paragraph of the second part and the article on algorithms states that dynamic programming is a bottom-up approach, but later this article says dynamic programming may use bottom-up or top-down approaches. --zeno 11:46, 9 Feb 2004 (UTC)

I've revised that section. It was very vague and somewhat incorrect. I hope there's less confusion now. Derrick Coetzee 20:18, 5 Oct 2004 (UTC)

Weirdness

The page says "i dont know" in those terms, which is not only weirdly misplaced, but also improperly formatted. Someone check.

Misplaced section

The part following "The steps for using dynamic program goes as follows:" is out of place. Out of nowhere the article starts using terms like 'gap penalties' and 'sequence alignment.' Seems like this was copied from some article on a specific application, such as protien sequencing. Anon, Wed Jul 11 14:11:43 EDT 2007

Too many examples

This is not a textbook. One good example would suffice. Even worse, many of them are just too long (and boring). Put them in wikibooks. Unfortunately, any attempt to fix this article would be blocked as "vandalism". Way to go, Wikipedia!

Break this article into two pieces, one for dynamic programming (Bellman equation), the other for dynamic programming (recursion and memoizing)?

The two topics are different enough they are worth to be separate articles. A CS student learning dynamic programming in an introductory algorithm course will be unnecessarily confused when he or she read the Bellman equation part. Golopotw (talk) 02:11, 7 January 2020 (UTC)[reply]

About the Fibonnacci Sequence

It is possible to do a direct calculation of any fibonnacci sequence term using matrix calculation :

Vector (xn xn-1) is equal to matrix ( 1 1 1 0) multiplied by vector (xn-1 xn-2).

Using that recursively means that you can compute any term using matrix exponentiation. By replacing matrix (1 1 1 0) by the product of 3 matrices (Eigen Matrix, inverse of Eigen Matrix and a diagonal matrix), the exponentiation has only to be done on the diagonal matrix which is trivial. Vapula (talk) 23:54, 15 February 2020 (UTC)[reply]