Bottom-up computation using trees of sublists

Guardado en:
Detalles Bibliográficos
Publicado en:Journal of Functional Programming vol. 34 (Dec 2024)
Autor principal: Shin-Cheng, Mu
Publicado:
Cambridge University Press
Materias:
Acceso en línea:Citation/Abstract
Full Text - PDF
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
Descripción
Resumen:Some top-down problem specifications, if executed, may compute sub-problems repeatedly. Instead, we may want a bottom-up algorithm that stores solutions of sub-problems in a table to be reused. How the table can be represented and efficiently maintained, however, can be tricky. We study a special case: computing a function <inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796824000145_inline1.png" />\({\mathit{h}}\)</inline-formula> taking lists as inputs such that <inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796824000145_inline2.png" />\({\mathit{h}\;\mathit{xs}}\)</inline-formula> is defined in terms of all immediate sublists of <inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796824000145_inline3.png" />\({\mathit{xs}}\)</inline-formula>. Richard Bird studied this problem in 2008 and presented a concise but cryptic algorithm without much explanation. We give this algorithm a proper derivation and discovered a key property that allows it to work. The algorithm builds trees that have certain shapes—the sizes along the left spine is a prefix of a diagonal in Pascal’s triangle. The crucial function we derive transforms one diagonal to the next.
ISSN:0956-7968
1469-7653
DOI:10.1017/S0956796824000145
Fuente:Advanced Technologies & Aerospace Database