[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 12/23 11:34 / Filesize : 227 KB / Number-of Response : 759
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Prologでまったり Part4



1 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:23:54 ]
過去スレ
Prologでまったり Part3
pc11.2ch.net/test/read.cgi/tech/1193354806/
PrologでまったりPart 2
pc11.2ch.net/test/read.cgi/tech/1102664221/
Prolog でまったり
pc5.2ch.net/test/read.cgi/tech/976462999/
リンク集
www.summa.jp/lang/logic/prolog.htm
bach.istc.kobe-u.ac.jp/prolog/

チュートリアル
www.amzi.com/AdventureInProlog/
computing.unn.ac.uk/staff/cgpb4/prologbook/
www.intranet.csupomona.edu/~jrfisher/www/prolog_tutorial/pt_framer.html
bach.istc.kobe-u.ac.jp/prolog/intro/
www.geocities.jp/m_hiroi/prolog/
www.asahi-net.or.jp/~JF1T-YSD/prologV2/

625 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 04:00:18 ]
ICOTのサイトのメンテナーってどの団体なんだろうか。
研究成果のページでところどころリンク切れあるのが非常に残念。

626 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 08:25:35 ]
団体って
ボランティアでしょ。

627 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 18:52:35 ]
Bruce Batchelor 著 "Intelligent Image Processing in Prolog"
1991 Springer-Verlag
に出てくる述語群を適切な日本語で置き換えたら興味の尽きないものと
なりそう。こういう労作も永劫に忘れ去られていくのだろうか。

628 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 19:59:29 ]
>>587
ひとついい忘れたというか書き落としたことですが、
データを入力する、
その直後に、あ、あれなんだったっけと質問する。
今入力したデータはもちろん、まったく関係ない例えば人名など。
それを解決して、次の入力。
このように進行するためには、別のWindowに移るだけでアウトですね。
同じWindowの次の行で質問して、また、元の仕事に戻る。

このためには、これからデータ入力するよと宣言した負節を起動する
のではだめです。常に質問するのに「最良の」環境を維持しなくては
ならない。インタプリタに拘る一番の理由は寧ろこちらの方でしょう。

629 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 20:06:54 ]
Smalltalkという言語ができてしまって、この言葉が使えないのですが、
Prologという言語はまさにSmalltalkそのものなのですよ。
ぼそぼそと質問して、了解したら、というか了解できなくても、
またぼそぼそ。小さな質問を積み上げていくことで、少しずつ、
像を築き上げていく。そういう環境です。そのための準備をする
のがPrologプログラミングです。常にぼそぼそだかポロポロだか
わかりませんが、対話してる、それに相応しい言語がPrologです。

630 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 23:53:23 ]
質問させてください

第1引数が第2引数の部分集合(リスト)であれば成功、さもなければ失敗する述語。
第1引数と第2引数はそれぞれリストで、
これらの重複部分を除いた要素すべてをリストにしたものが第3引数の値となる(和集合)

を作りたいのですがどうすればいいのでしょう・・・・。

631 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 04:07:06 ]
>>630 最初の質問への答え
AがリストLのなかに存在するかどうかは
?- append(L0,[A|L1],L).
または
?- member(A,L).
で確かめることができます。それで最初の質問は
部分集合([],L).
部分集合([A|R],L) :- member(A,L),部分集合(R,L).
つまり、要素として存在しないケースの節を定義しない! ことによって実現します。
append/3とmember/2はほとんどのProlog処理系で「組み込み述語」となっているため
ユーザが定義する必要はありませんが、
append([],X,X).
append([U|X],Y,[U|Z]) :- append(X,Y,Z).
member(A,[A|_]).
member(A,[_|R]) :- member(A,R).
がそれぞれの定義です。

632 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 05:03:35 ]
>>630 二番目の質問はそれぞれのリストが集合を念頭に置かれたもので
あるかどうかで、述語の定義は変わってきます。それぞれが集合の場合は、
第一引数、第二引数のそれぞれに於いては重複する要素はありませんから、
>>631のappendの定義をちょっとだけ変形して
和集合([],X,X).
和集合([U|X],Y,[U|Z]) :- \+(member(U,Y)),和集合(X,Y,Z).
和集合([U|X],Y,Z) :- member(U,Y),和集合(X,Y,Z).
で実現できてしまいます。
つぎに、第一引数と第二引数自体に重複があり得る場合は、
重複を取り除く([],[]).
重複を取り除く([A|R1],[A|R2]) :- \+(member(A,R1)),重複を取り除く(R1,R2).
重複を取り除く([A|R1],R2) :- member(A,R1),重複を取り除く(R1,R).
を定義しておいて、
和集合(L1,L2,L3) :- append(L1,L2,L4),重複を取り除く(L4,L3).

