0

私は、行列代数方程式を操作する高レベルのソフトウェアを開発するアイデア、正確にはテンソル操作、次元のサイズ、システムで使用可能なメモリなどのいくつかの基準を使用して最適化された C++ コードを生成するアイデアをブレインストーミングしています。

テンソル収縮エンジンである TCE に精神的に似ているものですが、一般的なコードではなく最適化されたコードの生成を特に目的としています。求められる最終結果は、私のドメインで並列プログラムを作成する専門家であるソフトウェアです。

  • この種の開発は、エキスパート システムのカテゴリに分類されますか?
  • 制約が与えられたコードを生成する同じ領域で機能する他のプロジェクトは何ですか?
4

3 に答える 3

1

少なくともこの概念の従来の意味では、エキスパート システムとは呼ばれません。

エキスパート システムはルール ベースの推論エンジンであり、問​​題の専門知識はルールに明確にカプセル化されています。あなたが提案するシステムは、ある種の線形代数モデル内の問題領域の性質に関する洞察をカプセル化する可​​能性がありますが、エキスパートシステムというよりもブラックボックスとして機能します。エキスパート システムの特徴の 1 つは、推論の「説明」を作成できることです。そのような機能が可能なのは、知識表現が形式化されていても、自然言語の単純なステートメントに近いままであるためです。行列とそれらの操作は、同様の現実の観察に基づいて導出される可能性がありますが、透明性ははるかに低くなります...

あなたが提案するシステムが既存のコードを最適化するかどうか(おそらく限られたドメインで)、または最適化されたコードを生成するかどうかは、質問の説明からは不明です。その場合、いくつかの外部目標/機能を駆動します...

于 2009-11-23T03:56:14.903 に答える
1

あなたが説明しているのは、ドメイン固有言語に似ています。

http://en.wikipedia.org/wiki/Domain-specific_language

于 2009-11-23T04:08:50.483 に答える
0

ウェルプロダクションシステム(ルールシステム)は、計算への4つの一般的なアプローチ(チューリングマシン、教会の再帰関数、ポストプロダクションシステム、およびマルコフアルゴリズム[およびさらにいくつかがそのリストに追加されています])の1つであり、多かれ少なかれこれらのそれぞれの実現があります。命令型プログラミング、関数型プログラミング、ルールベースのプログラミング-私が知る限り、マルコフアルゴリズムには独立した実装がありません。これらはすべてチューリングと同等です。

したがって、ルールベースのプログラミングを使用して、何でも書くことができます。また、初期の数学/記号操作プログラムは、問題が十分に理解されるまで、一般にルールベースのプログラミングを使用していました(その後、アプローチは必須または制約プログラミングに変更されました-MACSYMAを参照してください-うーんMACSYMAはLispで書かれているので、おそらく私は別のプログラムを念頭に置いていますあるいは、おそらく彼らはもともとこのためにLispにルールシステムを実装していました)。

マトリックス操作を実行するルールシステムを簡単に作成できます。論理サポートに応じてトレースを保持し、ソリューションに貢献した実際に実行されたルールを記録できます(実行されたルールの中には、結局ソリューションに直接貢献しないものもあります)。次に、すべてのルールについて、中間言語として出力される一連のC ++命令(これらは「完全」である必要はありません。これらは、半実行可能要件のように機能します)へのマッピングがあります。次に、それがパーサーによって読み取られ、必要な入力データと必要なあらゆる種類の修正にリンクされます。関数型コードを生成する方が簡単な場合があります。たとえば、修正後、関数型ソースの出力コードをより簡単に最適化できます。

そうは言っても、他の寄稿者はドメイン固有言語アプローチの概要を説明しており、それはTEDの人々も行ったことです(私の提案は、ルールを使用するだけです)。

于 2011-01-15T15:44:03.807 に答える