TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
CVS導入スレ〜 Rev.3
Git 13
【初心者歓迎】最新COBOLについての質問スレ
インデントはタブかホワイトスペースか?
C++によるDICOMファイル解析
Rubyについて(アンチ専用) Part004
【Lua】組み込み系言語総合 その7【Squirrel】
Visual Studio 2010 Part21
VBAなんでも質問スレ Part2
推薦図書/必読書のためのスレッド 81

Prologでまったり Part5


1 :2017/03/24 〜 最終レス :2020/06/06
過去スレ
Prologでまったり Part4
http://pc12.2ch.sc/test/read.cgi/tech/1235561034/
Prologでまったり Part3
http://pc11.2ch.sc/test/read.cgi/tech/1193354806/
PrologでまったりPart 2
http://pc11.2ch.sc/test/read.cgi/tech/1102664221/
Prolog でまったり
http://pc5.2ch.sc/test/read.cgi/tech/976462999/

2 :
すみません。最後のPartなしは、リンクが切れていました。
一番肝心のスレッドなのに残念ですね。

3 :
人工知能がブームになりつつあり、Prologにとっては追い風と書いたところ、

ジャンプするには向かい風の方がよい

との答えをもらいました。

4 :
>>2
ググったらみみずんにあった
http://mimizun.com/log/2ch/tech/976462999/

5 :
Prologに型概念はないと言い切ってよいものだろうか。

6 :
ふと、新聞に載ってる論理パズルを解くプログラムを書きたくなって
Debian に GNU Prolog をインストールして二十数年ぶりに Prolog を楽しんでるのだが、
まだ maplist が実装されていないバージョンだということに今気付いた。
2007 年にリリースされた 1.3.0 らしい。いや、特に困るわけでもないが。
fd_domain や fd_all_different は実装されてるからね。特に不足は無いよ。
不足があるなら自分で新しいのを入れればいいし。まあ、まったりいこう。

7 :
>>888
その部分では関数型言語も手続型言語もオブジェクト指向が強調されたものでも記述はできるが、その記述の関係さ

8 :
すみません。論理Polog初心者スレと間違えて書き込んでしまいました

9 :
>>5
型はないです。型という概念が使われることもない。外からどう見えようとも。

10 :
>>9
本当は integer や float も atom という認識でよかったのではないか

11 :
人工知能といっても今流行ってるDeepLearningの世界にPrologの出番なんて無いと思うんだけどどう関係すんの?

12 :
>>11
DeepLearningを含む機械学習やニューラルネットワークによる認識は
人工知能のごく一部。知識プログラミングにこれがつながるのはそれこそ
進化論的に大変。人間の思考、判断、意志、統制は、シンボル操作がやはり
中心になる。この領域の中心付近に述語論理があり、そういう意味で、
Prologはこの人工知能の世界では今後もずっとに安泰の地位にいる。

13 :
ずっと安泰の地位にいる。 ですね。

14 :
>>12
ごく一部といっても今流行ってるのは機会学習だけでそれ以外は良くも悪くも全く変わってないよね?
だからPrologにとって追い風も何も無いと思うんだが。

15 :
>>12
Prologは記号処理に還元できる問題は得意だから今後も使われるだろう。
でも人間の曖昧な思考やそれに基づく自然言語は記号処理に還元できない。
そして自然言語処理でDeepLearningが次々と成果を出している。
FacebookのMemory Networksは述語論理抜きで質問に答える。
Prologはもう人工知能研究の中心ではないし今後もならないのでは?

ニューラル機械翻訳と記号幻想の死
http://rekken.g.hatena.ne.jp/murawaki/20161017/p1
Facebookの人工知能アルゴリズム「memory networks」について調べてみた
https://www.slideshare.net/metaps_JP/facebookmemory-networks-keo
NIP2015読み会「End-To-End Memory Networks」
http://www.slideshare.net/unnonouno/nip2015endtoend-memory-networks
>複数の文からなる事実から、質問に答えるタスクを、end-to-endで学習する手法を提案した
>単語の埋め込み、文のエンコード、各事実に対するattention、
>回答の生成までを単一のネットワークにする

