虎のホームページ


自己紹介 経歴  研究  雑談  リンク

 

 

  私の研究について      

  今後のソフトウェアの未来。

ソフトウェアの未来  コンピューターを実際に動かすためには、ソフトウェアが必要である。ハードウェアのほうはメモリーチップの集積度が上がるといった技術革新が進み、ダウンサイジングが進んで来た。その結果、我々の周囲でもパソコンを利用する機会が格段に増加してきている。そして、もう一方で、これらの端末が互いに結ばれるというネットワーク化の流れがある。このような状況から、ソフトウェアの世界で今何が考えられているかというと、インテリジェント・エージェントというものがある。エージェントを日本語に訳すと代理人であるから、トラベルエージェントもあればネットワークエージェントもあるわけで、ここで説明するのは、コンピューターのソフトウェアでできているエージェントについての事である。  例えば、我々の身近で考えた時、企業でもその他の団体でも、組織のあるレベル以上の人には秘書がいる。秘書が本人に代わって、身の回りの事を色々と処理してくれるという状況があるわけで、そのような仕事を電子的にやってもらうという考えである。  ネットワークを利用しようとする際、電子メールを使ってみるとすぐに嫌になってしまうのは、メールが山のように来て、それをどう仕分けするかだけで日常の大問題となってしまうからである。それをエージェントにやってもらう。メールの中身を読み、返事を出してくれる、あるいは放置しておく。そういう事を実際に処理してくれるソフトウェアのエージェントが考えられている。  また、我々の世界で困っているのが会議のスケジュール調整である。これについても当人達が自ら調整するのではなく、それぞれのエージェント同士が適当にコミュニケーションして決めてくれる、あるいはサジェストしてくれる。当然、それぞれのエージェントが優先順位を持っていて、会議スケジュールが決まっていく。  あるいは、現在急増しているインターネットの利用で考えてみると、論文をどこに送るとかあるいは関係する情報を探して取って来るという仕事は、自分の手で処理するとなるとかなり煩雑な作業が伴う。これを、電子的エージェントに任せればかなり楽になるわけで、このような電子秘書を作ろうということが実際に行われている。  電子的な個人秘書が持っているインテリジェンスを実現させる方法としては、従来は人工知能的手法で考えられていたが、最近ではソフトウェアに学習させるという方法が考えられている。これは、最初はユーザーが端末の操作を行い、その行動を全てある種のメモリーに記録しておく。これはMemory-based-reasoningと呼ばれている方法であるが、基本的には、全てのパターンを覚えておく。そして新しい状況が出たとき、前に行動したケースとの距離を取るという感じで、その状況に近いものを取り出して来る。その次の時には、過去にやった行動に近い方法を取るという形で情報を蓄積していく。その繰り返しをしながら学習し賢くなっていく。  同じようなことで、全部覚えておく必要のある話とか、ある条件下でしてもらっては困るといった事を、エージェントが作業した結果に基づき記憶させていく。そうすると、これを覚えていくことによって訓練、教育が進んで行く。また、ある程度進んだ所である種の一般化を行う。そういう技術がいくつか出てきて、メールのハンドリングやスケジューリングなどでは、ある程度使えるような状況になってきた。個別のエージェントが教育されていくと、次にはそれぞれのエージェント同士が話をして自ら学習能力を高めていく。もっとよく訓練を受けた秘書がどこかにいるわけで、それをエージェント自らが探しにいくようになる。このような場合、どのように技術的に対応すべきかということがかなり研究されている。したがって、個人電子秘書レベルのソフトであれば、比較的早く実現できるようになると思う。  もう一方で、個人秘書とは異なりかなり専門的な知識を持ったソフトウェアが、一人歩きする可能性が出て来ると思う。ソフトウェア・エージェントの社会であり、マルチ・エージェントとも呼ばれる。複数のエージェントが存在して、互いに協力したり協調したりして問題を解決していく。昔は、これを分散人工知能と言っていたが、エージェントを研究していく中でこの話が復活してきた。以前は、かなり仮想的な話であったが、現在ではこの分野の研究が非常に盛んになってきた。  エージェントの社会とは、ネットワークでつながった多くのコンピューターが存在する世界の中で、仮想的にソフトウェアがあたかも人間のように生きている社会である。その中では、エージェント同士のコミュニケーション方法である訳で、プロコトルを決めるとか、エージェント同士の言語をどうするかといった問題を解決する必要があり、そのためにある種のエージェント言語を研究しいてるグループもある。  では、この様なエージェントを使用して何をするのかというと、例えば、インターネットを利用する時、自分の求める情報がどこにあるのか調べるのは非常に大変である。結局は、人間同士のコミュニケーションを通して口コミで聞くとか、どこかの電子伝言板を見て、そこへ入り込んでいって情報を取ってくるといった事をしなくてはならない。この部分をエージェントにやってもらう。例えば、情報を取って来る部分、仕事ができる人を探す部分、あるいは仕事の発注・交渉などである。そういうものを実際にネットワークの中を渡り歩いて処理してくる。渡り歩くという意味は、物理的にプログラムが動いて、ソフトウェアを移動して向こうの出先の人のエージェントと交渉してくる。場合によっては、最初のところが駄目であれば次の対応を取るといった具合いに、コミュニケーションを回線を通して行うだけでなく、本当にプログラムごと出かけていってやってくるといった世界を実現しようとしている。何故、プログラムが実際物理的に動くのかというと、第一は、ネットワークの交通量は今でももう大変だからである。また、こちらとしてもその都度遠くの方でやっていることを干渉したくない、また、発注した仕事は早く忘れたい。あるいは、出かけて行ってみなければ分からないことも沢山ある。そういう事を実際にやってもらいたい。  このような擬人化されたソフトウェアの社会があって、それが我々の社会の中に埋め込まれるわけで、経済活動や社会活動のあらゆる領域をカバーすることになる。したがってこのマルチエージェントに関しては、社会学や経済学を始めとして色々な人達によって議論され、学会をつくるといった話もある。  この世界では、人間社会にある殆ど全ての現象の比喩がエージェントの世界に対応するわけで、それ自身多くの場合意味がある。例えば、この世界で子供が生まれるということは、二つのエージェントの持っている知識を合体して一つの子供を作るとか、あるいはそれを少し修正した形でつくるといったことになる。エージェントが学習するということは、子供が成長するのと同じである。また、必要がなくなったら殺してしまうとか自殺するということも考えられる。それから、エージェント同士が集まったグループ全体としての所属が、民族であったり国であったりすることもある。そこで、エージェント同士の戦いが起こるということも有り得る。また、エージェント同士のコミュニケーションでどういう言語を使うかプロコトルを使うかで、ある種の文化圏みたいなものができる可能性も十分ある。そこでは、人間社会のように異なる言語を翻訳する通訳のエージェントが出て来るといった具合いで、我々の社会の中で起きているあらゆるでき事が、ネットワークを介して電子の空間の中で可能になるという事である。  このようなソフトウェア開発の背景として、幾つかの事が考えられる。まず、コンピューターが小型化されてたくさんの人が使用するようになった。そうすると、だれでも使えるようにしないと売れない。使い易いという点を追及していくと、どうしても何となく人間の話しているようなインターフェィス機能を持たせる必要が出て来る。そういう社会の状況が一方に存在する。また、我々のコンピューターに対する認識も、以前は、ある種の方程式を解くあるいは情報処理をするといった、問題を解決するための道具として考えていた。しかし、最近では多くの人が指摘しているように、コンピューターは自己を表現するための表現手段になりつつある。これからは、その方向でコンピューターを捉えていく部分が増加していくだろう。その辺が社会的コンセンサスを得ているかどうかは分からないが、ある意味で自己表現の道具としての使い方が、社会の中で広がっているのは事実である。  もう一方では、メモリー容量が飛躍的に拡大したとか計算機のスピードが速くなったという技術的な要因がある。計算機が安くなり計算量が豊富になってくると、上で述べたような事が現実に可能になってくる。すなわち、社会的なニーズとテクノロジーの進歩が両輪相まっているように思う。そして、従来は単独で動いていた計算機がネットワークでつながり始めたという状況により、アイデアとしては70年代からあったものが、もう一度ニーズがあるという事で見直されて、もう少し真面目に研究したらどうかという風潮になりつつあるのが現実ではないかと思う。ハードウェアやソフトウェアの進歩もあるが、社会的な反響がある意味で変わってきたという感じがする。

