情報数学 I

第四回 (2012年10月12日)

組み合わせ、命題

Martin J. Dürst

http://www.sw.it.aoyama.ac.jp/2012/Math1/lecture4.html

AGU

© 2005-12 Martin J. Dürst 青山学院大学

今日の目標

論理関数と論理式を操る

今日の内容

Homework from Last Lecture (1, 2)

1. Create a set with four elements. If you use the same elements as other students, a deduction of points will be applied.

Example:

2. Create the powerset of the set you created in problem 1.

Example:

Homework from Last Lecture (3)

3. For sets A of size zero to six, create a table of the sizes of the powersets (|P(A)|).

|A| |P(A)|

 

Homework from Last Lecture (4, 5)

4. Express the relationship between the size of a set A and the size of its powerset P(A) as a formula.

5. Explain the reason behind the formula in problem 5.

Homework from Last Lecture (6)

6. Create a table that shows, for sets A of size zero to five, and for each n (size of sets in P(A)), the number of such sets.

 

パスカルの三角形

(Pascal's triangle)

一行目の (0 ... 0) 1 (0 ... 0) からスタートし、左上と右上の数を足し合わせると出来る。

                  1
                1   1
              1   2   1
            1   3   3   1
          1   4   6   4   1
        1   5  10  10   5   1
      1   6  15  20  15   6   1
    1   7  21  35  35  21   7   1
  1   8  28  56  70  56  28   8   1

 

パスカルの三角形の性質

インドで紀元前から知られ、多くの性質が知られている

ここで次の関係や性質を説明・証明:

部分集合の数とパスカルの三角形

 

パチンコ玉の道の数とパスカルの三角形

部分集合と組み合わせ

パスカルの三角形の一ヶ所の直接計算

階乗

(factorial)

書き方: n!

定義: n! = 1 · 2 · ... (n-1) · n = ∏ni=1 i

問題:

1! = 1

0! = 1

演算の単位元

(unit element, identity element, neutral element)

複数の演算を行うプログラムの構造

具体例 (合計):

int sum = 0;
for (i=0; i<end; i++)
    sum += array[i];

一般の構造

C プログラム言語の場合:

type result = 単位元;
for (i=0; i<end; i++)
    result = result 演算子 array[i];

Ruby の場合:

array.inject(単位元) do |memo, next|
  memo 演算子 next
end

命題

(proposition 又は statement)

正しいか正しくないかが客観的に決められる文
(正しいものでも正しくないものでも良い)

命題ではないのは主観的な記述、質問、一部が決定されてない、代名詞や変数を含む発話など

命題の例と反例

例:

反例 (命題ではない):

命題の真偽

命題は正しいか正しくないかである。

「正しい」は「真」(しん、true) と言い、T、⊤ や 1 と書く

「正しくない」は「偽」(ぎ、false) と言い、F、⊥ や 0 と書く

真と偽はともに真理値 (truth value) という

真偽のプログラム言語での取り扱い

プログラム言語によって取り扱いが違う

 

論理演算などの情報テクノロジーでの役割

モデル化

Operation on Prepositions: And

Based on two prepositions A and B, we can construct the following proposition:

A and B

We write AB (also: A·B, or A B)

AB is defined as follows:
If both A and B are true, then AB is true.
Else, AB is false.

We can also write this in functional notation: AND(A, B)

Truth Table

Truth tables are often used for defining logical operations, and for proofs.

Truth Table for Logical And
A B AB
F F F
F T F
T F F
T T T

Logical Operations

With logical operations, we can create compound predicates from simpler predicates.

The most frequently used logical operations are as follows:

Disjunction

Based on two prepositions A and B, we can construct the following proposition:

A or B

A or B is written AB (also: A+B)

AB is defined as follows:
If both A and B are false, then AB is false.
Else, AB is true.

We can also write this in functional notation: OR(A, B)

Truth Table for Logical Or

A B AB
F F F
F T T
T F T
T T T

 

Negation

Based on one preposition A, we can construct the following proposition:

not A

not A is written ¬A (also A' or A or ~A).

¬A is true if A is false, and is false if A is true.

We can also write this in functional notation: NOT(A)

Truth Table for Logical Not

A ¬A
F T
T F

 

Structure of Logical Formulæ

We can creat a logical formula from propositions, propositional variables, and logical operators.

Example: (A ∨ (¬B)) ∧ C

(operator) precedence and omission of parentheses:

For logical operators, ¬ has higher precedence than ∧, which has higher precedence than ∨.

Well-Formed Formula

(WFF)

Goal: Make the structure (grammar) of logical formulæ clear.

All of the following are well-formed formulæ

Formulæ that do not fit the above definition are not well-formed formulæ.
(Attention: In a later lecture, we will introduce more logical operators.)

Logical Formula Evaluation

Example formula: (A ∨ (¬B)) ∧ B

Simplification (the parentheses around ¬B are unnecessary): (A ∨ ¬B) ∧ B

Evaluation Using a Truth Table

A B ¬B A ∨ ¬B (A ∨ ¬B) ∧ B
F F T T F
F T F F F
T F T T F
T T F T T

 

Boolean Functions

今週の宿題

  1. Moodle で Truth Table 1 のクイズを解く (全正解でない場合、繰り返す、締切: 10月18日 (木) 20:00)
  2. Moodle で Truth Table 2 のクイズを解く (全正解でない場合、繰り返す、締切: 10月18日 (木) 20:00)
  3. (提出なし) nCm = n!/m! (n-m)! を証明しなさい。
    ヒント: 部分集合の足し合わせを参照
  4. (提出なし) 論理演算の性質について調べなさい。
    ヒント1: 集合演算の性質を参考に
    ヒント2: 真理表を使って確認

Glossary

(logical) and
かつ
conjunction
論理積
truth table
真理表
logical operation
論理演算
compound predicate
複合命題
(logical) or
又は
disjunction
論理和
(logical) not
ではない
negation
論理否定
logical formula
論理式 (複数: formulæ または formulas)
well-formed (logical) formula
整論理式
grammar
文法
propositional variable
命題変数
(operator) precedence
(演算子の) 優先順位
evaluation
(式の) 評価
parentheses
括弧
Boolean function
論理関数、ブール関数
Boolean argument
論理引数 (ひきすう; ブール引数とも言う)
domain (of a function)
(関数の) 定義域
range (of a function)
(関数の) 値域