16 :
>>15
>でも人間の曖昧な思考やそれに基づく自然言語は記号処理に還元できない。
こう言い切る根拠がわからない

17 :
>>16
数学の命題のように100%正しい命題なら記号処理に還元できる。
でも風が吹けば桶屋が儲かるのような確率的命題を扱うには
離散値ではなく連続値で推論する仕組みが要る。
ベイジアンネットワークやニューラルネットワークなら確率的命題を扱える。

18 :
swi-prologをEmacsで書く環境つくってるんだけど
run-prologで質問にセミコロンで答えてもリターンキーおすまで反応なくて
リターンおすとそこで終りになってしまうんだけどいい対策ないですか?
ターミナルならちゃんと次の答えの候補までだしてくれるんだけど

19 :
ありがとう。そういうことが起こるということには気付いてたけど
shell-mode を使ってるからだということがやっと分かった。
shell-mode では ; を単独で送れるようなキーバインディンディングにはなっていない。
しかし、run-prolog にも同じ問題があるとしたらいささか奇妙なことだと思うのだけど。
とりあえず、; にちゃんと応えてほしいなら ansi-term を使えばいいかも。
もちろん run-prolog を使いたいだろうとは思うけど。
; は諦めて失敗駆動ループで全部出力するという手もあるよ。

20 :
解ったぞ! ; の後に M-x (comint-send-input t) だ!
やってみた!

| ?- member(X,[a,b,c,d]).
member(X,[a,b,c,d]).

X = a ? ;;

X = b ?
Action (; for next solution, a for all solutions, RET to stop) ? ;;

X = c ?
Action (; for next solution, a for all solutions, RET to stop) ? ;;

X = d ?
Action (; for next solution, a for all solutions, RET to stop) ? ;;

(4 ms) no
| ?-


どうだ、うまくいったぞ! ……って、やってられっかー!
やっぱり run-prolog の方で対処してくれないと。

21 :
ごめん、M-x じゃなくて M-: だった。

22 :
単に Prolog インタプリタを対話的に使いたいだけなら Emacs の外でやる方が快適なんだけど
それでは不便だからやっぱり Emacs の shell でやりたい。だからこんなことをしてみた。

(defun comint-send-input-without-nl ()
(interactive)
(comint-send-input t)
)

これを C-c C-j にバインドして使う。どうやら期待通りに動いているようだ。
まあ、; はよく使うからこんなのを使ってもいいかな。

(defun prolog-other-answer ()
(interactive)
(insert ";")
(comint-send-input t)
)

こっちは C-; にしてみた。

23 :
よくわからないけどM-;で%が入力されて
全部の回答がでてきた

24 :
>>10
50数冊Prologの本は出版されていますが
型についての言及はほとんどないですね。

25 :
データ型という意味なら項(term)が該当するのだろうけど
C/C++の型の意味だとPrologは型無し言語にあたるかと・・

26 :
>>25
型とかクラスということを考えると、述語で定義される全体が、それにもっとも近い
ような気がします。変数も単一化の道具のようなもので、事実上ないと言うに近い
ですし。

27 :
>>26
Prologの変数って、
長い長い ======================== 等号のように見えますね。

28 :
>>27
その理解で正しいのでは

29 :
Prologの変数では、setof/3やfindall/3の中の変数ですね。
外側の変数を受け継いだ場合です。

?- length(L,2),setof(A,A ^ member(A,L),X),L = [1,2].
L = X, X = [1, 2].

?- length(L,2),findall(A,member(A,L),X),L = [1,2].
L = [1, 2],
X = [_G711, _G708].

?- setof/3は受け継いていますが、findallでは切れています。

30 :
自由変数なんていう概念が通用することが分かります。

