スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

中の人の徒然草431 濃度計算と直観について思ったこと

昨日書ききれなかったのですが、濃度の計算は「無限集合の濃度Pは区間を与えて算出する」(※1)と定義するとよいと思います。
※1:有限集合に区間を与えても問題ありません。

例えば・・・
閉区間 a ≦ 0 ≦ b において、a = -10, b = 10 のときの濃度Pは、
自然数集合のP= 10 (自然数に0を含まない場合)
整数集合のP = 21
従って、整数集合の濃度と自然数集合の濃度の比は2x+1(xを自然数の濃度とする)

こう定義すれば、有限集合と無限集合のある領域における濃度を比較できたりします。

有限集合{ 2, 3, 5, 8, 10 } (謎の有限集合)の濃度は5
自然数集合の濃度は、区間 2 ≦ x ≦ 10 を与えると濃度は9。
従って、自然数集合のほうの濃度が高い。

私はこのほうが便利だと思います。
もともと濃度は、個数の概念を拡張したものですから、こういう風に個数との対応関係が必要だと考えています。
有限集合は無限集合の部分集合でしかありません。ならば、濃度と個数に対応関係がなければ不都合が生じます。
この濃度計算と、「属する」に関して1つのルールを付け加えれば、集合の矛盾も解けます。

「あらゆる集合は、濃度が高い集合を含むことができない。なぜならば、自分よりも濃度が高い集合は、部分集合となりえないからである。」

こうすれば、定性分析と定量分析を集合論で行えるようになります。
集合の集合Vの積集合P(V)は、V ∊ P(V)ということです。集合論は動的なものであり、静的に考え、集合の集合に濃度が高い積集合が定義できるから矛盾しているなとど考える必要はないと思います。集合は無限に増えるのだと考えたほうがしっくりきます。
ラッセルのパラドックスについては、これはただ単に全てにおいて偽を返す対応(関数)にしか過ぎないと思います。この自分自身を含まない集合は、自分以外のものを含む集合の動的表現とも言えます。P(x){x|x≠x}だから、何のxを渡しても偽を返します。こういったツールは、プログラミングで有効ですから別に不思議でもなんでもない、普通の道具にしかすぎません。
どういったときに使用するのかといいますと、2つ以上の条件を満たす性質を分析するときの論理演算において、ある特定の条件が絶対に満たさないとわかっている場合に、必ず偽を返す集合と、もう一つの条件を論理演算したいときに使用します。そうすれば、if文的に物事を考えず、論理演算できます。また、X以外というNOT演算にも使えます。結構便利な集合だといえます。
では、何の集合を渡しても偽を返す集合(対応)は何に属するのかといいますと、集合の集合に属します。なぜならば、集合とは何らかの対応を持つものであり、「すべてにおいて偽を返す」という対応があるので集合の集合に属するとみなせます。
後整列集合における矛盾については、濃度が高い集合は等価とみなせないので、そもそも矛盾になりません。カントールがしたことは、要するに順序数を要素として持つ順序数を定義しているだけですから、プログラミングでよく見られる入れ子構造(行列表現)にしかすぎません。この問題は、無限を無限個数えると、その識別子が人間には判断できないという性質を表わしていると思います。
でも、プログラミングで2次元配列の要素を1つの数と等しいとだれも思いません。つまり、濃度が違う集合はたとえ識別子が同じに見えても等価ではないのです。この件についてまとめると・・・

集合を含む集合は、任意の数の集合を与えないと判別できない。

だと思います。もっと簡潔に言えば、「2次元配列のインデックスとして、1つの数値だけ指定してもどの要素の事を言っているのかかわからない。」です。もしくは「配列の配列において、配列そのものを指定した場合、1つの要素と等価ではない(配列オブジェクトとその中にあるオブジェクトは違う)」(こっちの表現のほうが良いと思う)です。
過程がないので今まで上手く表現できなかったのですが、私は集合論に関する専門書を読んだ時点でこの結論が出ていました。
答えがすぐに分かって、その過程が自分でもわからない(上手く説明できない)ということはありがちですね。
こういうのを直観というのでしょう。ちなみに、脳科学的に直観はある程度解明されているそうです。脳科学によると、脳内は無意識にかなりの計算をしており、その計算量が説明できる量を超えている場合、直観となって表れるそうです(うろ覚え)
私は開発においてもこういった直観は大事だと思います。私の場合、お客様に話しを聞いた時点で、脳内でシステムを運用している風景(最終結果)とプログラムが同時に浮かんだりしますから、直観を大事にしています。わかってもらえないかもしれませんが、仕様が危ないときはバグの香りがします。それはほぼ100%当たります。刑事の勘ならぬ技術者の勘です。
勘だけで仕事はしませんが、勘を無視してもろくな結果になりません。それは、脳科学的に証明されていると私は思います。
スポンサーサイト