633 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 07:09:52 ]
>>632 すみません、重複を取り除く/2の最後の節の最後が間違っていました。
重複を取り除く([],[]).
重複を取り除く([A|R1],[A|R2]) :- \+(member(A,R1)),重複を取り除く(R1,R2).
重複を取り除く([A|R1],R2) :- member(A,R1),重複を取り除く(R1,R2).
R2とするべきところがRになっていました。



634 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:18:57 ]
>>629
モノローグ?
スモールトークは“軽いおしゃべり”だからボソボソってイメージじゃないので。

635 名前:630です [2009/11/04(水) 13:16:27 ]
すいません
プログラムの実行結果書くの忘れてました


?- subset([a, b, c], [a, b, c, d, e]). ⇒ yes
?- subset([a, b, c], [d, e, f, g]). ⇒ no
?- subset([a, b, c, d], [a, b, c]). ⇒ no

?- union([a, b, c], [a, b, d, e],[a,b,c,d,e]). ⇒ yes
?- subset([a, b, c], [a,b],X). X⇒ [a,b,c]
?- subset([c, d,e], [a, b, c],X). X ⇒ [c,d,e,a,b]

となります
appendとmemberはサブで使うらしいです

636 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 02:45:40 ]
>>635
最後のsubset/3の二節はunion/3ではないかな

637 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 06:07:32 ]
>>634
なるほど。私はネクラだから。monoっていうのはひとりということなのかな。
隠れキリシタンの末裔が講でポロポロやってるのだとするとmonologueか。
インタプリタのトップっていうのは一応会話するところなのだが・・・

638 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 08:48:01 ]
>>636さん
すいません
その通りです

639 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:43:14 ]
>>637
でも、ボソボソって会話って感じじゃない様な
ポロポロは、会話にも、一人の発話の雰囲気にも、使わない感じが

640 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 13:40:00 ]
ポロポロは田中小実昌の小説で使われた表現なんだな
実は「てんにましますわれらの・・・」とか言ってたんだろうけれど。

641 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 16:21:49 ]
Prologで自然言語処理における意味解析を学んでいるものです。。

wordnetを用いてPrologでシソーラスを定義しようとしています。


しかし、いまいちwordnetをPrologで使う方法が分かりません。

どなたか詳しく説明されているサイト等ご存じないでしょうか?

642 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 03:03:25 ]
方法はわからんが、WordNetはクラス、インスタンスを混同しているとか、is-aの関係を誤解している
という批判がある(溝口理一郎 オントロジー工学)ので、Cycのほうがいいんではないだろうか。

関係ないけど同書にあるIFF(information flow framework)というのが面白そう。
上位オントロジーの言葉として圏論を使うみたいよ。個人的にいろんなものが繋がって興味深い。
IFF
www.ontologos.org/IFF/The%20IFF%20Language.html
IFFの数学面
www.ontologos.org/IFF/Overview/Mathematical%20Connections.html

643 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 03:16:18 ]
圏論の創始者の一人であるマックレーンは、『数学−その形式と機能』という本の中で、
形式主義をも包括する機能的形式主義という、オントロジーの哲学みたいなことをやっているから、
当然といえば当然なのだろうけれど、実際に見ると驚いてしまう。



644 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 05:37:55 ]
ただ、やっても袋小路に行き着くのが目に見えてるわ。
これもやっぱダメポ。

645 名前:デフォルトの名無しさん [2009/11/19(木) 12:18:03 ]
このスレも袋小路に入ってるね

646 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 22:17:58 ]
気に触ったのなら申し訳ない。自分には使いこなせそうに無いという意味で、
否定する意図は無い。

647 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 08:43:42 ]
>>625
そういえば、FTP経由で提供されていたもの(「ICOTフリーソフトウェア」など)には
すでに移転前からアクセスできなくなっていたけど、提供側も気づいてないような気がする。

648 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 07:25:17 ]
Prologプログラマに質問です。
1) あなたが小さな述語を定義するとき、リピートパターンの述語の比率はどのくらいになりますか。
ここでリピートパターンとは
r.
r :- r. の型の非決定性述語であり、代表的なものとして、append/3 や member/2 があります。
2) あなたは再帰的な述語定義をする際、追加して1)のタイプの定義を作っておきますか。

質問は以上です。


649 名前:648 mailto:sage [2009/11/29(日) 07:34:25 ]
2) は意味不明でしたね。1)は再帰的ですから。
ステッパーパターンと呼べばよかったとわかりました。

650 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 13:18:18 ]
2年以上前ですがこんなのあったんですね。