31 :
>>18
問題は解決した? 原因が判ったよ。
; には prolog-inferior-self-insert-command というコマンドが割り当てられていて、
これが期待される動作だと思うんだけど、新しいバージョンではなぜか
この prolog-inferior-self-insert-command が無くなっている。
Emacs 24.4 に含まれている 1.22 にはまだあるけど 1.25 には無い。
理由は判らない。少なくとも prolog.el の Changelog にはそれらしい記述が無い。
とりあえず、prolog-inferior-self-insert-command があるバージョンを
使えばいいと思うよ。

32 :
>>29
どれが自由変数なんですか

33 :
>>32
findall/3の方のAです

34 :
ファイルから行ならびを得る(_ファイル,_行ならび) :-
open(_ファイル,read,_入力),
findall(_項,(
repeat,(at_end_of_stream(_入力),close(_入力),!,fail;
行入力(_入力,_行))),_行ならび).

行入力(_入力,_行) :-
read_line_to_codes(_入力,_文字コードならび),
atom_codes(_行,_文字コードならび).

35 :
The Art of Prolog が PDF で公開されてるのはいいんだけど、テキストデータは無いのかな……
tesseract-ocr でテキスト化してるけど結構大変だ。

36 :
メモリ128GBの環境で述語 foo/1 引数にユニークなアトムを生成して5億節を定義する。

?- between(1,500000000,N),
atom_number(A,N),
assertz(foo(A)),
N = 500000000.

これで110GBを費やした。一節の追加あたり実に220byteということになり、
想像以上に大きくなった。

37 :
処理系は SWI-Prologインタプリタ (64bit版)

アトムテーブルがハッシュで管理されているとして、こんなにメモリを消費
するものだろうか。

38 :
SWI-Prologインタプリタ

一方、atomの生成をやめて、グローバルスタックにリストして整数を積む。

?- findall(N,between(1,500000000,N),L).

これだと1リスト要素ごとに24バイト消費する。

39 :
Microsolft Azure の一時間あたりの料金

G5: 32 コア, 448 GB RAM,6144GB ディスク, \1,044.276/時間

消費税込みで月間81万円くらい。

40 :
448GBメモリを使うことができれば、
Prologのオンメモリデータベースで大企業でもかなりの部分がカバーできる。
ディスクストレージへのバックアップ時間など、課題もあるだろうが。

41 :
% swipl -G445000M

?- findall(N,between(1,18000000000,N),L).

が可能だということ。

42 :
>>41
近い将来には1TBメモリ 100万/月になるだろう
そうなると、プログラム言語の中で最もその恩恵を受けるのはPrologということか

43 :
>>36
% GNU Prolog 1.4.4 でやってみたよ。コードはこんなんでいい?

ps :- shell('ps p $PPID -O sz',_).

eat_memory( Start,End) :-
\+(( between( Start,End,N), number_atom( N,A), assertz( foo( A)), fail)).

main :-
os_version( OS), write( OS), nl,
ps,
eat_memory( 1,10000),
ps,
eat_memory( 10001,20000),
ps,
true.

44 :
% 実行結果

| ?- main.
main.
Linux 3.16.0-4-amd64
PID SZ S TTY TIME COMMAND
2993 32177 S pts/3 00:00:00 /home/i/Downloads/gprolog-1.4.4/bin/gprolog
PID SZ S TTY TIME COMMAND
2993 32807 S pts/3 00:00:00 /home/i/Downloads/gprolog-1.4.4/bin/gprolog
PID SZ S TTY TIME COMMAND
2993 33466 S pts/3 00:00:01 /home/i/Downloads/gprolog-1.4.4/bin/gprolog

(1728 ms) yes
| ?-

% 65 くらいだね。SWI の実装は知らないが 3.5 倍くらいなら驚くほどではないと思う。

45 :
>>39
>>40
>>42
クラウドだとコストかかりすぎだけど
オンメモリデータベースとしての用途は
将来的に今よりもっと出てきそうだね

46 :
>>44
ありがとうございます。3.5倍だとして、ハッシュテーブル等の構築の仕方の
差でしょうか。

47 :
それにしても一億節になると一節の追加時間が二万分の一秒と極端に遅い。
ハッシュの重なりが1万通りくらい出てきて平均5000回リンクを辿ると
いうことか。

48 :
Prologもインメモリデータベースとしてさらに進化するべき時期。
http://www.publickey1.jp/blog/17/intel_persistent_memory2018xeoncascade_lake.html

49 :
そこはHPEのThe Machineじゃないの?

50 :
これは凄いね
https://www.hpe.com/jp/ja/japan/newsroom/press-release/2017/051901.html

51 :
制約論理プログラミングってのでPrologの色んな弱点緩和されてるっぽい。
SWI-Prologにもclpfdなるライブラリで提供されてるらしいけど使ってる?

52 :
>>51
全く使っていない

53 :
GNU Prolog で制約論理プログラミングしてるよ。
ゼブラパズルに置き換えられる問題は世の中に結構ある。

54 :
Prologがメジャーに復帰するためにはもう少し生きたプログラムが
表面に出てこないと

55 :
それに尽きる

56 :
>>48
これって、第四の受動素子「メモリスタ」を使った奴だね。
いずれはこれに置き換わっていくのかな・・・

57 :
Prologのサンプルみたいんだけど、これって他のOOP言語とかでもライブラリとして実装可能じゃない?

58 :
可能だよ

59 :
じゃあprologを使うメリットって何?
いや、別にprologをdisりたい訳じゃないけどどういう言語なのかなと思って

60 :
Prolog Programming for Artificial Intelligence (4th Edition)ってどうですか?
いい本なら買うつもりです

61 :
>>59
Prolog専用の言語環境を使うメリットの話?
そりゃ他言語のライブラリより
餅は餅屋で機能が豊富だから

62 :
>>3
関数型の次は論理型がくる

63 :
中核派のほうに細々と生き残ってるよなあ

64 :
中核派がPrologを使っていたとは。
革マル派はLispですか?

65 :
赤軍は?

66 :
>65

>赤軍は?

赤軍というのは、通常は旧ソ連の軍隊のこと。
赤軍合唱団というのもありますが、
あなたの言いたいのは、日本の「連合赤軍」のこと
でしょう?

67 :
>>66
連合赤軍ではなく日本赤軍のことかもしれないぞ
テルアビブ空港で乱射後自爆した

68 :
だから赤軍派?って言ったじゃねーか!

69 :
>68

>65では、
>赤軍は?

と書いてあって、

赤軍派?

とは、書いてありませんが。
実は「派」の字は書いてあったのだが、
私が老眼の為に見えなかったのでしょうか。


70 :
嫌味なマジレスw

71 :
Prologおじさん改めPrologおじいさんですね

72 :
これくらい誤解されている言語は他にないだろうな。
これ以上はないと言っていいくらい、単純な言語なんだが。

73 :
ラズパイ上で動くPrologが既にあるのだが、どんなアプリが面白いだろうか

74 :
兎にも角にもアレクサ君と連携

75 :
Prologって型定義をしないけど型が全くないという訳ではない
アトム、アトミック、整数、浮動小数点数、リスト
だけどそれ以上に区別する気はない

76 :
ラバパイではそういうわけにはいかないが最近の速いパソコンだとPrologの一つの単一化も
3ナノ秒以下で実行されるらしい
Prologは遅いからとかの言い訳は利かないのかも

77 :
ラバパイじゃ遅そうだな
ラバだからな

78 :
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

79 :
・電通、企業の顧客対応を自動化・高度化する日本語AIサービス「Kiku-Hana」を開発
http://tech.nikkeibp.co.jp/it/atclact/activer/nkpr/RSP474948_22032018/

Prologの採用事例がまた一つ

80 :
自然言語処理はPrologの得意分野だからな

81 :
自然言語処理が確率的な手法で進めば進むほど、Prologの出番が出てくる。

82 :
法律の条文解釈をHaskellでやってるのは見た事あるけど、Prologって、そういうのも可能なんだろうか?

