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 Lowercase sigmabot III (talk | contribs) at 00:24, 7 January 2021 (Archiving 1 discussion(s) to Talk:Dynamic programming/Archive 1) (bot). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Template:Vital article

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!

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]

Memoization

It would help to clean up usage of this term, possibly with its own subsection. This term is not clearly defined until the section on Fibonnacci sequence, which is the 6th occurrence on this page. The first occurrence is in the Computer Programming section where it is explained differently ("store the solutions to the sub-problems in a table"). The second occurrence on the page says, "Some languages make it possible portably," which I don't understand. The portability statement is backed by links to four WikiPedia pages (perl, scheme, lisp, and D) that do not address portable memoization or even dynamic programming. Jason.Rafe.Miller (talk) 01:32, 11 August 2020 (UTC)[reply]