渕一博記念コロキウム
『論理と推論技術:四半世紀の展開』
www.ueda.info.waseda.ac.jp/fuchi-colloquium/
www.ueda.info.waseda.ac.jp/fuchi-colloquium/programme.html

651 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 08:27:15 ]
ああ、全容わかんないって言っちゃったけど、大体分かった気がする。
オントロジーやりたかっただけじゃん。

652 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 06:25:46 ]
>>648
典型的には、

p(quit,_).
p(A,X) :- q(A,X).
p(A,X) :- q(A,_),!,r(A,B),p(B,X).
p(A,X) :- s(A,C),p(C,X).

のような定義かな。
完全にこの形式のものとなると少ないでしょう。


653 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 06:38:12 ]
p(quit,_).
p(A,X) :- q(A,X).
p(A,X) :- q(A,B),!,p(B,X).
p(A,X) :- s(A,C),p(C,X).

という場合も多いのかな。q/2の中の副作用だけ取り除いた、
q2/2を定義して、

p(quit,_).
p(A,X) :- q(A,X).
p(A,X) :- q2(A,B),!,p(B,X).
p(A,X) :- s(A,C),p(C,X).

も考えられる。




654 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 07:05:59 ]
一般型ということになると、

p(quit,_,[]).
p(A,X,[]) :- q(A,X).
p(A,X,[A|R]) :- q(A,B),!,p(B,X,R).
p(A,X,L) :- s(A,C),p(C,X,L).

も有力。

655 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 07:25:06 ]
>>654 まちがえたのかな

p(quit,_,[]).
p(A,X,[A]) :- q(A,X).
p(A,X,[A|R]) :- q(A,B),!,p(B,X,R).
p(A,X,L) :- s(A,C),p(C,X,L).

第二節を訂正した。Xが取れた時に、収集リストのなかにAが
存在する必要がある。

656 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 13:01:05 ]
いつの間にか、WikipediaのPrologの項が大幅に追加されている。
以前私がこのスレで難解と書いたLISPの括弧と集合の部分は削除されている。
カルメラウアーとコワルスキーの部分は変化なし。

657 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 04:58:34 ]
「Trueを返す」という表現に面食らった

658 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 05:15:39 ]
最近作ったプログラムの実行例
| ?- t1(3,6).
-1
---3
------6
----------10
---------------15
---------------------21
-------------------------25
---------------------------27
---------------------------27
-------------------------25
---------------------21
---------------15
----------10
------6
---3
-1
yes
副作用バリバリのプログラムを移植する練習

659 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 18:59:42 ]
>>657

> Prologの処理系は、人間が入力した命題と一致する節があるか調べ、あった場合はその本体部に記述されている命題と一致する節があるか再帰的に調べる。

この部分違和感があるのだけれど、論理の世界ではこれていいの? 特に、
「あった場合はその本体部に記述されている命題と一致する節があるか再帰的に」
という部分だけど。


660 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 22:35:57 ]
>>659
では違和感の無いように変更おねがいします

661 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 23:02:00 ]
最初の「一致する」とあとの「一致する」では探索の対象が違うはずじゃないかということかな。

それよりまず、「一致する節」と言ってしまうと目標が(頭部だけでなく)節全体と単一化するみたいに聞こえるから、
せめて「適合する」とかちょっとずらすとごまかせるかもしれない、なんて思ったりして…

662 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 23:03:41 ]
あ、ごめんなんか勘違いした。前半ナシw

663 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 04:54:28 ]
本体部が Q1,Q2,Q3. だとすると、

(Q1,Q2,Q3) :-

なんていう定義節はない、ということだよね。だからといって、
Q1,Q2,Q3 を順に確かめることを再帰的にといっているわけでもなさそう。



664 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 05:48:33 ]
「命題」のような言い方の問題点が>>231以降に出ていた

665 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 11:58:25 ]
www.doc.ic.ac.uk/~klc/DistKR.pdf ちょっとまえに話題になったGOは
prologベースのオントロジー指向プログラミング言語だったのね。
GoogleはWebのオントロジー技術(ページランク)で発展した企業ともいえるから、
研究しているのは当然か。

666 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 12:00:57 ]
GoとGo!は違う

667 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 17:28:40 ]
>>666
申し訳ない。間違えてた。

668 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 18:36:36 ]
>>667
Francis G.MCabe の
www.amazon.co.jp/Objects-Prentice-Hall-International-Computer-Science/dp/013536079X
は良書。

669 名前:668 mailto:sage [2009/12/14(月) 18:38:43 ]
Francis G.McCabe だ。不思議な名前だね。

