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

Prolog でまったり

■ このスレッドは過去ログ倉庫に格納されています
0001人工無能NGNG
Cなどの言語とは全く得意分野も構造もちがうProlog。
そんな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ってどこかの企業で使われてるんですか?
つまり儲かるような仕事(研究)に使える言語なんでしょうか?
0202デフォルトの名無しさんNGNG
プロローグって3段論法を背理法で解くものだろ。
で、論理式はホーン形式に限られている。
もっと、一般の論理式の真偽を求めれるプログラムないのか。
量化子なんかもOkのやつがいいね。
タブロー法あたりをプログラム化したものないかな。
0203デフォルトの名無しさんNGNG
書籍に良いのは無いのでしょうか?
絶版だったりどうでもいい本だったりして困ってます。

定番な良書や、この本で開眼した、というような推薦書はありませんか?
0204デフォルトの名無しさんNGNG
Interlogってどうよ。
http://homepage2.nifty.com/logic/

http://homepage2.nifty.com/logic/ai6.htm にあるように
イベントが発生するとき、ゴールが設定されるというのは面白い。
でも、文章からはイタサが漂う。
0205名無しさん@お腹いっぱい。NGNG
>>202
ワラタ
0206デフォルトの名無しさんNGNG
>>205
タワラ
0207デフォルトの名無しさんNGNG
>>201
Windowsの一部はPrologで書かれてるとかこないだ聞いた。
具体的にどこにどう使われてるかとかは知らんけど。聞いただけの話だから。
詳しい人いたら補足レスきぼんぬ。
0208デフォルトの名無しさんNGNG
>>207

 まさか、Windows の一部は、Prolog と Epilog で
書かれているというオチではなかろうね。
0209デフォルトの名無しさんNGNG
 この Prolog、Epilog というのは、プログラム
言語のことじゃなくて、識別子のことね(Epilog
という一種の Prolog 言語があるから)。

0210デフォルトの名無しさんNGNG
>>196
「論理の木構造の深さ優先探索」て理解でいいんじゃなーい?

木の根の所にカニがいて、枝の先端にある柿をたびたいと思ってる。

カニは進行方向を見て歩けないし、カニにとって木は巨大な構造体だから、事前に最短経路を考えて辿ることはできない。
しょうがないから蟹知恵で、枝の分岐点の組み合わせをシラミ潰しに探索する(深さ優先探索)。
枝先端へ行って柿がなければ、一つ前の分岐に戻って(バックトラック)別の枝を試す。

カニは柿を食ったら別の作業をしたいが、その作業が失敗したからといって柿採りに戻りたくないからカット!
0211デフォルトの名無しさんNGNG
age
0212デフォルトの名無しさんNGNG
Prologの実習が始まりました。
誰かユニフィケーションとバックトラックについて詳しく説明してください。
このままじゃレポートかけない・・・・・。
0213デフォルトの名無しさんNGNG
こちらへどうぞ。
http://www.google.com/
0214厨房ですよ@PrologNGNG
ユニフィケーション=単一化≒項同士が等値かどうか調べること。
調べる=項の評価し、その結果を見ること。
バックトラック=ゴールが見つかったのに、別のゴールが無いか調べること
0215デフォルトの名無しさんNGNG
>>210
わー、わかりやすいー。
柿を食った後の作業で失敗しても、
柿を食う前には戻らないちゅうことですね。
0216デフォルトの名無しさんNGNG
Prolog.NET なんて出ないだろうなぁ
0217ageNGNG
保全しときます。
0218デフォルトの名無しさん NGNG
ぜんほあげ
0219デフォルトの名無しさんNGNG
k-prolog ってbignumが使えるんだね。
Lisp、Schemeの専売特許じゃなかったんだ。
知らんかった〜。
0220デフォルトの名無しさんNGNG
こんな板があるとは・・・。
学生時代にやってもう忘れたけど、マジカルバナナをするプログラムとか言うのを演習で提出した覚えがある。懐かしい・・・。
0221デフォルトの名無しさんNGNG
中島秀之さんのProlog/KRってどうなったか知ってる人いる?
WindowsのLispで動くかな?