# router...ルータについて。。。

・複数のネットワークを接続するための装置の名. ブリッジがデータリンク
層の MACアドレスを元にネットワークを分割していたのに対し, ルータは
ネットワーク層のデータを元に, LAN における論理的なネットワーク間の
データ交換を実現する. 実際にはルータの上位プロトコルが TCP/IP なら
IPアドレスとサブネットを元にしてネットワークを分割できる.
・ルータはリピータやブリッジとは異なり, 使用する前に各種の設定が必要
になる. またネットワーク層までを見る関係から, 物理層までしかみない
リピータやデータリンク層までしかみないブリッジとは異なり, サポート
されるプロトコルには限りがある. また, 最近はトランスポート層(OSI参
照モデルの第4層)を見て処理を変える "L4ルータ" というものもあり, 透
過型キャッシュなどを実装する際に使われる.
・ルータの主な仕事は, ルータに接続されたあるネットワークからのパケッ
トを, 同じルータに接続され, かつ宛先に最も近いと判断したネットワー
クに対して送出することである. これを "ルーティング" と呼ぶ. ルータ
の内部にはルーティングテーブルと呼ばれる参照表が存在し, 宛先に対し
て自分に接続されたネットワークでどの方向にパケットを送り出すのが最
も近いかを判断する機構が搭載されている. 但し, 各ルータが知るのは自
分に接続されているネットワークのみで, 一台が世界中の情報を管理して
いるわけではない. 分からない宛先の場合には "デフォルトルート" と呼
ばれるネットワークへ優先的に送出し, 先にあるルータに判断を任せると
いう方法を取る. これにより, ルーティング作業は大幅に簡略化されつつ
も, 安定したネットワーク接続が実現されている.
・実際に, 自分の端末の接続されているルータのルーティングテーブルを確
認したい場合 Microsoft Windows の DOS プロンプトでは "route print"
というコマンドを利用する. この時に, 一番上に表示されている Network
Address 0.0.0.0 というものがデフォルトルートである. Windows用語で
はデフォルトゲートウェイと呼ばれている.