670 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 00:29:59 ]
Mcというのはゲール語で「息子」って意味。
昔アイルランド/スコットランド系の人たちには名字がなかった。
法律で名字が必要になったから、
「ローリンさんの息子のジョン」と呼ばれている人は、
John Mclauglinと名乗ることにした。
McDonaldはもちろん「ドナルドさんの息子。」

671 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 04:11:21 ]
>>670
Prologとはまったく関係ないが、とても勉強になた。

672 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:45:22 ]
親父のファリミーネームは息子と違うの?
親子3代皆違う名字?完全にスレ値だけど、すげー気になる。

673 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 01:34:05 ]
キーワードは「父称」だ
ja.wikipedia.org/wiki/%e7%88%b6%e7%a7%b0



674 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 22:43:50 ]
おお、ありがとう。

675 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 08:24:07 ]
O'ってのも息子って意味らしい。
Objective CamlがOCamlってはそんな意味にも引っ掛けてあるっぽい。


676 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 17:49:44 ]
ち・ん・こ

677 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 12:26:02 ]
>>>676
その名前を書き込むなよ。
本当に来ちゃったら…

678 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 20:09:58 ]
あいつはHaskellかScalaが引きとってくれるだろう。もしくはRuby。

679 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 02:10:37 ]
知恵を貸してください。
今宿題で嫉妬深い恋人たちの問題をやっていて
初期状態とゴール状態をそれぞれ
initial_state(jealousy, jealousy(left,[1,2,3],[1,2,3],[ ],[ ])).
final_state(jealousy(right,[ ],[ ],[1,2,3],[1,2,3])).
と作って指し手の移動と状態変化についてはかけたのですが
状態変化したときの合法性のチェックでつまっています。
legal(jealousy(right,[[1],[1,2]], [[2,3],[3]]) ×
legal(jealousy(left,[[2,3],[2,3]], [[1],[1]])  ○
としたいのですがどうしたらいいのでしょうか?


680 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 09:54:59 ]
>>679
何が疑問なのかよくわからないのだけど、右側だけだと、

legal(jealousy(_,_,_,[],[])) :- !.
legal(jealousy(_,_,_,FL,[])) :- !.
legal(jealousy(_,_,_,[],ML)) :- !.
legal(jealousy(_,_,_,FL,ML)) :- member(A,FL),member(A,ML).

で良さそうだけど。

681 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 10:07:36 ]
まちがった。

legal(jealousy(_,_,_,[],[])) :- !.
legal(jealousy(_,_,_,FL,[])) :- !.
legal(jealousy(_,_,_,[],ML)) :- !.
legal(jealousy(_,_,_,[A|R],ML)) :-
  member(A,ML),
  legal(jealousy(_,_,_,R,ML)).


682 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 10:19:14 ]
右側は誤解を生じる表現だった。状態遷移後というべきか。
下の述語定義をして、right,leftそれぞれチェックする目標を立てればいいのではないかな。

legal(jealousy(FL1,ML1,FL2,ML2)) :-
  legal(jealousy(FL1,ML1)),
  legal(jealousy(FL2,ML2)).

legal(jealousy([],[])) :- !.
legal(jealousy(FL,[])) :- !.
legal(jealousy([],ML)) :- !.
legal(jealousy([A|R],ML)) :-
  member(A,ML),
  legal(jealousy(R,ML)).


683 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 21:43:58 ]
>>680-682さん
レスありがとうございます。
しかし試してみたところ何をやってもnoと出てしまうのですがどうしたらいいのでしょうか?




684 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 22:44:01 ]
>>683
% legal(jealousy(left,[[2,3],[2,3]], [[1],[1]])

?- legal(jealousy([2,3],[2,3],[1],[1])).
yes
?- となりませんか。それから>>682の定義は5節とも述語legal/1であり、
好ましくない定義でした。第一節とそれ以降の節とは構造が異なりますから、
事実上別の述語とも見なせますが。
英語がよくわからなかったのでw そのまま使ったのですが、述語定義の引数は
できるだけフラットなものにしたい。構造体はリストのレベルまでですね。
フレームなどは例外中の例外。


685 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 18:12:17 ]
>>684 意味不明かな。

legal(jealousy(FL1,ML1,FL2,ML2)) :- より、

legal_jealousy(FL1,ML1,FL2,ML2) :- であるべきだということです。

英語がよくわからないので、例えば legal_jealousy という表現が英米人に
とって滑稽だったり大変不自然なものであるのかどうか私にはわからないので、
それを避けて、そのままの構造を借りたの意味。

686 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 17:12:48 ]
亀レスすいません>>683です
does not exist

とでてしまいます