0222デフォルトの名無しさんNGNG
Prolog/KRて、和田研近辺で作られたUTILISP上で動いてて、
その後名前が裏茄子に変わったと、本に書いてあったよね。

UTILISPはかなり前にインターネット上で公開されてたと記憶。

中島秀之せんせーって、今も産総研で活躍されてるよね。
メールで聞いてみたら?
0223デフォルトの名無しさんNGNG
>222
Common Lisp 用に書き直されてないかいな。
マジに聞いてみようか。(なんと恐れ多い)
入門書の付録のPrologはCommon Lispに書き直されたもの
が存在するんだよね。
多重世界機構かぁ。
0224デフォルトの名無しさんNGNG
いいねぇ
0225名無しさん@お腹いっぱい。NGNG
http://www.carc.aist.go.jp/~nakashim/
0226デフォルトの名無しさんNGNG
Windowsで使える最強のプロログ処理系教えてください。
0227デフォルトの名無しさんNGNG
>>226
http://www.swi-prolog.org/
0228デフォルトの名無しさんNGNG
ナローイングってなに?
0229デフォルトの名無しさんNGNG
すみません教えてください
PCH creation point
ってなんですか?
よろしくお願いします
0230デフォルトの名無しさんNGNG
宿題は、宿題スレでやれ。
0231デフォルトの名無しさんNGNG
KLCはどうですか。
五世代プロジェクトの
0232名無しさん@XEmacsNGNG
>>231
> KLCはどうですか。
> 五世代プロジェクトの

KL1 ね。で、UNIXen で動くその言語処理系が KLIC。

Prolog とはかなり趣を異にするけど、これはこれで結構面白い言語だ
わな。副作用なしで入出力が扱えたりするところとかね。
0233貼っとくNGNG
prologディレクトリ
http://dir.goo.ne.jp/computers/00941/00979/00988/
0234デフォルトの名無しさんNGNG
なローイングってあに?
0235デフォルトの名無しさんNGNG
あいーん
0236デフォルトの名無しさんNGNG
Prologのコンパイラでは
実行ファイル(.EXE)は作成されないの??
0237デフォルトの名無しさんNGNG
>>236
Turbo Prolog では作れたよ。
0238デフォルトの名無しさんNGNG
試してみます。
ども。
0239デフォルトの名無しさんNGNG
本家スレage
0240okdNGNG
SWI-PrologをWin98SEでダウンロードして使おうとしたのですが、日本語を節名や変数名に使えないのですが、何かよい方法はないでしょうか?
0241デフォルトの名無しさんNGNG
普通は、シングルクオート '' で囲う。そんで日本語フォントで表示させる。

しかし、シフトJISコードの2バイト目に \ とかがあると
モロ化けるので、フォントを設定するくらいではどうしようもないね。
0242デフォルトの名無しさんNGNG
みつけた!
ここみんな必見だよ
プロログの動作原理
http://web.sfc.keio.ac.jp/~tozaki/LP/01/handout/prolog-dousa/
0243デフォルトの名無しさんNGNG
Prologを使いこなすとハッカーだって言うけど本当ですか?
0244デフォルトの名無しさんNGNG
さあ
0245242NGNG
と思ったけど結構浅いや(汗)
スタックな図とか初めめちゃくちゃ分かりやすいと思ったんだけどね。

>>243
>>209
0246デフォルトの名無しさんNGNG
Prologを使いこなすとお金持ちになれるって本当ですか?
0247デフォルトの名無しさんNGNG
Prologを使いこなすと彼女ができるって本当ですか?
0248デフォルトの名無しさんNGNG
Prologを使いこなすと大学卒業できるって本当ですか?
0249デフォルトの名無しさんNGNG
聞いてみろ。

?- available(girl,X).
no.
0250デフォルトの名無しさんNGNG
>>246 嘘
>>247 微妙
>>248 本当
0251デフォルトの名無しさんNGNG
>>246-250
深夜に自作自演ですか?
0252デフォルトの名無しさんNGNG
閉世界仮説
■ このスレッドは過去ログ倉庫に格納されています