テーマ : 日記
ジャンル : 日記

コメントの投稿

非公開コメント

プロフィール

インドリ

Author:インドリ
みなさん、はじめまして、
コンニチハ。

ボクは、無限の夢(infinity dream)を持つネタ好きな虹色の鳥インドリ(in dre)です。
色々な情報処理技術を啄ばむから楽しみにしてね。

http://twitter.com/indori
は別人による嫌がらせ行為です。
私とは関係ないので注意して下さい。
次はなりすましブログなどをするかもしれませんが、ここ以外でブログをするつもりがないので、ここ以外にインドリのブログがあったとしても無視してください。


何度言っても分からない人がいるので、ここにコメント欄へ書き込むときの注意事項を書きます。


一、社会人としてのマナーをわきまえましょう。
一、妄想に基づく書き込みを止めてください。
一、暴言の類は書かないで下さい。
一、某誹謗中傷サイトの書き込みは彼らの妄想に基づく書き込みですから無視して、ここへ書き込まないで下さい。
一、コメント書く前に他のコメントよく読んでから行って下さい。
一、言いがかかり等の行為を禁止します。
一、その他常識的に考えて迷惑なコメントはしないで下さい。


以上のルールを守れない人のコメントは削除します。



利用上の注意
ここに紹介してある文章およびプログラムコードは正確であるように心がけておりますが、内容を保証するものではありません。当サイトの内容によって生じた損害については、一切の責任を負いませんので御了承ください。


執筆したCodeZineの記事


【VB.NETで仮想CPUを作ろう】

  1. VB.NETで仮想CPUを作ろう
  2. レジスタの実装
  3. 仮想CPUのGUI化
  4. テストドライバの改良
  5. CPUの基礎動作の実装
  6. MOV命令の実装
  7. ADD命令実装
  8. SUB命令実装
  9. INC命令&DEC命令の実装と命令長
  10. MLU命令の実装とModR/Mについて
  11. DIV命令の実装とイベント設計について
  12. 機械語駆動式 関数電卓を作ろう!
  13. 機械語駆動式 関数電卓を作ろう! 解答編(前半)
  14. 機械語駆動式 関数電卓を作ろう! 解答編(後半)


【仮想ネットワーク実装でTCP/IPを学ぼう】
  1. TCP/IPの基礎と勘所
  2. ネットワークアクセス層の勘所
  3. インターネット層の勘所
  4. トランスポート層の勘所
  5. アプリケーション層の勘所
  6. セキュリティの基礎と仮想ネットワークの仕様
  7. GDI+と独自プロトコルの定義



【並列化】
インテル Parallel Studioを使って並列化プログラミングを試してみた
並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」


【TBBシリーズ】
  1. インテル スレッディング・ビルディング・ブロックの概要
  2. インテルTBBから学ぶループの並列化
  3. スレッドセーフとインテルTBBのコンテナ
  4. インテルTBBのスレッドクラス


【OpenMPシリーズ】
  1. OpenMPの基礎構文
  2. OpenMPの実行時ライブラリと並列ループ
  3. OpenMPのメモリモデルとfork- joinモデル

最近の記事
最近のコメント
月別アーカイブ
カテゴリ
Ada (9)
COBOL (5)
C (9)
C++ (11)
C# (370)
D (25)
Java (8)
Perl (1)
Ruby (14)
PHP (2)
Boo (2)
Cobra (2)
LISP (6)
F# (33)
HTML (0)
XHTML (0)
CSS (0)
XML (0)
XSLT (0)
Scala (4)
WPF (0)
WF (2)
WCF (0)
LINQ (4)
MONO (5)
Linux (0)
MySQL (0)
ブログ内検索
リンク
最近のトラックバック
RSSフィード
ブロとも申請フォーム

この人とブロともになる

QRコード
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。