687 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 18:08:14 ]
>>686
字下げのための全角スペースが述語名の一部となっている?
字下げがしてありますね。2chでは2個以上の半角スペースはなぜか、一個に
まとめられてしまいます。それで、はっきりした字下げを表現するため、
半角スペースは全角のスペースに書き換えられています。もし、この状態から
copy&pasteでコードを写すと、'  leagal'(jealousy( ... というような
全角二個が前に付いた述語が定義されることになってしまいます。
これだと、副目標 leagal(jealousy([2,3],[2,3],[1],[1])) はleagal/1が
存在しないとなります。そういうことがないか確かめてください。

688 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 00:01:46 ]
>>687さん
亀レスで重ね重ねすいません
どうやら勘違いしていたみたいで無事できました。

本当にありがとうございました。

689 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 08:58:47 ]
昨秋以降 Wikipedia のPrologの項が大幅に更新されました。
ご存知ない方のために、一度ageて広報します。

690 名前:デフォルトの名無しさん [2010/01/12(火) 09:00:33 ]
昨秋以降 Wikipedia のPrologの項が大幅に更新されました。
ご存知ない方のために、一度ageて広報します。

すみません、上げ損なったので再度書き込みます。

691 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 15:45:08 ]
やっと規制解除された…以下記念に再掲
sports2.2ch.net/test/read.cgi/entrance2/1258584095/975
975 :Classical名無しさん sage :09/12/22 23:06 ID:Eyor18Do
pc12.2ch.net/test/read.cgi/tech/1235561034/601-700
Prolog猿ビア探検隊

ttp://cpansearch.perl.org/src/JJORE/AI-Prolog-0.740/examples/monkey.pl
ttp://web.archive.org/web/20060213075213/www.compapp.dcu.ie/~alex/LOGIC/monkey.html
> perform(climb,
> state(MP, BP, onfloor, H),
> state(MP, BP, onbox, H)).

猿の位置(MP)と箱の位置(BP)が違っても
猿が箱の上に登れるようになってると思うけど、変ではなかろうか

692 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 18:12:10 ]
>>679
jelousyという構造(複合項)の形が食い違っている上に説明がないので憶測で書きますが、
legal(jealousy(_,LMs,LFs,RMs,RFs)) :- legal_bank(LMs,LFs), legal_bank(RMs,RFs), !. % RMsはright (bank) malesの略、他も同様
legal_bank(Ms,Fs) :- \+ ( member(F,Fs), \+ member(F,Ms), member(M,Ms), M =\= F ).
こんな一行勝負もどうでしょうか。
あるいは場合分けして
legal_bank([],_). % そもそも男がいない(いても女だけ)
legal_bank(Ms,Fs) :- \+ ( member(F,Fs), \+ member(F,Ms) ). % 夫と離れた女がいない(すべての女に夫がついている)

693 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 18:13:43 ]
いつも間違える…
× jelousy → jealousy



694 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 22:45:37 ]
10年以上前にProlog協会という団体主催のPrologの講習を受講した。
その時、実践的だがすごく癖のある授業をやった人がいた。たしか会長か副会長。
pc12.2ch.net/test/read.cgi/tech/126144349/
を呆然とROMしているのだけど、Prologのコードを書いてる人、
あの人ではないかと思えてきた。

695 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 04:15:20 ]
126144349
1261443439 ←こっちと思われ
いろんな言語で宿題スレ 第三編

696 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 06:20:43 ]
>>695
そうでした。どこで一桁落ちたのかな。ご足労掛けました。
repeatに引数を加えていくとmemberになるという内容の授業だった。
引数の付加の仕方によって、どう性質が変わるかを副目標側のからの
視点で徹底的に考える。ただそれだけ。
このスレの>>652-655辺りも、もしかしてw

697 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 06:40:55 ]
それにしてもあのスレのPrologのコードは強烈ですね。私のProlog観は
完全に打ち砕かれましたw 太宰治が書いたコードのようです。饒舌で。
もうひとり数式処理向きの関数型言語で書き込んでいる方がいて
こちらのコードは極端に短いものが多くて、際立った対照を示して
いて、見てて飽きないですよ。

698 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 11:06:13 ]
>>694
そのころProlog協会の代表幹事はK-Prologの作者です。別人ですね。


699 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 10:32:01 ]
>>694
Prologには帰納推論をやる一派がいたので、
近くの研究室にも、ああいうプログラム書ける人たくさんいたよ。
意外とあちこちに潜んでいるのでは?

700 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 23:14:28 ]
第五世代の評価というか総括をしている文献って知りませんか?
一体第五世代計画とはなんだったのかということが非常に気になっています。

できれば、西垣通氏のルルス関連の話のように社会学関連のアプローチだと
なお嬉しいです。

