トップページ⇒tech
983コメント289KB

Prolog でまったり

■ このスレッドは過去ログ倉庫に格納されています
0001人工無能NGNG
Cなどの言語とは全く得意分野も構造もちがうProlog。
そんなPrologについてまったり話しましょう
0101デフォルトの名無しさんNGNG
prologで定義された事実=演繹データベース
SQLとは次元が異なる
SQLみたいなのは、帰納的って事だろうね
0102デフォルトの名無しさんNGNG
演繹=えんえき
かな?難しい漢字
0103デフォルトの名無しさんNGNG
>>97
Warren Abstract Machineか.懐かしいな.
0104デフォルトの名無しさんNGNG
あげちゃうぞ
0105デフォルトの名無しさんNGNG
prolog 使えないけど一番好きな言語
0106デフォルトの名無しさんNGNG
なんだそりゃ。
0107105NGNG
prolog 使える分野が実用的でない。(儲からない)
けれども個人的にはシックリくる言語
0108106NGNG
ああ、そういう意味か。
あなたがプログラム組めないけど好き、という意味かと思った(w
0109デフォルトの名無しさんNGNG
エキスパートシステムに使われてるんじゃないんですか?
0110デフォルトの名無しさんNGNG
prologはチンポこするのに便利だよNE!
0111デフォルトの名無しさんNGNG
>>110
チンポ自分でこすってるの?
おれは今こすられてるよ!ハァハァ
0112デフォルトの名無しさんNGNG
嘘つけ!
011397NGNG
>>103
そう!それ!
今のProlog勉強する学生さんは読まないのかな?
0114デフォルトの名無しさんNGNG
>>110
なんでprologとチンポが結び付いたのかが気になる
0115デフォルトの名無しさんNGNG
>>100
いまや(てか歴史上ずっと?)SQLしか存在しないに等しいけど、
Datalogってのがあったの。
関係論理に基づく問い合わせ言語なの。
Prologからカットをなくしたような言語だったらしいの。
動くのみたこ都内の。
0116>>115NGNG
Warren Abstract Machine の本にたしかDatalogの話
出てたように思われ…
0117デフォルトの名無しさんNGNG
>>100
> SQL勉強してるんだけど、Prologってデータベースと何か関係ある?

論理述語はrelationと関係が深いので大あり。

Datalogは、Prolog知る者にとっては、SQLよりずっとpretty。
"Reational" databaseという事の意味も分かりやすい。
0118デフォルトの名無しさんNGNG
>>100
乱暴に言えば、SQLのテーブル名がDatalogでは関係を示す
述語名になると思われ
0119デフォルトの名無しさんNGNG
思われヤメロ
0120デフォルトの名無しさんNGNG
>>119
嗤
0121デフォルトの名無しさんNGNG
確かこんな感じと重割れ

:- 戸籍(Person, '東京'), 年齢(Person, Age), Age <= 14, アダ名(Person, 'モナー').
{ { Person = '思えモナー' }, { Person = '白松がモナー' } }

David Warrenさんの近況:
http://www.cs.sunysb.edu/~warren/
ftp://ftp.cs.sunysb.edu/pub/XSB/doc/XSB/wfswam.ps.gz
ftp://ftp.cs.sunysb.edu/pub/XSB/doc/XSB/lrdwam.ps.gz
「ワムワムだよ、人生は。」Warren
0122デフォルトの名無しさんNGNG
「Prologで はまったり」かとオモタヨ
0123デフォルトの名無しさんNGNG
シンプルにて最強の人工知能言語age
0124デフォルトの名無しさんNGNG
高階っぽいことしようとしてよくcopy_term/2つかうんだけど、
これって効率悪いのかな。
0125デフォルトの名無しさんNGNG
『Prologの技芸』って本のカバーが渋い。
理工書か?
0126デフォルトの名無しさんNGNG
大学の授業でやりましたよ。しかも必修。
2回も落として4回生まで残ったときは
マジで焦って勉強しました。

ハノイを解くプログラムを書け、って問題があって
筆記でガリガリ書きましたよ。
なつかしい・・・。

ちなみに、Masterでもその先生の授業を取って
詰め将棋をひたすら検索して解くプログラムとか
作りました。
0127デフォルトの名無しさんNGNG
布教age
0128デフォルトの名無しさんNGNG
α-β刈り下げ
0129デフォルトの名無しさん NGNG
こんなのどうだろう?
http://www.cs.mu.oz.au/research/mercury/index.html

只今.NET関連言語調査中につきダウソ中。
0130デフォルトの名無しさんNGNG
みんな、ごめん・・・
Haskellに乗り換えちゃった・・・
0131デフォルトの名無しさんNGNG
>>129
新しいの出てるね。
これが一応.NETのProlog処理系標準となるのかな?
0132デフォルトの名無しさんNGNG
MINERVAってどうですか?
0133デフォルトの名無しさんNGNG
prolog処理系を作るかもしれないのですが、どんな勉強をすればいいんでしょ?
推論?
0134デフォルトの名無しさんNGNG
>>133
言語仕様。
0135デフォルトの名無しさんNGNG
学校に新しい人工知能 発展編 オーム社
があったので買いました。

推論の入門によさげです。
本に参考文献ってあるけど半分以上入手できない予感・・・。
0136デフォルトの名無しさんNGNG
MercuryとかProlog++とかも調べてみるといいかもよ。
伝統的なPrologのメリデメが分るから。
0137デフォルトの名無しさんNGNG
なぜ述語に変数が使えない。
0138デフォルトの名無しさんNGNG
保守age
0139デフォルトの名無しさんNGNG
age
0140デフォルトの名無しさんNGNG
>>136
メリデメってなに
0141デフォルトの名無しさんNGNG
メリット・デメリット?
0142functorNGNG
老後のボケ予防に Prolog の勉強をマターリと始めようとしている者です。
おまえら、普通 cut ! の作用を「副作用」と呼ぶものでしょうか?

厨房(老後目前だけど)の漏れは,、副作用というと、解の soundness(つまり、得られた解が論理的に正しいかどうか)に影響するものを連想します。
例えば破壊的代入や、Prolog でいえば assert のようなものです。
cut をどのように使っても、得られた解は sound であることが保証されています。(もちろん得られるはずだった解が得られなくなることが起きる)

そのような、穏やかな副作用(一般用語)でも、「副作用」(コンピュータ科学用語)っていうのでしょうかゴルァ
0143デフォルトの名無しさんNGNG
私の感覚ではprologにおいて述語が真理値を
持つ以上の動作をすると副作用である。殆どの組み込み述語が
該当するほか、!も真であると同時に再充足を妨害するので
これを副作用と呼んでいる。
あくまで私がそう呼んでいるだけだが
0144デフォルトの名無しさんNGNG
Prologの冒険をもう一度読みたいんだけど、どっかに売ってないかなぁ
FDのデータは家のマシンのどっかに眠ってるはずだけど....
0145デフォルトの名無しさんNGNG
好き(俺,柳たん).

って日本語でprologってみたいんだけど。
あるの?
0146デフォルトの名無しさんNGNG
>>145
K-prologかSWI-prologはできてた気がします。
0147デフォルトの名無しさんNGNG
誰か覆面算の解くプログラム作ってください

learn+linear+logic=prolog
0148デフォルトの名無しさんNGNG
誰かPrologのスパーセト言語を総括してくれ。
イパーイありすぎて何がなんだかサパーリ分からん。
0149デフォルトの名無しさんNGNG
他の言語に組み込むPrologのライブラリや、
Prologを組み込んだ言語などはありますか?

Prologだけで何かを書くことはむずかしいので、他の言語に組み込む形で
つかうのが現実的であると思いますがいかがでしょうか。

たとえば、MLに論理型をくっつけたらしいMercuryとか
HaskellにあるらしいPrologのライブラリですとか。
#MLもHaskellも使えないから私にはどうかわからん


JavaとかC++に組み込んで使えるものがあったらうれしいのですが。l
0150デフォルトの名無しさんNGNG
>>149
こういうの?
http://www.kprolog.com/jipl/jipl_e.html
0151デフォルトの名無しさんNGNG
prolog…今日試験だったよ。
問題勘違いして間違えまくった…鬱
0152デフォルトの名無しさんNGNG
Prologだと圧倒的で、他の言語だとショボ〜ンなこととは
どんなことでしょうか?
いまいち用途が見つからずに悩んでるですが・
0153デフォルトの名無しさんNGNG
>152
本気で言ってる?
0154デフォルトの名無しさんNGNG
>>152
英語の構文解析のプログラムとかはprologでやると簡単かも……。
確かに、MP3のエンコードとかそういうのには、
あまり役に立たないかも知れませんね(笑)。
0155デフォルトの名無しさんNGNG
> MLに論理型をくっつけたらしいMercury
「関数型言語に」であって別に「MLに」ってわけじゃないと思うよ。
つか、「論理型に関数型を」な気がしないでもない。
0156ざっしょくものNGNG
>>144さん
あ、Prologの冒険なつかしいすねー!持ってます!
高校時代、好奇心でPrologやってみたくて買ったです。
ただ、5インチFDを読める環境が無く、
実際にプログラム組みたくても組めなくてもんもんとした覚えです。
0157デフォルトの名無しさんNGNG
>>154
構文解析って、他の言語でやってもそれほど骨ではないです。
他の言語では地獄を見るようなものってあるかな?
0158デフォルトの名無しさんNGNG
>>146

Java上のPrologならいろいろある。

アプリに組み込み可能なPrologエンジンとしては、ilogが有名。
http://www.ilog.com/
用途は、経路探索とか縦型検索問題、その他。
0159デフォルトの名無しさんNGNG
まったりできるような言語じゃありません
0160デフォルトの名無しさんNGNG
PrologはLogoのプロ仕様言語ですか?
0161デフォルトの名無しさんNGNG
EPILOG も勉強しる!
0162デフォルトの名無しさんNGNG
SWI-Prologまんせー
0163デフォルトの名無しさんNGNG
まとめ=Prologは探索を記述する言語。
0164デフォルトの名無しさんNGNG
宿題助けて下さいな。

Artificial Intelligence
Assignment I

Question 1
Given the following medical expert system devise queries for the
following:
1. A query which will list all the diseases in the medical
database without their symptoms.
2. A query which will pick out all the symptoms of flu.
3. A query which will pick out the diseases with a symptom headache.

/ * Medical Expert System */
symptom(cold,sneezing).
symptom(cold,headache).
symptom(cold,runny_nose).
symptom(flu,headache).
symptom(flu,shivery).
symptom(flu,temperature).
symptom(brain_tumour,headache).
/* END */
0165デフォルトの名無しさんNGNG
宿題助けて下さいな。

Artificial Intelligence
Assignment I

Question 2
Read the following passage, and express the information it contains
in a semantic net. Convert the net to a prolog database and use it
to test
(a) whether herbivores ever hunt and
(b) whether all herbivores are hunted.

In the animal world, carnivores such as lions and leopards hunt
and eat herbivores such as zebras and wildebeest.
Thus some animals are hunters and some are hunted, and generally
speaking, carnivores hunt herbivores. However, there are many
exceptions to this rule. Elephants, which are herbivores, are rarely
hunted because of their size. Nor are bears, which are not normally
meat eaters and therefore basically herbivores. Bears will
catch and eat other animals when the opportunity arises.

0166デフォルトの名無しさんNGNG
宿題助けて下さいな。

Artificial Intelligence
Assignment I

Question 3
Study the attached Prolog Murder Mystery and explain how the prolog
program works, paying particular attention to the rules.
Also briefly outline the importance of backtracking to this
particular problem.

0167デフォルトの名無しさんNGNG
/* Victim is Celia */
body_discovered_at(60,mansion).

/* Death caused by blugeoning */
cause_of_death(blugeoning).

/* Body temperature at 10:10 was 96.4F */
body_temp_at(70,96.4).

/* Specify suspects */
suspect(maid).
suspect(colonel).
suspect(vicar).
suspect(nigel).
suspect(cynthia).


/* Everybody's physical strength rating
1 = bed ridden, 10 = strong as an ox */

physical_strength(vicar,7).
physical_strength(colonel,4).
physical_strength(maid,2).
physical_strength(nigel,8).
physical_strength(cynthia,5).

/* Where everybody lives */
lives_at(celia, vicarage).
lives_at(ronald, vicarage).
lives_at(maid, mansion).
lives_at(colonel, mansion).
lives_at(nigel, cottage).
lives_at(cynthia, cottage).
0168デフォルトの名無しさんNGNG
/* Fastest possbile travel times between key locations */
time_between(mansion,vicarage,12).
time_between(vicarage, mansion,12).
time_between(cottage,vicarage,18).
time_between(vicarage,cottage,18).
time_between(cottage,mansion, 24).
time_between(mansion, cottage, 24).
time_between(Anywhere, Anywhere, 0).

/* Everybody's whereabouts */
saw(vicar, celia, vicarage,0,20).
saw(vicar, nigel, vicarage, 52,52).
saw(nigel, cynthia, cottage,0,30).
saw(nigel,cynthia,cottage,90,99).
saw(colonel,vicar,vicarage,50,99).
saw(cynthia,nigel,cottage,90,99).
saw(vicar,colonel,vicarage,50,99).
saw(maid,colonel,mansion,0,35).
saw(nigel,vicar,vicarage,52,52).
saw(colonel,maid,mansion,0,35).
saw(celia,nigel,cottage,0,30).

/* Specify who's fingerprints where found */
finger_prints_found(celia).
finger_prints_found(colonel).
finger_prints_found(nigel).
finger_prints_found(cynthia).


/* This is the reasoning part, the 'inference engine' */
whodunnit(Person):-suspect(Person),
unexplained_fingerprints(Person),
not(has_alibi(Person)).

whodunnit(Person):-suspect(Person),
strong_enough(Person),not(has_alibi(Person)).


unexplained_fingerprints(Person):-
finger_prints_found(Person),
body_discovered_at(_,Scene_of_crime),
not(lives_at(Person,Scene_of_crime)).
0169デフォルトの名無しさんNGNG
has_alibi(Person):-
body_discovered_at(Latest,Scene_of_crime),
earliest_time_of_death(Earliest),
saw(_,Person,Somewhere,Early_time,Late_time),
time_between(Scene_of_crime, Somewhere, Travel_time),
Latest < Late_time + Travel_time,
Earliest > Early_time - Travel_time.

earliest_time_of_death(Time):-
body_temp_at(Time_temp_taken, Temp),
Time is Time_temp_taken - (98.4-Temp)*10.


strong_enough(Person):-cause_of_death(blugeoning),
physical_strength(Person,Rating),Rating >=4.
strong_enough(Person):-cause_of_death(shooting),
physical_strength(Person,Rating),Rating >=1.
strong_enough(Person):-cause_of_death(poisoning).
0170デフォルトの名無しさんNGNG
宿題助けて下さいな。

Artificial Intelligence
Assignment I

Question 4
Reasoning with uncertainty is an important issue with regard to
using symbolic systems to achieve AI. One such approach is to use
default logic. However another approach is to use Fuzzy logic.
Using the Internet, Books, Magazines, Journals explain in 2-3 typed
pages how fuzzy logic can be used in situations where there is
uncertainty. Give a brief explanation of the logic itself, how it
can be applied, one such area where it has been used, and any
possible future developments with the theory. Reference your work !!!!!!!!!!
0171デフォルトの名無しさんNGNG
お願いします。
0172デフォルトの名無しさんNGNG
思考中。
0173とをりすがりでしてご回答はムリですが...NGNG
#なんか、プログラム技術板っぽく、
#ソースコード乗せまくりで、いい感じ!
0174デフォルトの名無しさんNGNG
どこからどこまでがコードなの?
Prolog って不思議な言語だねぇ。

ところで、Prolog って「ぷろろぐ」? それとも「ぷろろーぐ」?
0175デフォルトの名無しさんNGNG
>>173
え?荒らしじゃないの?
0176デフォルトの名無しさんNGNG
>>164
Question 1
1. ?- symptom(Disease,_).

てことか?もしこんなウォーミングアップ程度からわかんないなら、
キミ相当ヤバイ。正直、出直した方がいいだろ。

>>174
日本じゃプロログが主流と思われ。国際的にはたぶんプロローグ。
0177宿題助けて下さいなNGNG
>>176
'?-' とかははじめからある前提でお願いします。
こっちではプロローグです。
0178デフォルトの名無しさんNGNG
Prologのデータ構造とRDBは似ていますか?
0179デフォルトの名無しさんNGNG
>177
真性?
0180しっぽりNGNG
>>164
花粉症を診断できるように改造しる!
0181親切な人NGNG

ヤフーオークションで、凄い人気商品、発見!!!

「高性能ビデオスタビライザー」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA

ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
0182デフォルトの名無しさんNGNG
>>157
文法をほとんどそのままDCGで書くとそれが
動いてくれるってのはイイ!くない?
0183[ ◆rJF0ZGiM NGNG
Q1-1。
?-assert(ako(cold,diseasesaa)).
?-assert(ako(flu,diseasesaa)).
?-assert(ako(brain_tumour,diseasesaa)).
この3行を下の問題文にたして--

?-assert(symptom(cold,sneezing)).
?-assert(symptom(cold,headache)).
?-assert(symptom(cold,runny_nose)).
?-assert(symptom(flu,headache)).
?-assert(symptom(flu,shivery)).
?-assert(symptom(flu,temperature)).
?-assert(symptom(brain_tumour,headache)).

これでリストするっていうのはどうかな?
?-ako(X,diseases).

もっと簡単に出来るのある?
0184挑戦 ◆rJF0ZGiM NGNG
Q1-2にも挑戦中...
0185挑戦 ◆rJF0ZGiM NGNG
Q1-2.
これはこれで簡単。
?-symptom(flu,X).
Q1-3.
これもこの1行でいいんじゃないかな?
?-symptom(X,headache).
0186挑戦 ◆rJF0ZGiM NGNG
でもQ1-1自信ない。ラインたさなくても病名だけリスト出来る方法ありそう。
0187デフォルトの名無しさんNGNG
まじでPrologをCから呼び出せるライブラリがほしいなぁ。
Guile みたいかんじで。

Scheme で Prolog みたいな動作をさせるためには、
どんな勉強すればいいかな?
とりあえず、バックトラッキングだけでもいいんだけど。

っていうか、SchemeもPrologもまだほとんど覚えてないんだけど。
0188デフォルトの名無しさんNGNG
Prologのいい参考書教えてください。
「Prologの技芸」に目をつけていたんですが、品切れ中の模様です。
0189デフォルトの名無しさんNGNG
>とりあえず、バックトラッキングだけでもいいんだけど。
再帰。
深さ優先探索とか、幅優先探索とか調べて見なされ。
0190デフォルトの名無しさんNGNG
しかしこのスレよく伸びるな。(w
0191デフォルトの名無しさんNGNG
>>188 昔よく売れてて、学生も買ってたみたいだから、古本屋を探したら...
0192デフォルトの名無しさんNGNG
いい参考書かどうかは分からないけど、
『機能論理プログラミング』という
Prologを使った機械学習とかそいういうのについて書いた本を
少し前に買ってちょっとだけ読んでみた。
難しくてまだ半分も理解してない。。。
0193デフォルトの名無しさんNGNG
>>192
ごめん。
×『機能論理プログラミング』→○『帰納論理プログラミング』
でした。
0194デフォルトの名無しさんNGNG
オレはカットでめげた。

制約論理プログラミングとかもあるらしいね。
方程式とか解けるのか?
0195デフォルトの名無しさんNGNG
>>194
探索木の枝を切るって事が分かれば難しくないよ。
簡単なメタインタープリタを書いてみると良く分かると思うよ。
0196デフォルトの名無しさんNGNG
『Prologプログラミング入門』アベ著 共立出版
を買ったけどよくわかりません。
とくにバックトラックを図で説明しているのですが、ああいうのはどうなんでしょうか。
カットにいたってはさっぱりわかりません。
0197デフォルトの名無しさんNGNG
box modelカコイイ
ttp://citeseer.nj.nec.com/cachedpage/225686/4
0198デフォルトの名無しさんNGNG
box modelって何?
Prologのペトリネットはみたことあるけど。
0199デフォルトの名無しさんNGNG
最近の日経コンピュータに、どっかがPrologで人事システムを構築という
短信があったと思うがどんなんだろう。
0200名無しさん@お腹いっぱい。NGNG
人工知能で給料カットするんだよ、きっと
0201デフォルトの名無しさんNGNG
すんません,prologってどこかの企業で使われてるんですか?
つまり儲かるような仕事(研究)に使える言語なんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています