Dynamic programming by polymorphic semiring algebraic shortcut fusion

要約

ダイナミック プログラミング (DP) は、他の方法では困難な組み合わせ問題を効率的かつ正確に解決するためのアルゴリズム設計パラダイムです。
ただし、DP アルゴリズムの設計は、アドホックな方法で提示されることがよくあります。
アルゴリズムの正しさを正当化することが難しい場合があります。
この問題に対処するために、この論文では、半環多態性に基づいて DP アルゴリズムを系統的に導出するための厳密な代数形式主義を提示します。
私たちは仕様から始めて、仕様を満たすすべての可能な解決策を徹底的に生成して評価するため、自明の理である必要な解決策を計算するアルゴリズムを構築します。
次に、ショートカット融合を使用して、効率的かつ正確なこのアルゴリズムの実装を導き出します。
また、セミリング リフティングを使用して仕様を組み合わせ制約で拡張する方法も示し、これらの制約をアルゴリズムとどのように融合できるかを示します。
さらに、特定の組み合わせ問題に対する既存の DP アルゴリズムを元のコンテキストから抽象化し、再利用する方法を示します。
このアプローチは、半環の観点から表現できる組み合わせ問題の全範囲に適用できます。
これには、たとえば、最適確率とビタビ復号、確率的周辺化、論理的推論、ファジー集合、​​微分可能なソフトマックス、関係クエリと来歴クエリが含まれます。
このアプローチは、構成的アルゴリズムに関する既存の文献からのアイデアに基づいており、多態性関数、タプリングと形式和、制約代数から生じる代数の単純化の一般的な特性を利用します。
私たちは、信号処理、生物情報学、信頼性工学で生じるいくつかの応用例に対するこの形式主義の有効性を実証します。
これらのアルゴリズムを実装する Python ソフトウェアは、http://www.maxlittle.net/software/dppolyalg.zip からダウンロードできます。

要約(オリジナル)

Dynamic programming (DP) is an algorithmic design paradigm for the efficient, exact solution of otherwise intractable, combinatorial problems. However, DP algorithm design is often presented in an ad-hoc manner. It is sometimes difficult to justify algorithm correctness. To address this issue, this paper presents a rigorous algebraic formalism for systematically deriving DP algorithms, based on semiring polymorphism. We start with a specification, construct an algorithm to compute the required solution which is self-evidently correct because it exhaustively generates and evaluates all possible solutions meeting the specification. We then derive, through the use of shortcut fusion, an implementation of this algorithm which is both efficient and correct. We also demonstrate how, with the use of semiring lifting, the specification can be augmented with combinatorial constraints, showing how these constraints can be fused with the algorithm. We furthermore demonstrate how existing DP algorithms for a given combinatorial problem can be abstracted from their original context and re-purposed. This approach can be applied to the full scope of combinatorial problems expressible in terms of semirings. This includes, for example: optimal probability and Viterbi decoding, probabilistic marginalization, logical inference, fuzzy sets, differentiable softmax, relational and provenance queries. The approach, building on ideas from the existing literature on constructive algorithmics, exploits generic properties of polymorphic functions, tupling and formal sums and algebraic simplifications arising from constraint algebras. We demonstrate the effectiveness of this formalism for some example applications arising in signal processing, bioinformatics and reliability engineering. Python software implementing these algorithms can be downloaded from: http://www.maxlittle.net/software/dppolyalg.zip.

arxiv情報

著者 Max A. Little,Xi He,Ugur Kayas
発行日 2024-01-04 11:53:29+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.DS, cs.LG, math.RA パーマリンク