701 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 23:29:22 ]
>>700
>>650のサイトは見た?

というか、宗教と第五世代に関連性はありません。

702 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 00:00:09 ]
>>701
そこのサイトはすでに見ました。
第五世代で宗教にアプローチなんてしていないので関連性があるなんて思ってないですよ。
そうじゃなくて、社会学的にどういう位置づけになっているのかどうかということです。
技術的な話は発散しているので必要なもの以外は追うつもりはないです。


703 名前:702 mailto:sage [2010/01/23(土) 01:51:12 ]
でも、実際最初は自分も西垣氏の話を読解力の無さから読み違えてたので他人のことは言えません。
ちゃんと読み解くとそんなことは言ってないのですよね。



704 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 04:41:03 ]
上前淳一郎が第五世代コンピュータに関するノンフィクションを書いている。
社会的背景が生き生きと描かれていて面白い。


705 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 05:27:13 ]
奇妙なことはあれだけのプロジェクトにも関わらず、
出版物として総括した大冊がないことです。途中までは共立出版等から
啓蒙本が多数出版されていたのですが、肝心の並列処理に入ってから
はさっぱりでしたし、終了後にまとめがあるのかと思ったら、
研究発表以外にはない。総予算の規模からいってもバランスが悪く
異様です。手を挙げる出版社がなかったからでしょうか。

706 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 08:47:54 ]
大冊を求めてるなら、知らん、としか答えられんが。

淵氏がコラム程度の分量を書いたものなら、『情報処理』で見かけた記憶はある。

707 名前:702 mailto:sage [2010/01/23(土) 12:27:02 ]
>>704
"めざすは新世代コンピュータ?「日本の夢」に挑む頭脳集団 (角川文庫)"
ですね。これはおもしろそうです。早速読んでみます。

>>705
結局何をしたかったのかよくわからないのですよね。
啓蒙書の類も推論や言語を扱うという意外は一貫性がないです。
一番おかしいと思うのが、アーキテクチャを作るという計画のハズなのに、
アーキテクチャに関する文献が見当たらないというところです。一般向けでは
ないからかもしれないですけど、それにしても見当たらなすぎるのですよね。
本当のところ淵氏としては、認知科学やりたかったんじゃないかと、
www.amazon.co.jp/dp/4140014466/

>>706
「情報処理」のコラムですね。国会図書館あたりで探してみます。

708 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 14:53:47 ]
個人的には、当時としてはやってみなければ成否は誰にも断言できないことだったのかもしれないとは思うが
たとえば人工知能云々には当時ですら胡散臭さやら無邪気すぎるものやらを感じたなあ。
そういう点で>>704は興味深いと思う。

結局はこういう話になってしまうのだろう
ja.wikipedia.org/wiki/%E7%AC%AC%E4%BA%94%E4%B8%96%E4%BB%A3%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF

709 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 14:59:37 ]
もちろん、真面目な研究が行なわれていた(らしい)のはわかるけどねw
技術的にあんまり突っ込んだことを追う気はないようだが
共立出版の「続・新しいプログラミング・パラダイム」の「並行プログラミングとGHC」が
文献リストなども含めて何かの手がかりになるかもしれない

710 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 15:34:37 ]
第五世代コンピュータの並列処理
滝 和男 編
発行年月:1993年06月
発売元:共立出版

というのはあったんだけどね。
最初のころの話に出ていた、データフローマシンとか、リダクションマシンとか、いわゆるノイマン型とは根本的に
違うものがつくられることを期待していたから、実際にできたのがノイマン型を並列化したものだと知ってガッカリした。
技術的にはすごいことなんだろうけどね。

711 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 15:49:34 ]
www.jstage.jst.go.jp/article/jssst/25/3/3_66/_pdf/-char/ja/
淵氏としてはプロジェクトは成功なんですよね。

712 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 15:56:37 ]
”成果の具体的な内容については、報告書類が山のようにある。これは秘密では
ないので12年分を入手して検討すれば、試行錯誤を含めて全部わかるように
なっている。しかし膨大なことになるので、解読してくれるような奇特な人が
いるかどうか。”
なんとなく予感はしていたのですがJIPDECのサイトは内容についてどなたも全容を
把握していないのではないですか?

713 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 01:22:15 ]
>>700
> 社会学関連のアプローチ
そもそもこれが何を意味するかはともかくとしてだw

そういうものが今になっても存在しない(?)あたりが
今も昔も産官学の限界なんだよね

で、Prologスレで手に負える話ではないのでそろそろ勘弁してもらいたい



714 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 01:53:00 ]
建設的な話でもあればいいけど、怪しいですよね、おかしいですよねの列挙だったら
スレ違いかもしれないな。