# bridge...ブリッジについて。。。

・Ethernet で使用される装置の一つで, ケーブルの長さが足りない場合に
使用する延長装置. 信号の整形を行ない, 遠距離までの伝送を可能にする
もの. リピータで拡張された 2,800m の Ethernet を最大8個まで拡張す
ることができ, 最大総延長は 22.4km となる.
・類似のリピータは OSI 参照モデルの最下層である "物理層" だけに対応
した装置であるが, ブリッジは更に一つ上位層である "データリンク層"
までに対応した機器であり, データリンク層のMAC層で動作する. ここ
を流れるデータに含まれる MACアドレスを元にパケットを仕分ける機能を
持っているため, 不必要なパケットを他のセグメントに流さない.

# network...ネットワークについて。。。

・網の目. および網の目が張り巡らされた状態のこと. 放送業界や商業上で
"全国ネットワーク" などのように使われ, 事業の展開箇所を網の目のよ
うに増やすことを意味するが, それ以外にも, コンピュータネットワーク
という意味で使われることが多い.
・コンピュータネットワークは複数のコンピュータ間で情報通信が行なえる
ように接続すること, 及び, そのための設備のこと. 設備を指してネット
ワークと言う場合は多くの場合ネットワーク内にあるコンピュータ, 特に
ホストコンピュータを指していることが多い.
・実際には接続しただけではネットワークとして機能できず, 別途にネット
ワークOS (NOS) が必要となる. かつてパソコンでは Netware がよく使わ
れていたが, Windows や Mac OS のような比較的新しい OS は標準でネッ
トワーク機能を備えているため, 配線させできていれば OS の設定を正し
く合わせるだけでネットワーク機能が使えることが多い.