83 :
日本の法律は厳密に定義されていない部分がわりにあってうまくいかないという話をどこかで読んだことあるな
実際の基準や閾値は判例見ないとわからなかったりとか
そういうあいまいなところを実情に合わせて柔軟に解釈して運用することで時代の変化にある程度追従していけるようにしてあるのかも

84 :
憲法解釈でやりたい放題なんだから今さら

85 :
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

E5JQH

86 :
Z7K

87 :
WikipediaのPrologの記載にある種の執念を感じた(笑)

88 :
>87
あれはまだまだ序文にすぎないよ
プロローグだけに

89 :
>88
座布団一枚!

90 :
http://r2.upup.be/wV2qsULdHm

91 :
NGゆき

92 :
TwitterでPrologがちょっと燃えててワラタ

93 :
yarnに採用!おめでとう!
https://jser.info/2019/02/26/yarn-v2berryfastify-v2tslint/
また、ワークスペースの改善としてConstraintsというProlog(実際にはtau-prolog)を使った制約を扱うプラグインが追加されています。ワークスペース間の依存などのルールをPrologを使って記述して、より効率的に扱えるようにするのが目的のようです。

>>92
くやしく。

94 :
パッケージ管理やビルドツールにPrologを使うというのは(Prologを使える人が少ないという点を除けば)極めて良いアイデアだと思う

95 :
なんで今まで誰もやらなかったのかね

96 :
makeで足りてるから

97 :
Prologでリストを使わない人はいないと思うのだけれど、
引数の部分にリスト以外の複合項を全く書かない人もいる。一方、引数に終始、複合項や式が
出続ける書き手もいる。
もちろん、対象領域が違うからという理由が大きいのだけれど、そのことは少し軽く見て、
そういう視点で観察してプログラマを分類してみるのも面白い。

98 :
Prologの本はいっぱいあるけど、GHC系言語の解説書ってないのかなぁ。
あれでどんなプログラミングができるのかいまいちイメージがつかめない。

99 :
>>98
結局、これはいい、という適用分野が見つからなかった

100 :
>>98
30年以上前のしか知らない
https://www.amazon.co.jp/dp/4320022661
読んだことないし


100〜のスレッドの続きを読む
くだすれPython(超初心者用) その47【Ruby禁止】
MATLABプログラミング 質問箱 その4
人工知能ディープラーニング機械学習の数学 ★2
統計解析R たぶんpart3くらい
Visual Studio IDE環境
英語の技術書読めちゃうプログラマ
C言語なら俺に聞け 146
Rubyについて(アンチ専用) Part005
●●●●TCL/TKなら俺に聞け 4●●●●
Ruby 初心者スレッド Part 63
--------------------
【テレ朝】森川夕貴 Part17【報ステ】
〠んこ
これまでのPC人生を振り返って後悔してみるスレ
【WTG】某クスのファッションドール 4体目【センチュリー】
【ウイイレ】Winning Eleven2018 part28【アプリ】
♪ 生まれたての赤ちゃんが見たい ♪82
【ボックス】ハコイリムスメ part12 【ハコムス】
【絡み禁止】Twitter愚痴スレ@同人板 その309【レス禁止】
ダークソウル3 対人・対戦スレpart50
【祝15周年】FLOW Part.28【Fighting Dreamers】
工場単純作業俺(ハァハァ……そろそろ1時間くらい経ったかな)チラッ
【韓国】「5歳の娘が肛門と性器に指を入れられた」…保育園での性的暴行論争が拡散[12/02]
【深層NEWS】韓国経済に 木村教授「昔に比べて重要ではなくなった」クォン准教授「今も日本は重要な国…」[4/5]
【ローリエ茶】スターホース part137【健康志向】
【好きな食べ物】渡邉一成2【妻の手料理】
上坂すみれ часть67
捨て曲のないアルバム 2
艦隊これくしょん〜艦これ〜大湊警備府スレ part436
40歳以上のゲーマー Part38 【ワッチョイ付き】
荒川静香って片桐はいりに似てるw
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