実際それは挙げていったらきりがないと俺も思うがw

715 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 08:46:47 ]
誰かが立てて放置されてる第五世代スレがありそうなもんだが。
それを再利用するとか。

716 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 23:55:47 ]
東大や理科大行けば、論文やテクニカルレポートが全部残ってるはず。

>>705
バランスが悪いということだけど、
例えば国内外のどの研究プロジェクトと比べて、
「啓蒙書が少ない」ことが「異様」なのでしょうか。
むしろ、異常なくらい教科書的な書籍を産み出したプロジェクトだと思いますが。

>>707
Σ計画なんかもそうですが、お金が動かないと、
官僚&政治家はなかなか新しいプロジェクトを始めてくれません。
メーカーへ予算ばらまきが出来るようにするには、
ハードウェアも込みである必要があるのです。
これは研究プロジェクトというより、誠治の方の問題です。


717 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 00:53:46 ]
>>716
真っ先に仕訳の対象になるわ

718 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:18:45 ]
>>716
教科書的な書籍とは共立出版の「知識情報処理シリーズ」のことですか?

719 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 18:18:26 ]
ICOTの成果が出始めるのはこれからだよ。20年後かも。


720 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 21:49:52 ]
>>719
Prolog は論文を書くためだけの言語
ICOTの成果として、狙い通り、論文が大量生産された

721 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 01:10:47 ]
Prologを材料に論文を書くの意味ですか。
でも、あなただって携帯が故障したら、Prologのお世話に
なってるかも知れませんよ。

722 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 04:58:09 ]
GHCなんかは、並列(平行)に「仕切る」ための言語という
印象が強いのだけれど、そういう位置での制御要請は
今後多くなっていくものだろうか。

723 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 10:38:47 ]
>>722
個々の自動車の平行プログラミングは関数型で勝手にやらせるので済むかもしれないが、
俯瞰的な平行動作、たとえば自動車と通信しながら制御する信号の記述などでは
GHC的なものが最有力ではないか。




724 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 04:23:23 ]
クラウドコンピューティングが来ている以上、GHCの並列計算が見直される
チャンスも普通に多いだろ。誰も提案しないだけで。

725 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 16:58:18 ]
クラウドコンピューティングは並列計算じゃなくて分散技術や信頼性工学の話だからな…

726 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 18:38:27 ]
>>721
携帯じゃなくて、ADSL回線じゃなかったっけ?


727 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:18:33 ]
携帯の故障診断はさすがに大変じゃないかな。半端な数でないし。
ADSLでも10台以上同時に動かしてるんでしょ。それにしても、
こんな大規模な実務に使われてるのにAZ-PrologはWikipediaにも紹介
されてないね。


728 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 10:26:25 ]
正直MapReduceがどうしてこれほどもてはやされてるのか分からない。
あんなん普通にやってたことっしょ?
大規模に現実に適用したからってこと?


729 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:58:50 ]
>>727
5年以上前だと思うけれど、ソフトバンクが10人単位でPrologプログラマの
募集をした。ところが応募はなかったらしい。
ソフトバンク+Prologという組み合わせでは将来の地位が不安ということ
だったのかも知れないけど、日本の大学生も根性がないね。


730 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 18:20:35 ]
威勢がいいだけならチンピラ

731 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 18:35:15 ]
威勢ねぇw


732 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 18:45:12 ]
Prologで実務的なプログラムを書くことができる人は四十台後半より上。
あと10年待てば大量にリタイアが始まるから供給は充分になる。

733 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 20:08:41 ]
>>729
ソースは?



734 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 00:41:47 ]
>>733
私が募集しているという記事を読んだ。こちらはたしか。
誰も来なかったというのはうわさ話。

735 名前:デフォルトの名無しさん [2010/03/02(火) 21:43:53 ]
復旧おめでとう age

736 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 06:43:51 ]
お願いがあります。
「いろんな言語で宿題 第三編」pc11.2ch.net/test/read.cgi/db/1252492296/ スレが
512Kb越えで終了してしまいました。
新しい「いろんな言語で宿題 第四編」スレを作ろうとしたところ、
現在スレ立て規制中、とのこと。私は2chのユーザIDとパスワードを忘れてしまって
特権がないので、だれか立てられる人がいたら立ててください。前口上は
「前回スレは512Kbを越えたため、終了しました」だけで結構です。

737 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 12:56:10 ]
>>736
ためしにやってみたら、できてしまいました。
いつもお世話になっています。
J言語などでかきこみしているものです。
これからもよろしくお願いします。

