⇤ ← 2011-08-26 00:46:06時点のリビジョン1
サイズ: 1769
コメント:
|
サイズ: 1795
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 5: | 行 5: |
=== 2 === | == 2 == |
行 11: | 行 11: |
=== 3 === | == 3 == |
行 16: | 行 16: |
* F(w,x,y,z) = Σ(1,4,...)とは? | === F(w,x,y,z) = Σ(1,4,...)とは? === |
行 20: | 行 20: |
* 2進数に直して1を含む数が共通? | === 2進数に直して1を含む数が共通? === |
行 22: | 行 22: |
* ハミング距離が1? | === ハミング距離が1? === |
行 24: | 行 24: |
* 1と9をマージした後の*001とかってどう扱う? | === 1と9をマージした後の*001とかってどう扱う? === |
行 26: | 行 26: |
* マージ | === マージ === |
行 29: | 行 29: |
* 集合被覆問題? | === 集合被覆問題? === |
QM法
2
主加法標準形、主乗法標準形をどうやって導くかについては、
http://www.akita-nct.ac.jp/yamamoto/lecture/2003/2E/canonical_expansion/node2.html
このページなどがわかりやすいでしょう。
パースなどはCなどで書いてもよいですが、ML演習の初期のインタプリタを流用する手もあります。
3
基本的には解説ページに書いてあるとおりです。
得意な言語で書けば良いと思うのですが、Cでは最小項のグループが少し表しづらいかもしれません。
個人的にはC++,Javaや、スクリプト言語を推します。OCamlでもよいかも。[要出典]
F(w,x,y,z) = Σ(1,4,...)とは?
(数学的に正しいかは知りませんが)
ブール値w,x,y,zを4桁の2進数と見たときに、(10進数で)1,4,6,...の時に真になるような関数。
この関数の最小項は2番で求めました。
2進数に直して1を含む数が共通?
ビット演算で頑張る。
ハミング距離が1?
2つの数のXORを取るとわかりやすいかも。
1と9をマージした後の*001とかってどう扱う?
筆者は*(0でも1でもよい部分)の部分のビットを最小項のグループごとに持っておいた。(一例です)
マージ
マージ時に、同じ最小項のグループが出来ることがある。(例の場合は10**,8,9,10,11)
これをいちいち1つにまとめると、マージがかなり早くなる。
集合被覆問題?
たしか全探索でよいです。