布尔代数今天在学校遇到了一个数学模型问题:某钻井队要从10个可供选择的井位中确定5个钻井探油, 使总的钻探费用为最小. 若10个井位的代号为s1, s2, ..., s10, 相应的钻探费用c1, c2, ..., c10为5, 8, 10, 6, 9, 5, 7, 6, 10, 8.并且井位选择上要满足下列限制条件:(1) 或选择s1和s7,或选择钻探s9;(2) 选择了s3或s4就不能选s5, 或反过来也一样;(3) 在s5, s6, s7, s8中最多只能选两个.试建立这个问题的整数规划模型, 确定选择的井位.很自然的假设每个井位的状态为bi, bi只能取(0, 1), 如果si选择钻探, 则bi=1, 否则bi=0.那么怎么表示限制条件(1)(2)(3)呢?这里使用布尔代数显然会更直观:(1) (b1 + b7 - 2) * b9 = 0(2) (b3 + b4) * b5 = 0(3) b5 + b6 + b7 + b8 <= 2那么原问题就只要求sum(bi*ci)的最小值了, 这是一个典型的0-1规划问题, 一般的建模书上都有记载其解法.这里启发我去更进一步了解布尔代数, 于是就有了下面这些东西.布尔代数是指代数系统B=.
它包含集合B连同在其上定义的两个二元运算+, · 和一个一元运算'
有以下性质:
(1) a+b=b+a
a·b=b·a
(2) a·(b+c)=a·b+a·c
a+(b·c)=(a+b)·(a+c)
(3) a+0=a
a·1=a
(4) a+a'=1
a·a'=0
最简单的布尔代数只有两个元素 0 和 1.
真值表:
与(∧):
+---+---+---+
| ∧ | 0 | 1 |
+---+---+---+
| 0 | 0 | 0 |
+---+---+---+
| 1 | 0 | 1 |
+---+---+---+
或(∨):
+---+---+---+
| ∨ | 0 | 1 |
+---+---+---+
| 0 | 0 | 1 |
+---+---+---+
| 1 | 1 | 1 |
+---+---+---+
非(¬):
+---+---+---+
| ¬ | 0 | 1 |
+---+---+---+
| | 1 | 0 |
+---+---+---+
Consensus定理:
(a ∨ b) ∧ (¬a ∨ c) ∧ (b ∨ c) ≡ (a ∨ b) ∧ (¬a ∨ c)
(a ∧ b) ∨ (¬a ∧ c) ∨ (b ∧ c) ≡ (a ∧ b) ∨ (¬a ∧ c)
Huntington等式: n(n(x) + y) + n(n(x) + n(y)) = x
利用计算机的二进制特性, 将子网掩码与本机IP地址进行逻辑与运算, 可以得到计算机的网络地址和主机地址
我很欣赏我们统计学老师说的那句话, “有些知识也许你永远也看不上, 但是这些知识很好, 所以我把它交给你们”