738 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:13:44 ]
>>737
ありがとうございました。私のPrologコードは外連ですが、
あなたのプログラム群のおかげであのスレはム板の中で一番
輝いています。
"bit"は1970年代中頃から愛読していましたが、結局休刊になる
前に購読しなくなりました。配達してくれていた書店が廃業した
ので。

739 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:52:10 ]
>>738
新しいスレ、なんか変なことになってますが、私は1番しかかいてないですよ。

「bit」は読んでいましたけど。

740 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 18:17:26 ]
荒れないうちに問題をはじめましょう。

741 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 23:15:52 ]
辞書なんて所詮、偽装された百科辞典だ。

742 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 14:42:52 ]
Prologの現代的(?)な応用って何かある?
到達点がエキスパートシステムとか自然言語処理とか止まりだと先が無さそうに思うんだけど。

743 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 15:28:25 ]
>>742
エキスパートシステムや自然言語処理が我々のプログラミングの随所に
登場という状況を知らない。まだ、そのレベルにも達していないのでは。




744 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 15:32:43 ]
Prologの役割は自然言語によるプログラミングへの橋渡しをすることに
ある。まだ何も始まっていない。


745 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 15:39:38 ]
当分の間始まる見込みもない

746 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 20:58:06 ]
>>742
Prologの現代的な応用 : 論文を大量生産する

747 名前:初心者 [2010/07/04(日) 23:36:36 ]
prologを勉強してて、以下のページの

mayah.jp/article/2002/reversi#toc-tplace-pl
このリストがよくわからないのですが
[[X, X, X, X, X, X, X, X],
[X, X, X, X, X, X, X, X],
[X, X, X, X, X, X, X, X],
[X, X, X, X, X, X, X, X],
[X, X, X, X, X, X, X, X],
[X, X, X, X, X, X, X, X],
[X, X, X, X, X, X, X, X],
[X, X, X, X, X, X, X, X]]
わかるかたお願いします。

自分的には、
[[X, X, X, X, X, X, X, X],
[X, X, X, X, X, X, X, X]]
の縦と横のリストだけでいいのではと思うのですが。

748 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 04:34:12 ]
>もともと大学の課題なので、データ構造等は結構適当に定められてしまっています。
らしいですよ

749 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 06:45:55 ]
>>747
部分的な局面の思考に全局面のデータを持ち回ることはないだろう、という意味ですか?


750 名前:初心者 [2010/07/05(月) 17:59:40 ]
>>749
そう思ったのですが・・・
やはり、全マスをあらわしてるのでしょうか

751 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 06:07:17 ]
>>750
私は実行時のヒープ領域やスタックの実際の使われ方、動きについては詳しくないので
他の方の説明を待つとして、

・ 全局面を表すリストのリスト(8×8)を引数で渡していくことにあまりコスト(時間とメモリ)はかからないと思う。
・ 全局面のデータを単位節と定義しておいて、それを参照して、部分リストと二本取り出し、
  それを加工してから、list_nthとappendを駆使して(実際には一つの述語にまとめるだろうが)元の全局面データである単位節をretract+assertするのは
  結構コストがかかる選択なのではないか。


752 名前:デフォルトの名無しさん [2010/07/18(日) 18:45:24 ]
学校の宿題で、ハノイの塔の問題が出たんですが・・・棒が5本のときの組み方がわかりませんorz

誰か助けて下さい!
ちなみに3本のときは、
move(N,A,B) :- display(N), display(' from '),
display(A), display(' to '),
display(B), nl.

hanoi(1,A,B,C) :- move(1,A,C).

hanoi(N,A,B,C) :- M is N-1, hanoi(M,A,C,B),
move(N,A,C),
hanoi(M,B,A,C).

こんな感じで書きました。

753 名前:デフォルトの名無しさん mailto:sage [2010/07/21(水) 06:10:01 ]
手数が適当でいいなら、同じプログラムが流用できるよねw
逆に、手数を最小にせよ、のような縛りがあるなら、別にPrologに特有の宿題じゃないような気がする



754 名前:デフォルトの名無しさん [2010/07/23(金) 00:31:29 ]
>>753
先生がドSでして・・・手数を最小にするように縛りがあります;

755 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 23:24:48 ]
FDって使ってます?

756 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 23:28:59 ]
最近は使う機会がめったに無いね。
ただ、たまに緊急ブートで使うことがあるから確保はしてあるけど。

757 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 23:46:29 ]
まさかフロッピーディスク?wwww 今時FDドライブ付いてるPC少ないだろ
>>755はCLPのFD(Finite Domain)のことじゃねーの?あれ、釣られた?

758 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 23:50:22 ]
覆面算ならFDに限る






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<227KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef