ファジィ集合
テンプレート:出典の明記 ファジィ集合(ファジィしゅうごう、英語:fuzzy set)は、自然言語で表されるような曖昧な対象を定量化し、通常の集合(集合の要素であるかないかが、「ある」か「ない」のどちらかであるような集合)と同じように演算など(集合代数)の対象とされる、集合である。
1965年にロトフィ・ザデーによって提唱された。集合に帰属する度合を表すメンバシップ関数により、曖昧な対象を定量化して扱う。
なお、日本語の「曖昧」という言葉は多義的で、「多義的」(2つ以上の意味にとれる)という意味があるが、ファジィはファズの形容詞形で、たとえば綿毛(冠毛)のような、境界がはっきりしないようす、周辺が不明瞭なことを意味し、多義的という意味はない。
一般に集合の体系には論理の体系が対応するが、ファジィ集合に対応するのはファジィ論理である。ファジィ集合やファジィ論理を利用した制御をファジィ制御といい、これらのファジィに関する理論をファジィ理論という。
ファジィ集合
あるファジィ集合の要素である度合いは、メンバシップ関数によって表される。例えばある年齢の人間を「若者」「中年」「老人」という3種類にわけることを考える。このときどこまでの年齢を若者とするか老人とするかは人によって意見の分かれる部分である。ファジィ理論ではこのような曖昧な事象を定量化し、集合のように扱うことを可能にする。例えば若者に属する集合を A、中年に属する集合を B、老人に属する集合を Cとすると「35歳の人間」 x は
- <math>\mu_A(x) = 0.2</math>
- <math>\mu_B(x) = 0.7</math>
- <math>\mu_C(x) = 0.1</math>
という風に表す、ここでは35歳の人間は0.7の割合で中年に属し0.2の割合で若者に属し0.1の割合で老人に属すると置いている(実際に正しいかどうかは別、あくまでこのように定義するという指標)。このとき <math>\mu_A(x) + \mu_B(x) + \mu_C(x) = 1</math> である。(ただし、各概念がこのようにきちんと分割できなければいけないというわけではない。)このように「どこまで属する」という事柄を割合として表すことのできる集合 <math>A,B,C</math> をファジィ集合といい、具体的な割合の数値をだす各<math>\mu_A(x) , \mu_B(x), \mu_C(x)</math>をメンバシップ関数という。メンバシップ関数の値が0か1にしかならないのが、 通常の集合(非ファジィ集合、あるいはクリスプ集合と呼ぶ)であり、ファジィ集合は通常の集合の拡張といえる。
ファジィ集合の基本演算
通常の集合の各基本演算に対応するファジィ集合の基本演算がそれぞれ定義されている(以下特殊文字を含む箇所があるので環境によっては出力されない部分がある)。
ファジィ理論では特にメンバシップ関数の大小が大きく影響するので、
- <math>a\wedge b \to \min(a,b)</math>
- <math>a\vee b \to \max(a,b)</math>
とあらかじめ定義される。このときファジィ集合を <math>A, B</math>と各メンバシップ関数を <math>\mu_A(x), \mu_B(x)</math> とおくと各演算は
- 和集合
- <math>A\cup B \leftrightarrow\mu_{A\cup B}(x)= \mu_A(x)\vee\mu_B(x)</math>
- 共通集合
- <math>A\cap B\leftrightarrow\mu_{A\cap B}(x) = \mu_A(x)\wedge\mu_B(x)</math>
- 補集合
- <math>\overline{A} \leftrightarrow\mu_{\overline{A}}(x) = 1 - \mu_A(x)</math>
となるメンバシップ関数をもつ集合と定義される。また対等関係、包含関係は以下のように表す。
- 対等関係
- <math>A=B \leftrightarrow \mu_A(x) = \mu_B(x), \forall x\in X</math>
- 包含関係
- <math>A \subseteq B \leftrightarrow \mu_A(x) \leq \mu_B(x), \forall x\in X</math>
ここで <math>X</math> は全体集合のことである。これらの定義からファジィ集合には以下の定理が成り立つことが証明されている。
- 二重否定
- <math>\overline{\overline{A}} = A </math>
- ド・モルガンの法則
- <math>\overline{A\cup B} = \overline{A}\cap\overline{B}</math>
- <math>\overline{A\cap B} = \overline{A}\cup\overline{B}</math>
また、ファジィ集合独自の演算として以下のようなものが定義されている。
- 代数和
- <math>A + B \leftrightarrow \mu_{A+B}(x) = \mu_A(x) + \mu_B(x) - \mu_A(x)\cdot\mu_B(x)</math>(演算子 + は ⊞(特殊文字 + を□で囲んだ形)や<math>\dot+</math>とする場合もある)
- 代数積
- <math>A \cdot B \leftrightarrow \mu_{A\cdot B}(x) = \mu_A(x)\cdot\mu_B(x)</math>
- 限界和
- <math>A \oplus B \leftrightarrow \mu_{A\oplus B}(x) = \left(\mu_A(x) + \mu_B(x)\right)\wedge 1</math>
- 限界差
- <math>A - B \leftrightarrow \mu_{A - B}(x) = \left(\mu_A(x) - \mu_B(x)\right)\vee 0</math>、演算子は正確には - ではなく-を○で囲んだ⊖(特殊文字)。
- 限界積
- <math>A \otimes B \leftrightarrow \mu_{A\otimes B} = \left(\mu_A(x) + \mu_B(x) - 1 \right)\vee 0</math>、演算子は⊙(特殊文字・を○で囲んだ形)とする場合もある。
- 激烈和
- <math> A\dot\vee B \leftrightarrow \mu_{A\dot\vee B}(x)=\left\{\begin{matrix}
\mu_A(x), & \mbox{if }\mu_B(x) = 0 \\ \mu_B(x), & \mbox{if }\mu_A(x) = 0 \\ 1, & \mbox{else}\end{matrix}\right.</math>
- 激烈積
- <math> A\dot\wedge B \leftrightarrow \mu_{A\dot\wedge B}(x)=\left\{\begin{matrix}
\mu_A(x), & \mbox{if }\mu_B(x) = 1 \\ \mu_B(x), & \mbox{if }\mu_A(x) = 1 \\ 0, & \mbox{else}\end{matrix}\right.</math>