問題タブ [sicstus-prolog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
141 参照

java - Jasper を使用して Sicstus4 から Java コンポーネントに標準出力をリダイレクトする方法は?

Jasper というライブラリを使用して、Java アプリケーションを Sicstus4 ソフトウェアにリンクしています。これはスムーズに機能していますが、クエリを作成するときは、JTextArea に表示するために出力を取得する必要があります。現在、Sicstus ソフトウェアは出力をコンソールに出力していますが、どうすれば取得できますか?

前もって感謝します!ジョシュア。

0 投票する
1 に答える
158 参照

java - Java アプリケーションのデプロイに関する問題

Sicstus プロローグにリンクする Java アプリケーションを完成させました。今すぐデプロイする必要がありますが、次の問題があります。Java とリンクする Sicstus ライブラリでは、アプリケーションを次の構文で呼び出す必要があります。

.sh または .bat ファイルを展開していますが、ユーザーが手動で編集し、sicstus インストール ディレクトリの場所を指定する必要があります。どうすればそれを回避できますか?

私は本当にここで立ち往生しています。JSmooth や GlassWorks などのインストーラ ビルダーをいくつか試しましたが、問題が解決しません。何か案が?

ジョシュア。

0 投票する
1 に答える
895 参照

prolog - プロローグで制限のあるジグソーパズルを解く

現在、SICStus Prolog を使用して、prolog の制限を学習し始めています。これを使って簡単な問題を解く方法は知っていますが、ジグソー パズルを解かなければならない練習問題が 1 つあります。ただし、これを解決する方法がわかりません。さまざまなプロパティ (ピース) を持ついくつかの異なる要素があるためです。プロローグでピースのリストを表す方法と、どのような制限を使用する必要があるかの例を教えてください。

0 投票する
2 に答える
578 参照

arrays - SICStus 多次元配列

ECLiPSe Dim 関数とほぼ同じことを行う多次元配列を SICStus で作成したいと考えています。そのためにこのコードを作ったのですが、残念ながらいつも無限ループに陥ってしまいます。誰でも問題を解決できますか?

0 投票する
3 に答える
1854 参照

prolog - Prolog を使用した制約論理プログラミングでの経路探索の最適化

超高層ビルとフェンスのパズルを解くための小さなプロローグ アプリケーションに取り組んでいます。

未解決のパズル:

フェンス内の超高層ビル パズル (未解決)

解かれたパズル:

フェンス内の超高層ビル パズル (解決済み)

すでに解決済みのパズルをプログラムに渡すと、それを検証するのはほとんど瞬時に行われます。プログラムに非常に小さなパズル (たとえば、2x2、もちろん変更されたルール) を渡すと、解決策を見つけるのも非常に高速です。

問題は、「ネイティブ」サイズの 6x6 のパズルを計算することです。中止する前に、5時間ほど実行したままにしました。時間がかかりすぎます。

最も時間がかかるのは「高層ビル」ではなく「フェンス」であることがわかりました。"skyscrapers" を個別に実行すると、高速なソリューションが得られます。

フェンスのアルゴリズムは次のとおりです。

  • 頂点は数字で表され、0 はパスがその特定の頂点を通過しないことを意味し、> 1 はパス内のその頂点の順序を表します。
  • 各セルが適切な量の線で囲まれるように制約します。
    • つまり、2 つの頂点が連番を持つ場合、それらが接続されていることを意味します。たとえば、1 -> 2、2 -> 1、1 -> MaxMax-> 1 (Maxは、パス内の最後の頂点の番号です。 を介して計算されますmaximum/2) 。
  • ゼロ以外の各頂点に、連番を持つ隣接する頂点が少なくとも 2 つあることを確認します。
  • (はエッジに沿った頂点の数で、で計算されます)Maxと等しくなるように制約します。(BoardWidth + 1)^2 - NumberOfZerosBoardWidth+1NumberOfZeroscount/4
  • nvalue(Vertices, Max + 1)の個別の値の数VerticesMax(つまり、パス内の頂点の数) プラス1(ゼロ値)であることを確認するために使用します。
  • a を含む最初のセルを見つけて、3効率を高めるためにパスを強制的にそこから開始および終了させます。

効率を上げるにはどうすればよいですか?参照用にコードを以下に示します。

skyscrapersinfences.pro

utils.pro

s1.pro

0 投票する
4 に答える
1301 参照

prolog - プロローグ: ランダムなラベル付け

制約を使用して Sicstus Prolog で書かれたプログラムがあります。私の目標は、labeling/2 およびその他の方法を使用して、変数のランダムなインスタンス化を取得することです。

例:

私が使用する場合

得られる最初の結果は、X = Y = Z = 0 です。X、Y、Z の値のランダムなセットを返す最良の方法はどのように考えられますか?

0 投票する
2 に答える
206 参照

windows - WindowsコマンドラインでのPrologのモードの切り替え

Sicstus Prologのマニュアルには、ユーザーに「|?-consult(user)」と書かれています。句を入力し、「トップレベルに戻るには、^Dと入力します。」しかし、私はWindowsを使用しており、マニュアルにはWindowsの説明がありません。Windowsでクエリモードに戻るにはどうすればよいですか?

0 投票する
1 に答える
2202 参照

prolog - プロローグ - ファイルからライブラリをロードする

Sicstus のマニュアルでは、これを使用してライブラリをロードするように指示されています: use_module(library(Package))。これはコマンド ラインの Prolog で機能しますが、Prolog ソース ファイルからライブラリをロードする方法がわかりません。「use_module(library(Package))」を含めると。私の .pl ファイルで、許可エラーが表示されます: built_in use_module/1 を再定義できません。

0 投票する
2 に答える
416 参照

windows - sictusprologplファイルウィンドウからスタンドアロンexeファイルを作成する

別のコンピューターで実行するためにexeファイルとしてエクスポートしたいsictusプロローグファイル(.pl-file)があります。

SICSのドキュメントを検索し、spldを試してみると、以前のコンピューター(Windows XP X86を実行している)では機能しないexeファイルが見つかりました。

私はWindows7Professional(x64)でSicstusを使用しており、sicstusプロローグファイルからx86およびx64ウィンドウで実行されるスタンドアロンexeを作成する方法について簡単な手順を説明したいと思います。

何かのようなもの:

1:..を使用してpl-fileをコンパイルします。

2:..。

これは可能ですか?

PSは、依存関係とdllについて何も知らないと想定しています。sPPSコードは1つのモジュールを使用します

0 投票する
2 に答える
334 参照

prolog - in_set/2 制約の使用

Xリスト内の値にならないように制約を使用しようとしています。

SICStus Prolog マニュアルから:

ただし、リストを FDSet に変換する方法がわかりません。整数のリストがあり[2,3,8,9]、変数のドメインをそのリストに含まれないように制限したいと考えてXいます。それ、どうやったら出来るの?ありがとう。