(57)【特許請求の範囲】
【請求項１】
リモート・システムとクライアント・システムとの間で通信する方法であって、
前記リモート・システムが、
（ａ）前記リモート・システムから前記クライアント・システムへ伝送されるべきメッセージを第三者による発見から偽装するために、複数のセレクタの夫々と伝送されるべき複数のメッセージの夫々とによって関連付けられた複数の偽装メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の情報の内の１つとから、伝送されるべき１つの偽装メッセージを選択するステップであって、前記偽装メッセージは前記メッセージが有する本当の意味と異なる意味を有する、前記選択するステップと、
（ｂ）前記選択された偽装メッセージを、前記リモート・システムから前記クライアント・システムへ伝送するステップと
を実行する方法。
【請求項２】
リモート・システムとクライアント・システムとの間で通信する方法であって、
前記クライアント・システムが、
（ａ）前記クライアント・システムから前記リモート・システムへ伝送されるべきメッセージを第三者による発見から偽装するために、複数のセレクタの夫々と伝送されるべき複数のメッセージの夫々とによって関連付けられた複数の偽装メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の情報の内の１つとから、伝送されるべき１つの偽装メッセージを選択するステップであって、前記偽装メッセージは前記メッセージが有する本当の意味と異なる意味を有する、前記選択するステップと、
（ｂ）前記選択された偽装メッセージを、前記クライアント・システムから前記リモート・システムへ伝送するステップと
を実行する方法。
【請求項３】
前記セレクタが、前記リモート・システムと前記クライアント・システムの両方に既知のパラメータを含む、請求項１又は２に記載の方法。
【請求項４】
前記セレクタが、前記リモート・システムと前記クライアント・システムの間で所定数の伝送を行った後に変更される、請求項３に記載の方法。
【請求項５】
前記セレクタが、前記リモート・システムと前記クライアント・システムとの間で伝送される、請求項１又は２に記載の方法。
【請求項６】
前記セレクタが、所定数の通信または周期後に修正される、請求項１又は２に記載の方法。
【請求項７】
前記セレクタが、前記リモート・システムと前記クライアント・システムとの間で伝送される前記選択されたメッセージに付加されたタイム・スタンプから導出される、請求項６に記載の方法。
【請求項８】
偽装メッセージのそれぞれが、前記セレクタに基づいて選択された複数の代替意味を有する、請求項１に記載の方法。
【請求項９】
前記選択するステップが、前記偽装メッセージから少なくとも１つの追加メッセージを選択するステップを含み、前記伝送するステップが、前記リモート・システムと前記クライアント・システムとの間で前記追加のメッセージをさらに伝送するステップを含み、それにより前記セレクタが、前記伝送された偽装メッセージのうちのどれが伝送されるべき情報を含むかを制御する、請求項１又は２に記載の方法。
【請求項１０】
前記選択するステップが、伝送されるべき情報に対応するメッセージを除き、前記偽装メッセージから各メッセージを選択するステップを含み、前記伝送するステップが、前記選択されたメッセージを前記リモート・システムと前記クライアント・システムとの間で伝送するステップを含む、請求項１又は２に記載の方法。
【請求項１１】
前記伝送するステップにおいて、伝送される偽装メッセージがスクランブルをかけられていない、請求項１又は２に記載の方法。
【請求項１２】
リモート・システムと通信する方法であって、
（ａ）クライアント・システムから又は前記リモート・システム及び前記クライアント・システム以外のコンピュータ・システムから受信した入力を前記リモート・システムで処理して、それによってそれからの出力を生成するステップと、
（ｂ）前記出力と、複数のセレクタの夫々及び伝送されるべき複数の出力の夫々によって関連付けられた複数の偽装メッセージを含む変換表とに基づいて、伝送されるべき出力メッセージを偽装するステップであって、前記偽装された出力メッセージは前記出力が有する本当の意味と異なる意味を有する、前記偽装するステップと、
（ｃ）前記偽装された出力メッセージを伝送するステップと、
を含む方法。
【請求項１３】
クライアント・システムと通信する方法であって、
（ａ）リモート・システムから受信した入力を前記クライアント・システムで処理して、それによってそれからの出力を生成するステップと、
（ｂ）前記出力と、複数のセレクタの夫々及び伝送されるべき複数の出力の夫々によって関連付けられた複数の偽装メッセージを含む変換表とに基づいて、伝送されるべき出力メッセージを偽装するステップであって、前記偽装された出力メッセージは前記出力が有する本当の意味と異なる意味を有する、前記偽装するステップと、
（ｃ）前記偽装された出力メッセージを伝送するステップと、
を含む方法。
【請求項１４】
リモート・システムとクライアント・システムとの間で通信する方法であって、
（ａ）前記クライアント・システムから受信した入力を前記リモート・システムで処理し、それによってそれからの出力を生成するステップと、
（ｂ）前記出力を第三者による発見から偽装するために、複数のセレクタの夫々と伝送されるべき複数の情報の夫々とによって関連付けられた複数の偽装された出力メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の出力の内の１つとから、伝送されるべき出力メッセージを偽装するステップであって、前記偽装された出力メッセージは前記出力が有する本当の意味と異なる意味を有する、前記偽装するステップと、
（ｃ）前記偽装された出力メッセージを前記クライアント・システムに伝送するステップと
を含む方法。
【請求項１５】
リモート・システムとクライアント・システムとの間で通信する方法であって、
（ａ）前記リモート・システムから受信した入力を前記クライアント・システムで処理し、それによってそれからの出力を生成するステップと、
（ｂ）前記出力を第三者による発見から偽装するために、複数のセレクタの夫々と伝送されるべき複数の情報の夫々とによって関連付けられた複数の偽装された出力メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の出力の内の１つとから、伝送されるべき出力メッセージを偽装するステップであって、前記偽装された出力メッセージは前記出力が有する本当の意味と異なる意味を有する、前記偽装するステップと、
（ｃ）前記偽装された出力メッセージを前記リモート・システムに伝送するステップと
を含む方法。
【請求項１６】
リモート・システムとクライアント・システムとの間で通信する方法であって、
（ａ）前記リモート・システムから前記クライアント・システムに伝送されるべき偽装メッセージを前記クライアント・システムで受信するステップであって、前記偽装メッセージは、複数のセレクタの夫々と伝送されるべき複数の情報の夫々とによって関連付けられた複数の偽装された出力メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の情報の内の１つとから選択されたメッセージである、前記受信するステップと、
（ｂ）セレクタを決定するステップと、
（ｃ）前記偽装メッセージ内で伝送される所定の情報を決定するために、前記セレクタを使用して前記偽装メッセージを解釈するステップであって、前記偽装メッセージは、前記所定の情報が有する本当の意味と異なる意味を有する、前記解釈するステップと
を含む方法。
【請求項１７】
リモート・システムとクライアント・システムとの間で通信する方法であって、
（ａ）前記クライアント・システムから前記リモート・システムに伝送されるべき偽装メッセージを前記リモート・システムで受信するステップであって、前記偽装メッセージは、複数のセレクタの夫々と伝送されるべき複数の情報の夫々とによって関連付けられた複数の偽装された出力メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の情報の内の１つとから選択されたメッセージである、前記受信するステップと、
（ｂ）セレクタを決定するステップと、
（ｃ）前記偽装メッセージ内で伝送される所定の情報を決定するために、前記セレクタを使用して前記偽装メッセージを解釈するステップであって、前記偽装メッセージは、前記所定の情報が有する本当の意味と異なる意味を有する、前記解釈するステップと
を含む方法。
【請求項１８】
リモート・システムとクライアント・システムとの間で通信するプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記リモート・システムに、
（ａ）前記リモート・システムから前記クライアント・システムへ伝送されるべきメッセージを第三者による発見から偽装するために、複数のセレクタの夫々と伝送されるべき複数のメッセージの夫々とによって関連付けられた複数の偽装メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の情報の内の１つとから、伝送されるべき１つの偽装メッセージを選択するステップであって、前記偽装メッセージは前記メッセージが有する本当の意味と異なる意味を有する、前記選択するステップと、
（ｂ）前記選択された偽装メッセージを、前記リモート・システムから前記クライアント・システムへ伝送するステップと
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１９】
リモート・システムとクライアント・システムとの間で通信するプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記クライアント・システムに、
（ａ）前記クライアント・システムから前記リモート・システムへ伝送されるべきメッセージを第三者による発見から偽装するために、複数のセレクタの夫々と伝送されるべき複数のメッセージの夫々とによって関連付けられた複数の偽装メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の情報の内の１つとから、伝送されるべき１つの偽装メッセージを選択するステップであって、前記偽装メッセージは前記メッセージが有する本当の意味と異なる意味を有する、前記選択するステップと、
（ｂ）前記選択された偽装メッセージを、前記クライアント・システムから前記リモート・システムへ伝送するステップと
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２０】
リモート・システムと通信するプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記リモート・システムに、
（ａ）クライアント・システムから又は前記リモート・システム及び前記クライアント・システム以外のコンピュータ・システムから受信した入力を前記リモート・システムで処理して、それによってそれからの出力を生成するステップと、
（ｂ）前記出力と、複数のセレクタの夫々及び伝送されるべき複数の出力の夫々によって関連付けられた複数の偽装メッセージを含む変換表とに基づいて、伝送されるべき出力メッセージを偽装するステップであって、前記偽装された出力メッセージは前記出力が有する本当の意味と異なる意味を有する、前記偽装するステップと、
（ｃ）前記偽装された出力メッセージを伝送するステップと、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２１】
クライアント・システムと通信するプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記クライアント・システムに、
（ａ）リモート・システムから受信した入力を前記クライアント・システムで処理して、それによってそれからの出力を生成するステップと、
（ｂ）前記出力と、複数のセレクタの夫々及び伝送されるべき複数の出力の夫々によって関連付けられた複数の偽装メッセージを含む変換表とに基づいて、伝送されるべき出力メッセージを偽装するステップであって、前記偽装された出力メッセージは前記出力が有する本当の意味と異なる意味を有する、前記偽装するステップと、
（ｃ）前記偽装された出力メッセージを伝送するステップと、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２２】
リモート・システムとクライアント・システムとの間で通信するプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記リモート・システムに、
（ａ）前記クライアント・システムから受信した入力を前記リモート・システムで処理し、それによってそれからの出力を生成するステップと、
（ｂ）前記出力を第三者による発見から偽装するために、複数のセレクタの夫々と伝送されるべき複数の情報の夫々とによって関連付けられた複数の偽装された出力メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の出力の内の１つとから、伝送されるべき出力メッセージを偽装するステップであって、前記偽装された出力メッセージは前記出力が有する本当の意味と異なる意味を有する、前記偽装するステップと、
（ｃ）前記偽装された出力メッセージを前記クライアント・システムに伝送するステップと
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２３】
リモート・システムとクライアント・システムとの間で通信するプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記クライアント・システムに、
（ａ）前記リモート・システムから受信した入力を前記クライアント・システムで処理し、それによってそれからの出力を生成するステップと、
（ｂ）前記出力を第三者による発見から偽装するために、複数のセレクタの夫々と伝送されるべき複数の情報の夫々とによって関連付けられた複数の偽装された出力メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の出力の内の１つとから、伝送されるべき出力メッセージを偽装するステップであって、前記偽装された出力メッセージは前記出力が有する本当の意味と異なる意味を有する、前記偽装するステップと、
（ｃ）前記偽装された出力メッセージを前記リモート・システムに伝送するステップとを実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２４】
リモート・システムとクライアント・システムとの間で通信するプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記クライアント・システムに、
（ａ）前記リモート・システムから前記クライアント・システムに伝送されるべき偽装メッセージを前記クライアント・システムで受信するステップであって、前記偽装メッセージは、複数のセレクタの夫々と伝送されるべき複数の情報の夫々とによって関連付けられた複数の偽装された出力メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の情報の内の１つとから選択されたメッセージである、前記受信するステップと、
（ｂ）セレクタを決定するステップと、
（ｃ）前記偽装メッセージ内で伝送される所定の情報を決定するために、前記セレクタを使用して前記偽装メッセージを解釈するステップであって、前記偽装メッセージは、前記所定の情報が有する本当の意味と異なる意味を有する、前記解釈するステップと
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２５】
リモート・システムとクライアント・システムとの間で通信するプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記リモート・システムに、
（ａ）前記クライアント・システムから前記リモート・システムに伝送されるべき偽装メッセージを前記リモート・システムで受信するステップであって、前記偽装メッセージは、複数のセレクタの夫々と伝送されるべき複数の情報の夫々とによって関連付けられた複数の偽装された出力メッセージを含む変換表を使用して、前記複数のセレクタのうちの選択された１つと前記伝送されるべき複数の情報の内の１つとから選択されたメッセージである、前記受信するステップと、
（ｂ）セレクタを決定するステップと、
（ｃ）前記偽装メッセージ内で伝送される所定の情報を決定するために、前記セレクタを使用して前記偽装メッセージを解釈するステップであって、前記偽装メッセージは、前記所定の情報が有する本当の意味と異なる意味を有する、前記解釈するステップと
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
関連出願の相互参照
本出願は、同日に出願されたビグス（Bigus）他の、「Intelligent Agent with Negotiation Capability and Method of Negotiation Therewith」と題する米国特許出願第８２１１９３５号、「Apparatus and Method for Optimizing the Performance of Computer Tasks Using Multiple Intelligent Agents Having Varied Degrees of Domain Knowledge」と題する米国特許出願第８２６１０７号、および「Apparatus and Method for Optimizing the Performance of Computer Tasks Using Intelligent Agent with Multiple Program Modules Having Varied Degrees of Domain Knowledge」と題する米国特許出願第８２２９９３号に関連するものである。
【０００２】
【発明の属する技術分野】
本発明は、一般にコンピュータ・システム等で実行可能なインテリジェント・エージェント・コンピュータ・プログラム、特にこうしたプログラムで使用される決定論理および通信機構に関する。
【０００３】
【従来の技術】
１９４０年代に初めて電子計算機が出現して以来、計算機はより多様でますます複雑化するタスクを処理し続けてきた。半導体や他のハードウェア構成要素の進歩によって、かつては部屋いっぱいの大型コンピュータで処理したようなタスクを最近では下位機種のデスクトップ・コンピュータで処理できるまでに発達した。
【０００４】
実質上タスクを実行するコンピュータのオペレーションを制御する命令セットであるコンピュータ・プログラムも、ますます複雑かつ強力になってきている。初期のコンピュータ・プログラムが基本的な数学上の計算を実行するだけに限られていたのに対して、最新のコンピュータ・プログラムでは、音声や画像の認識、予測分析や予報、マルチメディア・プレゼンテーション、その他言い尽くせないほど多くのタスクなどの複雑なタスクを処理する。
【０００５】
ただし、多くのコンピュータ・プログラムに共通する一つの特徴は、一般にプログラムがオペレータやユーザが発行した特定のコマンドに応答してタスクを実行することに限定されていることである。したがってユーザは、特定のタスクを実行するのに必要な特定のコントロールやコマンドなどについて知っていなければならない場合が多い。コンピュータ・プログラムが複雑化および多様化すればするほど、ユーザはその改善された機能を利用するためにプログラムについてより多く学習し理解するように求められる。
【０００６】
コンピュータはより強力になるだけでなく、ローカル・エリア・ネットワークや広域ネットワークなどの私用ネットワークを通じて、またインターネットなどの公衆ネットワークを通じて、相互接続されるようにもなってきている。これによって、コンピュータとそのユーザが対話し、地球規模で互いに情報を共有することができる。ただし、その情報量は指数関数的速度で増加を続けており、ユーザにとって特定の情報を探し出すのがますます困難になっている。
【０００７】
コンピュータ・プログラムの複雑さとユーザが利用できる情報量の両方が劇的に増加した結果、その複雑さがユーザにわからないような方法で一定のタスクを自動化し簡略化するためにソフトウェアで実装した「アシスタント」とほぼ同様に動作するインテリジェント・エージェントまたは簡単にエージェントとも呼ばれるインテリジェント・エージェント・コンピュータ・プログラムの領域で、関心が大幅に高まってきた。エージェントを使用すると、ユーザは特定のコマンド・シーケンスを知らなくてもタスクを実行することができる。また同様にユーザは、情報の検索方法や検索場所がはっきりとわからなくてもその情報を入手できる。
【０００８】
インテリジェント・エージェントは、ユーザまたはクライアントがエージェントに対して少なくともある程度の自律性を持ってタスクを処理するよう委託するという、代行の概念を特徴としている。インテリジェント・エージェントは、ユーザから委ねられている自律性の量に応じて程度の異なる様々な制約条件で動作する。
【０００９】
またインテリジェント・エージェントは、知能、移動性、エージェンシー、およびユーザ・インタフェースに関して異なる機能を有することがある。知能とは一般に、エージェントが所有する推論および意思決定の量である。この知能は、所定の１組の規則に従うという簡単なものにすることも、またユーザの目的およびエージェントの使用可能資源に基づいて学習および適応するという複雑なものにすることもできる。
【００１０】
移動性とは、回路網を介して異なるコンピュータ・システム上で実行できる能力である。すなわち、あるエージェントは１つのコンピュータ・システム上にとどまり、異なるマシンには決して渡されないように設計され、他のエージェントは経路に沿って異なる地点でタスクを実行しながらコンピュータ間でやりとりされるように設計されているという意味で移動性がある。ユーザ・インタフェースは、エージェントがユーザと対話することがある場合、その方法を定義する。
【００１１】
エージェントは、システムおよびネットワークの管理、移動体へのアクセスおよび管理、情報へのアクセスおよび管理、協調、メッセージング、ワークフローおよび事務の管理、ならびに適応ユーザ・インタフェースを含む多種多様な適用分野でいくつかの用途がある。エージェントのもう１つの重要な用途は電子商取引であり、ここでエージェントは他のユーザ・コンピュータ・システム、エージェントなど他の関係者を捜し出し、それらのクライアントに代わって交渉を行い、商取引を開始するように構成することができる。
【００１２】
人間のエージェントが一定量の自律性を有するのとまったく同様に、インテリジェント・エージェントもそれ自体が実行する許可を与えられているものおよび許可を与えられていないものに関する１組の制約を有する。たとえば、電子商取引適用業務用の販売エージェントは、最低許容価格によって制約されることがある。ただし、優良な販売エージェントであれば、電子または人間のいずれでも、最初にその最低許容価格を提示してしまうと利潤差額が最低になってしまうのでそのようなことは決してしないであろう。さらに、最低価格を提示すると、エージェントが最初のオファーよりも価格を下げることに不賛成であることから、買い手はその価格が競争値段でないことを推論できる可能性があるので、販売を保証することさえもできないことがある。したがって、エージェントは一般にその最悪の場合の許容価格からある程度のマージンをもたせて交渉を開始し、当事者と相互に許容可能な価格へ向けて徐々に交渉を進めていく。
【００１３】
したがって、インテリジェント・エージェントがその制約の範囲内で動作するために使用するどんな交渉計画、技法、戦略、または他の機密情報も、当事者には見せないようにしなければならないことが多い。そうでない場合、エージェントは競争上不利な立場に立たされる。多くのエージェントが非保護環境にディスパッチされる可能性があることを考えると、相手方当事者がその交渉戦略または他の制約を学習するためにエージェントをスキャンまたはリバース・エンジニアリングできる可能性があることを想定しなければならない。また、相手方当事者がエージェントとそのクライアントとの間で交渉において最高の利益を得るために送信されたメッセージを復号できる可能性があることも想定しなければならない。こうした想定の妥当性は、これらの技法が一部の販売員が可能な限り最高の価格を獲得するために使用する多くの技法と概念上同様であるという事実に起因する。
【００１４】
たとえば、そのクライアントからエージェントへのメッセージが、エージェントは１００ドルのオファーをしなければならないが９０ドルより低い価格にする許可を得ていることを示している場合、このメッセージを傍受した別の当事者は、トランザクションが低い価格で完了する可能性があることを即時に知る。また、このメッセージがたとえ傍受されない場合でも、エージェントがその許可されている最低のオファーとして９０ドルを記憶していると、別の当事者がこのエージェントを逆コンパイルまたはスキャンすると同様の結果になる可能性がある。
【００１５】
エージェントとそのクライアントとの間のメッセージを暗号化する努力が行われてきた。しかし、ほとんどの便利な暗号化方法は、エージェント用とクライアント用の秘密「キー」に依存している。暗号化は、発信者と受信者の双方が保護環境にあり、両者の間の伝送経路のみが非保護であることを前提としている。ただし、エージェントは非保護環境に常駐しておりこの環境で実行している可能性があるので、このエージェントはその秘密キーを取得してそれによって暗号を復号するために逆コンパイルまたはスキャンされることがある。したがって、従来の暗号化方法は、エージェントの秘密通信または非保護環境で実行されているその他のコンピュータ・プログラムを適切に保護しない。
【００１６】
【発明が解決しようとする課題】
したがって、インテリジェント・エージェント・コンピュータ・プログラムの機密情報を保護する方法が当技術分野で強く求められている。
【００１７】
【課題を解決するための手段】
本発明は、第三者からのメッセージで伝送される機密情報を効果的に偽装するためにメッセージを生成および解釈する際にセレクタを使用する、エージェントとクライアントとの間の通信方法を提供する場合の、従来技術に伴う上記および他の問題に対処するものである。メッセージの内容にスクランブルをかけようとする暗号化技法とは対照的に、セレクタは、スクランブルをかける必要のない所与のメッセージが発信側当事者と受信側当事者によってどう解釈されるかを制御する。
【００１８】
本発明の様々な実施形態で使用するセレクタは、エージェントとクライアントの両方に既知の所定のパラメータでもよく、また機密情報と同じメッセージか別のメッセージでエージェントとクライアントとの間で伝送されてもよい。さらにこのセレクタは、当事者が既知のまたは当事者間で伝送される別個のパラメータとして維持してもよく、また別の用途や目的を有する既存のパラメータから導出してもよい。
【００１９】
このセレクタは、機密情報を偽装するためにいくつかの方法で使用することができる。たとえばこのセレクタを使用して、伝送する複数メッセージのうちの１つを選択し、特定メッセージに関する複数の代替意味のうちの１つを選択し、伝送される複数メッセージのどこに機密情報を入れるかを選択し、また複数メッセージのうちどれの伝送を省略するかを示すことができる。
【００２０】
さらに、本発明の一実施形態において、エージェントの決定論理は、この決定論理の一部またはすべてを実装するためにニューラル・ネットワークを介して第三者に対して偽装することができる。論理を符号化するための可変重みを有する相互接続されたノードを利用するニューラル・ネットワークは、簡単に逆コンパイルまたはスキャンされないので、非保護環境で動作するエージェントに対して著しいセキュリティ上の利点を提供する。
【００２１】
本発明を特徴付ける上記その他の利点や特徴については、後続部分を形成する添付の請求の範囲に記載されている。ただし、本発明およびその使用を通じて達成される利点と目的をよりよく理解するためには、本発明の実施形態を図示した図面および添付の説明を参照されたい。
【００２２】
【発明の実施の形態】
本発明の実施形態は、インテリジェント・エージェントの機密情報を第三者に対して偽装する様々な方法を組み込んでいる。
【００２３】
インテリジェント・エージェントは、ある程度の自律性を委ねられているが、そのクライアントによって定義された制約の範囲内（たとえば、別のエージェント；コンピュータ・プログラム、適用業務、またはシステム；あるいはコンピュータを介してエージェントと対話する個人、下記ではクライアント・コンピュータ・プロセスと称する）で動作するように制限されたコンピュータ・プログラムである。異なる適用業務またはコンピュータ・システム間でやりとりされその中で動作することのできるこうしたエージェントのサブセットは、移動エージェントと呼ばれる。
【００２４】
一般にエージェントは、感知し、認識し、実行する能力を有する。これらの機能は一般に、エンジン、知識構成要素、アダプタ構成要素、ライブラリ、およびビュー構成要素を含むいくつかの構成要素で実施される。通常、エンジンは、エージェントのすべての動作を制御してエージェントの「頭脳」として機能し、知識構成要素はこのエージェントが獲得した知識を表す情報を記憶する。アダプタ構成要素は、エージェントと外部オブジェクトとの間の対話を処理し、エージェントが「感知」してその環境と対話するときに使用する機構として機能する。ライブラリは、知識構成要素によって使用される情報を永続的に記憶し、ビュー構成要素は、たとえばエージェントに命令を与えるためのヒューマン・インタフェースがあればそれをエージェントに提供する。
【００２５】
エージェントは、クライアントが第三者によるアクセスを制限したいことのあるデータ、独自の決定論理または戦略、所望の目的などの機密情報を受信し、送信し、記憶し、あるいはその他の形で利用することができる。たとえば電子商取引適用業務では、エージェントが交渉中の相手である当事者に、その交渉戦略や許可されたオファー制限などの一定情報を知られないようにしたいことがある。ただしこの機密情報は、別の当事者がエージェントとそのクライアントとの間のメッセージを傍受できる場合、あるいは別の当事者がエージェントのプログラム・コードを逆コンパイルまたはその他の形でスキャンできる場合、精査を受けることがある。
【００２６】
前述の問題に対処するために本発明の実施形態では、最終的にエージェントとエージェント・マネージャの両方に既知のセレクタを利用して、そこに含まれる機密情報を偽装するメッセージを生成し解釈するための、独自の送信方法を使用する。以下で明らかになるように、暗号化技法とは異なり、セレクタは主にメッセージの意味を解釈するために使用されるので、メッセージを修正し、暗号化し、あるいはスクランブルをかける必要がない。
【００２７】
セレクタの使用と暗号化技法との相違点の１つは、セレクタの場合、第三者が誤ってメッセージに本当の意味と異なる意味があると信じてしまい、不注意にクライアントの利益になるように行動してしまうことがあるという点である。暗号化に対するセレクタのもう１つの利点は、メッセージの偽装が簡単には明らかにならないことであり、これによってメッセージが一般に他のメッセージと比べて目立つことはない。ただし、暗号化技法は、本発明のいくつかの実施形態では偽装したメッセージと組み合わせて使用でき、偽装されたメッセージまたは偽装されていないメッセージに暗号化が使用されることを理解されたい。たとえば一実施形態では、伝送される情報は偽装メッセージで送信され、この偽装メッセージから注意をそらすために暗号化されたおとりメッセージも送信される。
【００２８】
たとえば第１図は、本発明に適合するインテリジェント・エージェント１６０用のプログラムの流れを示した図である。エージェント１６０はブロック１６２で入力を受信し、ブロック１６４でその入力に基づいて意思決定を行うことによって動作する。ブロック１６４で、セレクタ１６７に基づいてブロック１６６のメッセージ中に偽装された機密情報を出力する。次にこのメッセージはブロック１６８で送信され、ブロック１６２に制御が戻される。
【００２９】
セレクタの使用方法は、野球選手とコーチとの間で試合中に意思を伝えるために交わされるサイン（たとえば耳を引っ張る、鼻に触るなど）にたとえることができる。このサインやメッセージは誰にでも見えるが、それを使うチームにしか知られておらず、その意味がしばしば変更されるので、解釈するのは不可能ではないにしても困難である。ある種のサインは状況に応じて異なる意味を持つことがあり、他チームを困惑させたり、別の意味を持つ特定のサインであると誤って信じ込ませてしまうことができる。
【００３０】
セレクタは、機密情報を偽装するためにいくつかの方法で使用することができる。たとえば、セレクタを使用して特定の機密情報を搬送するために伝送する複数メッセージのうちの１つを選択することができる。さらに、１つまたは複数のメッセージに複数の代替意味を持たせることもできる。これによって、１組のメッセージが複数の機密情報を表すようにすることができるが、メッセージが複数の意味を持つ必要がないことを理解されたい。
【００３１】
たとえば、以下の表１は、１組のメッセージからの３つのメッセージ「Ａ」、「Ｂ」、「Ｃ」が、セレクタの値に応じて３つの機密情報（ここでは受入れかカウンタオファーか）を搬送するためにエージェントによってどのように使用されるかを示す変換表（transformation table）である。
【００３２】
【表１】
0003905926.tif 000002
【００３３】
この構成の利点の１つは、その内容または意図された意味の偽装を超えたメッセージは、別の当事者に特定のメッセージが別の意味を持っていると誤って信じさせることができるという点である。たとえば、買い手側エージェントが許可を求めているクライアントに最新のオファー価格でトランザクションを完了させるとのメッセージを送信したが、売り手側当事者がそのメッセージをそのエージェントが交渉を終了させたいという意味であると解釈した場合、売り手側当事者はその価格を下げてトランザクションを完了させようとすることがある。
【００３４】
セレクタは、複数メッセージのうちのどれが所望の機密情報を含んでいるかを選択するときにも使用される。たとえば、上記表ＩのメッセージＡ、Ｂ、Ｃは１回の伝送ですべて一度に伝送することができ、どのメッセージを考慮の対象とすべきかをセレクタが示す。同様に、セレクタを使用して、複数メッセージのうちどれを伝送しないかを選択することができる。たとえば、メッセージＡ〜Ｃの組について、ある情報を搬送するために、メッセージＡとＢは伝送するがＣは伝送しない。
【００３５】
セレクタは、エージェントとクライアントの双方に既知の所定のパラメータでよい。たとえば、セレクタは、所定数の通信または周期後に（たとえば３回伝送するごとに）修正することができる。
【００３６】
セレクタはまた、エージェントとクライアントとの間で、機密情報と同じメッセージ、同じ伝送内の別のメッセージ、あるいはまったく別の伝送で伝送することもできる。たとえば、エージェント・マネージャは、１組の可能な値の中で次のセレクタ値が使用されるように「セレクタ増分」メッセージをエージェントに送ることができ、またエージェントは、マネージャがどのメッセージの組からメッセージを解釈しなければならないかを示す別個のメッセージを、あるメッセージの前に付けることができる（たとえば、表１の場合、メッセージＤはセレクタ１を示し、メッセージＥはセレクタ２を示し、メッセージＦはセレクタ３を示す）。
【００３７】
複数のセレクタを１つのメッセージ内で機密情報、たとえば複数組のビットとインターリーブすることができる。たとえば、３２ビットのメッセージには、３個の８ビット・データと８ビット・セレクタ情報が含まれ、このセレクタ情報は解析されて４個の２ビット・セレクタに分解され８ビット・データの境界に配置される。セレクタ情報をメッセージ中にインターリーブする助けとして、索引テーブルを使用することができる。またメッセージには解釈時には無視される他の外来情報が含まれることがあり、たとえば１つの値に、解釈時には無視される数個の高位ビットが加えられることがある。さらに情報が複数のメッセージまたは伝送間で分割されることがあり、情報をどこから取り出してどのように解釈するかはセレクタが制御する。
【００３８】
また、このセレクタは、当事者によって知られ、または当事者間で伝送される別個のパラメータとして維持することも、あるいは別の用途や目的を持つ既存のパラメータから導出することもできる。たとえばセレクタを、メッセージ上のタイム・スタンプから（たとえば、最後の桁、または桁の合計を３で割った際の余りなど）、あるいはそのメッセージのチェックサム値から得ることができる。その他の表面上無害と思われる情報は、クライアントとエージェントの両方に既知である場合でもその間を伝送される場合でも、「擬似ランダム」セレクタを生成するのに使用することができる。
【００３９】
第１図のエージェント１６０は、意思決定およびメッセージ偽装の手続き型プロセスを示す図であり、コンピュータ・プログラムがブロック１６４および１６６の機能を処理するために一連のステップが順番に実行される。ただし、手続き型論理は、第三者による逆コンパイルおよびスキャンを受けることがある。エージェント１６０の代替形態の１つが第２図に示してあるが、ここでエージェント１７０は手続き的意思決定の代わりにニューラル・ネットワーク１７２を用いる。メッセージの偽装は依然として、セレクタ１７７を受信してブロック１７８を介して送信された偽装メッセージを出力する、手続き型ブロック１７６によって処理される。
【００４０】
ニューラル・ネットワークの実装およびトレーニングについては、当技術分野において周知である。ニューラル・ネットワーク実装意思決定の主な利点は、論理が手続き型プロセスではなく重みに基づいているため、トレーニングによってニューラル・ネットワークに入れた論理を決定するのが非常に困難であるという点である。ニューラル・ネットワークは、ネットワーク内で相互接続された１組の処理エレメントまたはノードを使用し、各ノードは通常その入力の重み付けされた合計を出力する。ノードへの各入力に加えられる重みは、ニューラル・ネットワークをサンプルまたはトレーニング・データでトレーニングすることで、そのネットワークが時間の経過につれて「学習」する。
【００４１】
ただし、エージェント１７０は第三者による精査に対してかなり抵抗力があるが、それでも、ニューラル・ネットワークによって生成された非偽装出力から偽装メッセージを生成するために、手続き型プロセスがブロック１７６で使用されるので、なんらかの精査を受けることがある。エージェントに記憶されているどんな非偽装データも、そのエージェントが非保護環境にある時に逆コンパイルおよびスキャンを受ける可能性があると想定しなければならない。
【００４２】
第３図は、ニューラル・ネットワークの用途を意思決定とメッセージ偽装の両方に拡張する、エージェント１８０を示す図である。ニューラル・ネットワーク１８２は、それから偽装メッセージが生成される１つまたは複数のセレクタ（たとえば、セレクタ１８４と１８６）をも含む複数の入力を受け取る。またニューラル・ネットワーク１８２は、１つまたは複数の偽装出力（たとえば偽装出力１および偽装出力２）だけを出力する。したがって、どんな非偽装データもエージェント１８０に記憶されることはない。
【００４３】
ニューラル・ネットワーク１８２のトレーニングには、ネットワークのセレクタの追加入力を考慮してメッセージの偽装を処理するために、追加のトレーニング・レコードまたは例が必要である。たとえば、偽装メッセージなしでニューラル・ネットワークをトレーニングする場合は、以下の表２に示すように、標準のトレーニング・データはＮ個のトレーニング・レコードを含む。
【００４４】
【表２】
0003905926.tif 000003
【００４５】
ただし、メッセージを偽装するようにニューラル・ネットワークをさらにトレーニングするには、１つの出力を複数のメッセージで表すことができるのであれば、追加のトレーニング・レコードが必要である。一般に、セレクタの可能な各値ごとに１群のトレーニング・レコードが必要であるが、これは、以下の表３に示すように、セレクタの各値（たとえば、１〜Ｋ）ごとに２倍にし、各値について適切に配列されたメッセージ（たとえば、メッセージＡ、Ｂ、．．．Ｍ）を伴う、元の純粋なトレーニング情報を単に再使用するだけで実施できる。
【００４６】
【表３】
0003905926.tif 000004
【００４７】
複数の偽装メッセージを一度に出力するには、入力数に必要なものを除いて、追加のトレーニングは必要ない。たとえば表４に示すように３つの出力メッセージを生成するには、次のトレーニング・データを使用することができる。
【表４】
0003905926.tif 000005
【００４８】
さらに、複数のセレクタに基づいて偽装メッセージを生成するには、セレクタ値の各組み合わせごとに１組のトレーニング・データが必要である。たとえば、表５に示すように、３つのセレクタと２つの出力の組に対しては、次のトレーニング・データが使用される。
【００４９】
【表５】
0003905926.tif 000006
【００５０】
ニューラル・ネットワークのトレーニングに使用されるトレーニング・レコードは、ネットワーク内で符号化したい特定の論理に依存していることを理解されたい。さらに、エージェントのメッセージ偽装機能が、ニューラル・ネットワークを介してまたは手続き的意思決定を用いて実施され、かつ意思決定およびメッセージ偽装機能に別々のニューラル・ネットワークが使用されることを理解されたい。さらに、エージェント用の様々な追加機能が、意思決定またはメッセージ偽装機能の場合と同じまたは異なるニューラル・ネットワークに組み込まれることがある。その他の修正例については、当業者には明らかであろう。
【００５１】
ハードウェア／ソフトウェア環境の例
本発明に適合するインテリジェント・エージェントのトレーニングまたはホスティングあるいはその両方に適した代表的なハードウェア環境が第４図に示されているが、ここでネットワーク接続されたコンピュータ・システム１０は一般に１つまたは複数のコンピュータ・システム、たとえばネットワーク１５を介して結合された単一ユーザ・コンピュータ・システム１６および１８と、複数ユーザ・コンピュータ・システム２０および６０とを含む。複数ユーザ・コンピュータ・システム２０は一般に、１つまたは複数のサーバ２５を含み、これに別のネットワーク２４を介して１つまたは複数の単一ユーザ・コンピュータ２２がネットワーク接続される。同様に、複数ユーザ・コンピュータ・システム２０は一般に、ネットワーク６４を介して１つまたは複数の単一ユーザ・コンピュータ・システム６２に結合された１つまたは複数のサーバ６５を含む。ネットワーク１５はローカル・エリア・ネットワーク、広域ネットワーク、無線ネットワーク、および公衆ネットワーク（たとえばインターネット）を含むがそれだけには限定されない、任意のタイプのネットワーク化された相互接続を表す。
【００５２】
本発明に適合するエージェントは、前述のどんなコンピュータ・システムからでも発し、その時々に前述のどんなコンピュータ・システムに常駐していることもあると予測される。本発明の目的のコンピュータ・システム間で可能な相違点の１つは、それぞれが特定エージェントに対してクライアントであるかそれともリモート・システムであるかであろう。たとえば第５図は、コンピュータ・システム１０の一実施形態を示した図であり、ここで複数ユーザ・コンピュータ・システム２０はクライアント・システムで、複数ユーザ・コンピュータ・システム６０はリモート・システムである。
【００５３】
クライアント・システムとは、以下では、エージェントがこのシステムに常駐しているときに、このエージェントに相手方当事者による操作に対してあるレベルのセキュリティを与えるコンピュータ・システムのことを指す。クライアント・システムは、一般にエージェントの管理がそこから処理されるコンピュータ・システムでもある。エージェントは、通常クライアント・システムから発することもあるが、必ずしもそうである必要はない。
【００５４】
他方、リモート・システムとは、以下では、通常そのコンピュータ・システムがクライアントの制御下にないため、一般にエージェントに対する所望レベルのセキュリティを提供する能力のないコンピュータ・システムのことを指す。エージェントが相手方当事者によってスキャンまたは逆コンパイルされるか、あるいは通信を傍受または監視される危険が最大になるのは、通常、リモート・システムに常駐しているときである。
【００５５】
ここに記載された様々な実施形態の主な用途は、電子商取引の適用分野であり、ここでエージェントは、一般に買い手側エージェントまたは売り手側エージェントの役割で商取引の交渉を行うように構成される。エージェントは他のエージェント、他のコンピュータ・システム、さらには他の個人とも交渉することができる。エージェントは１対１で対話することもでき、あるいは株式市場や商品市場など複数エージェントの「市場」内で行動することもできる。エージェント間で対話を行うためにエージェントのホストとして働く能力を有するコンピュータ・システムは、精巧さの異なる複数の交渉プログラムを含んでおり、下記ではエージェント・ホストと呼ぶ。ただし本発明は、インテリジェント・エージェントの他の応用例にも等しく適用されるので、特に商用適用業務に限定されるものではないことを理解されたい。
【００５６】
第５図は、クライアント・システム２０においてエージェント・マネージャ３２と通信する移動インテリジェント・エージェント１００を示す図である。交渉エージェント９５など別の当事者と交渉を行う間、移動エージェント１００はリモート・システム６０上に常駐する。リモート・システム６０はエージェント９５のクライアントでもよく、またはこのエージェントに対しても同様にリモートであると見なされるものでもよいことを理解されたい。
【００５７】
本発明の様々な実施形態を実装するためにネットワーク接続されたコンピュータ・システム１０の例示的機能設計が、第６図に示されている。クライアント・システム２０のサーバ２５は通常、バス５４を介してメモリ３０と記憶装置４０に結合された中央処理装置（ＣＰＵ）２８を含む。ローカル・エリア・ネットワーク・インタフェースが５２に設けられ、外部ネットワーク１５を介したりモート・システム６０へのインタフェースが、インタフェース５０を通じて提供される。エージェント・マネージャ・プログラム３２は、メモリ３０内に常駐し、エージェントをトレーニングするエージェント・トレーナ・プログラム３４も同様である。記憶装置４０は、１つまたは複数の（たとえばエージェント１００を含むことがある）トレーニングされたエージェント４２を含み、このエージェントはシステム２０内で検索されローカルに使用されるか、またはクライアント・システムに代わってタスクを実行するためにリモート・システムにディスパッチされる、コンピュータ・プログラムまたはモジュールである。記憶装置４０は、エージェントの動作とその相対的成否を追跡することのできる、エージェント・ミッション・データベース４４も含む。さらにトレーニング・データベース４６は、エージェント・トレーナ・プログラム３４がエージェントをトレーニングするために使用するトレーニング・データを含み、変換テーブル４８は、エージェント・トレーナ・プログラム３４とエージェント・マネージャ３２によって移動エージェントへのメッセージを符号化し移動エージェントからのメッセージを復号化するために使用されるが、これについては下記で詳細に論じる。
【００５８】
リモート・システム６０のサーバ６５も、バス９４を介してメモリ７０、記憶装置８０、外部ネットワーク接続９０、およびローカル・ネットワーク接続９２に結合された、ＣＰＵ６８を含む。エージェント・ホスト・プログラム７２はメモリ７０に常駐し、リモート・システムに常駐するエージェント間の対話を処理する。一般に、このエージェント・ホスト・プログラムは、オペレティング・システムとほぼ同様にそれを介してエージェント・コンピュータ・プログラムが実行および対話する共通プラットフォームを提供する、非同期メッセージ／イベント駆動型環境である。このエージェント・ホストは、エージェントとそのクライアントとの間でメッセージを送信する許可を与えることもできる。メモリ７０は、エージェント１００とのトランザクションで「相手方当事者」として動作する交渉プログラム７４も含んでおり、これは別のエージェント、市場適用業務または掲示板適用業務、さらにはそれを介して個人がエージェント１００と対話するインタフェース・プログラムのこともある。記憶装置８０は、サーバ上で完了したトランザクションを記録するトランザクション履歴データベース８２を維持する。
【００５９】
サーバ２５および６５は、たとえばインターナショナル・ビジネス・マシーンズ・コーポレイションのＡＳ／４００中性能コンピュータでよい。ただし、ここに記載したハードウェア実施形態は単に例示的なものであって、この代わりに多数の他のハードウェア・プラットフォームや構成を使用してもよいことを理解されたい。
【００６０】
さらに、本発明はこれまでおよびこれ以降も完全に機能するコンピュータ・システムの状況の下で説明するが、本発明の様々な実施形態が多様な形式のプログラム製品として配布可能であり、その配布を実際に実施するために使用される信号伝達媒体がどんなタイプのものであるかにかかわらず、本発明が等しく適用されることが、当業者には理解されよう。信号伝達媒体の例は、フロッピィ・ディスク、ハード・ディスク・ドライブ、ＣＤ−ＲＯＭなどの記録可能タイプの媒体や、デジタル通信リンクおよびアナログ通信リンクなどの伝送型の媒体を含んでいるが、それらだけに限定されるものではない。
【００６１】
インテリジェント・エージェントを使用した意思決定およびメッセージ偽装
第７図は、エージェント１００、エージェント・マネージャ３２、および別の当事者である交渉エージェント９５の間の対話を示した、例示的プログラム流れ図である。一般に交渉は、ブロック１３０に示すように、エージェント・マネージャ３２がエージェント１００をリモート・システムにディスパッチすることによって開始する。エージェント１００は、クライアントが完了したい所望の１つまたは複数のトランザクション（所望の数量、販売／購入される製品／サービスの説明などの情報を含む）と、このマネージャがエージェントに課した他の任意の制約（たとえば、処理する交渉対話数、オファー金額の最高または最低限度など）と共にディスパッチできることを理解されたい。代替方法としては、この情報の一部または全部を後でエージェント・マネージャ３２からエージェント１００に中継することができる。
【００６２】
次にブロック１３２で、エージェント１００はリモート・システムにディスパッチされた後で情報を収集してフィルタリングする。たとえば、エージェント１００は未解決のオファーについて掲示板または市場にポーリングするか、あるいは、別の当事者、たとえば別のコンピュータ・システム、別のエージェント、またはコンピュータ・システムを介して対話する個人を見つけて交渉の開始を試みようとすることができる。エージェント１００は、単に相手方当事者から入ってくるオファーを待っているだけでもよい。ブロック１３２では相手方当事者からおよびエージェント・マネージャからのメッセージを処理する機能も実行する。
【００６３】
次に、エージェント１００が受信した入力に応答して、ブロック１３４でエージェント１００による意思決定が行われる。このブロックで、エージェント１００の交渉戦略が実装され、それによってそのエージェントが受信した入力に基づいて別の当事者との交渉を進めるかどうか、およびどう進めるかを決定する。また、たとえば反復回数（下記で論じる）のような内部カウントの増分など、支持的な手続き型処理も完了される。
【００６４】
一般に、ブロック１３４に応答して、３つの動作のうちの１つが開始される。第一には、ブロック１３６に示すように、たとえば未解決のオファーの受入れまたは拒否を示す、オファーまたはカウンタオファーを発行する、交渉を打ち切る、相手方当事者に待機を要求するなど、エージェント１００が相手方当事者９５にメッセージを送信することを決定できる。相手方当事者はブロック１３８でこのメッセージを受信し、ブロック１４０で、通常はエージェント１００に応答メッセージを返信することでこれを処理する。エージェント１００の制御は、当事者９５からの応答メッセージを処理するためにブロック１３２に戻る。
【００６５】
第二には、ブロック１４１および１４２に示すように、エージェント１００がエージェント・マネージャ３２にメッセージを返信することを決定できる。本発明に従って、このメッセージはここで開示された方法によってブロック１４１で偽装され、その後ブロック１４２で送信される。次いでエージェント・マネージャ３２は、ブロック１４４でメッセージを受信して解釈し、ブロック１４６でそのメッセージを処理してから、ブロック１４８でエージェント１００に応答メッセージを偽装して返信する。この応答メッセージを受信すると、ブロック１５０はそのメッセージを解釈し、エージェント・マネージャ３２からの応答メッセージを処理するために、制御をブロック１３２に渡す。
【００６６】
第三には、ブロック１５２に示すように、たとえば、トランザクションが成功裏に完了した後、または交渉が不成功で打ち切った後に、エージェント１００がリモート・システムを去り、そのクライアント・システムに戻ることを決定できる。このエージェントの復帰はブロック１５４に示されている。
【００６７】
エージェント１００に関する図のプログラムの流れは、エージェント自体が引き受けることのできるオファー金額および反復回数（エージェントが行うオファー）に対して制限が設けられた、当事者と交渉する権限を有する半自律型エージェントの例である。ドメイン知識の程度が高いエージェントまたは低いエージェントでも、本発明に従って使用することができる。たとえば、完全自律型エージェントは、所望のトランザクション以外何の入力もなしに、交渉する権限を委ねられることができる。これに対して、完全依存型エージェントは、マネージャからの特定の命令に従ってオファーを発行しトランザクションを完了させること、およびその結果をマネージャに報告することによって、中継者として動作する以上の権限をほとんど持たないことがある。
【００６８】
このタイプの様々なエージェントについては、たとえば、参照により組み込まれた、「Apparatus and Method for Optimizing the Performance of Computer Tasks Using Multiple Intelligent Agents Having Varied Degrees of Domain Knowledge」と題する米国特許出願第８２６１０７号、および「Apparatus and Method for Optimizing the Performance of Computer Tasks Using Intelligent Agent with Multiple Program Modules Having Varied Degrees of Domain Knowledge」と題する米国特許出願第８２２９９３号で詳細に論じられている。これらの出願にも記載されているように、エージェント１００は、このエージェントが客観的基準（たとえばセキュリティ問題）に基づいて異なる状況で動作するために最適化されるように、程度の異なるドメイン知識を有するいくつかのエージェントの１つでもよく、あるいは程度の異なるドメイン知識を備えた複数のモジュールを有するものでもよい。
【００６９】
第７図のプログラムの流れを実装するためのエージェント１００の主な構成要素は、第８ａ図および第８ｂ図で、交渉モジュールまたは機構２００によって例示されている。機構またはモジュールは、所望のタスクまたは動作を実行するように構成された、機能、オブジェクト、またはプログラム・コードのブロックを含むと見なすことができる。
【００７０】
モジュール２００は、メッセージ・タイム・スタンプまたは他の伝送パラメータのようなセレクタを使用するように構成され、クライアントとエージェントとの間でやり取りされる様々な機密命令および機密要求を偽装するために１組のメッセージが使用される。この実施形態のクライアントおよびエージェントは、所与の命令または要求を表すために一度に１つのメッセージしか伝送せず、このメッセージのすべてではなくとも一部は、セレクタの値に応じて代替意味をもつ。ただし、可能なセレクタおよびメッセージを偽装する方法に関して、前述のどの修正例および変形例も代替例で使用することができることを理解されたい。
【００７１】
モジュール２００は、以下の入力を受信するように構成される。
0003905926.tif 000007
【００７２】
さらにモジュール２００は、以下の出力を生成するように構成される。
0003905926.tif 000008
【００７３】
２つの変数、反復回数とオファー増分（エージェントに対して許可された現行の交渉マージン）も、フィードバックの目的でモジュール２００内に維持されるが、一般に外部資源からアクセスされない。
さらにトレーニングの目的で、適切なトレーニング・レコードの生成時に、追加の情報が使用されることもあるが、この情報は直接モジュールには入力されない。こうした情報には、次のものが含まれる。
−  所望の価格および機能
−  エージェント自律価格範囲（エージェントが自律的に交渉する権限を与えられている価格範囲）
−  マネージャ承認価格範囲（エージェントがマネージャからの承認を必要とする価格範囲）
−  承認なしで許可される受入れ可能な反復回数
【００７４】
モジュール２００は、意思決定（交渉戦略を含む）、メッセージ偽装、およびその他の機能に関する決定論理が実装された、主ニューラル・ネットワーク２０２を含む。さらに第８ａ図に示すように、ニューラル・ネットワークは一般に−１から＋１、または０から＋１の範囲内の重みで動作するので、主ネットワーク２０２の入力側で、ネットワークへの入力を条件付けるためにいくつかのフィルタ２０４〜２１４が使用される。フィルタ２０４〜２１４は手続き型論理を使用して実装することもでき、あるいはセキュリティを増大させるために別のニューラル・ネットワークを使用して実装することもできる。
【００７５】
セレクタ復号フィルタ２０４は、この実施形態では、所望のセレクタ情報を受信して復号されたselと呼ばれるセレクタ信号を出力する、ニューラル・ネットワークとして実装される。この復号されたセレクタ信号は、下記に詳細に示すように、主ネットワーク２０２およびモジュール２００内のいくつかのフィルタに送られる。フィルタ２０４の構成は、セレクタとして使用される情報のタイプによって異なる。たとえば、タイム・スタンプまたはその他の伝送パラメータが使用される場合、こうした情報はフィルタ２０４に入力される。一方、非伝送パラメータが使用される場合、たとえばセレクタがｎ回の伝送毎に変更される場合、フィルタ２０４はｎ伝送サイクルごとに増分されるカウンタなどの論理要素として構成することができる。セレクタ値は収集中監視することができるので、欺瞞（deception）を助けるためにどれだけの量の余分な情報もすべて集めることができる。
【００７６】
その交渉の相手方当事者がオファーした最終および最新価格は、１対のレジスタ２２０および２２２に格納され、この実施形態ではニューラル・ネットワークを使用して実装されるフィルタ２０６および２０８によって条件付けられる。さらに、エージェントによって生成された最終オファーは、レジスタ２２４に格納され、やはりニューラル・ネットワークとして実装されたフィルタ２１０によって条件付けられる。フィルタ２０６〜２０８は復号されたセレクタ入力も受信する。レジスタ２２０および２２２は、相手方当事者から受信した価格に基づいて、情報収集ブロック１３２（第７図）によって維持される。レジスタ２２４は、価格オファー・ジェネレータ・フィルタ２２８（第８ｂ図、下記で説明）によって維持される。
【００７７】
さらに２０６〜２１０の各フィルタは、識別（ＩＤ）信号に加えて、値１、値２、値３と指定された３つのデータ信号を出力する。各フィルタごとのこのＩＤ信号出力は、ｎ個（ここでは３個）のデータ信号のうちのどれが、対応するレジスタ内容の条件付き表現を含むかを示すために、セレクタと同様に動作する。動作する他の２つのデータ信号は未使用で、モジュールの決定論理が逆コンパイルするのを抑止するように、おとりとして働く。このＩＤ信号は、復号セレクタ入力の機能でもよく、またそれから独立したものでもよい。代替方法では、これら条件付き信号の検出が問題でない場合は、単一値信号が２０６〜２１０の各フィルタと主ネットワーク２０２との間で接続される。
【００７８】
命令復号ネットワーク・フィルタ２１２は、クライアントからバイナリ・メッセージとそのメッセージを解釈するための復号されたセレクタ信号を受信する。単一命令信号は、フィルタ２１２から出力される。この命令信号は、復号されたセレクタ信号の値に応じて所与のメッセージに対して変化する。
【００７９】
主に買い手側エージェントに有用なオプションの基本要件ネットワーク・フィルタ２１４は、クライアントが所望する機能と比較すべき交渉中の商品／サービスの機能に関係する、１つまたは複数の製品特性を受信する。これに応答して、フィルタ２１４は、交渉中の製品がクライアントが実際に探しているものとどの程度一致するかを示す一致信号を出力する。
【００８０】
この製品特性は、トランザクションを完了するために満たさなければならない基本要件と、必ずしも必要ではないことがその製品をクライアントにとってより望ましいものにする追加の特徴とを含む。たとえばＶＣＲ（ビデオ・カセット・レコーダ）で、クライアントは４ヘッドのものを必要とするが、ハイファイ・ステレオ・モデルが入手可能であればもっと高額でもこれを購入したいと思うことがある。交渉中のハイファイ・モデルの一致信号は、ハイファイ機能のないものよりも強く重み付けすることができ、その結果、エージェントはこの信号に応答して、ハイファイ・モデルの方をより強力に交渉するように構成される。
【００８１】
２つの追加レジスタ２１６および２１８は、主ネットワーク２０２によって維持され、それに対する入力としてフィードバックされる。オファー増分レジスタ２１６は、エージェントへの命令を通じてエージェント・マネージャが修正したとおりに、エージェントに対する最新の交渉マージンを表す。この交渉マージンは、その額を上回る（買い手側エージェントの場合）かまたはその額を下回る（売り手側エージェントの場合）と、このトランザクションの所望の価格から外れたトランザクションを完了させることができる金額を、フィルタ済み形式で表す。
【００８２】
対話レジスタ２１８は、最新の交渉におけるサイクル数をフィルタ済み形式で維持するが、ここでの１サイクルは一般に、エージェントから別の当事者またはエージェント・マネージャへの１回の伝送を表す。エージェントは一般に、このエージェントがマネージャからの承認なしで交渉する許可を与えられているあるサイクル数でトレーニングされ、その数はエージェント・マネージャからの命令に応答して変更しまたは無効にすることができる。
【００８３】
主ネットワーク２０２は、フィードバックとして、エージェントの最終オファーおよび最新オファーにおける変更に関係する価格オファー・デルタ信号と、エージェントからクライアントに送信された最終メッセージに関係する送信メッセージ信号および非偽装メッセージ信号とを受信する。これらの信号はそれぞれネットワーク２０２から出力される（第８ｂ図）。
【００８４】
第８ｂ図に示すように、主ネットワーク２０２は、第８ａ図に示した入力に応答していくつかの他の信号を出力する。１組のフィルタ２２６〜２３４は、これらの出力信号をニューラル・ネットワーク・レベルから主ネットワーク外部でさらに有用なレベルに調整する。
【００８５】
この実施形態で手続き型論理として実装される交渉メッセージ・クリエータ・フィルタ１２２６は、ネットワーク２０２からの出力信号と価格オファー・ジェネレータ２２８からの任意の値を受信し、相手方当事者にメッセージを出力する。この出力メッセージは、受入れ、拒否、カウンタオファー、待機要求、交渉終了などいくつかの可能メッセージを含むことがある。このメッセージの形式は、相手方当事者が理解可能な所定のプロトコルに従う。
【００８６】
やはりこの実施形態では手続き型論理で実装される価格オファー・ジェネレータ・フィルタ２２８は、価格オファー・デルタ・パラメータとあらかじめ自分の最終オファー・ブロック２２４に格納された値とを受信し、そこから最新の価格オファーを出力し、それがレジスタ２２４に格納される。この価格オファー・デルタ・パラメータは、前述のように主ネットワーク２０２にもフィードバックされる。
【００８７】
最新オファーは、フィルタ２２６によって提供される相手方当事者へのメッセージと共に供給することができる。さらにこの最新オファーは、エージェント１００との交渉に従事したい他のエージェントによってポーリングできる公表オファーとして機能することもできる。この最新オファーは、他の当事者との交渉を請求するためにエージェント・ホスト上にセットアップされた市場または掲示板にも出力することができる。
【００８８】
この実施形態では手続き型論理で実装される反復調整フィルタ２３０は、それに応答してレジスタ２１８を増分する反復数増分信号を受信する。フィルタ２３０は、反復数増加許可命令に応答して、レジスタ２１８をリセットするリセット信号も受信する。
【００８９】
さらに、この実施形態で手続き型論理を使って実装される増分プロセッサ・フィルタ２３２は、増分変更信号および増分値信号を受信する。適切な増分変更信号に応答して、増分値信号によって示された増分値がフィルタ済み形式で出力され、レジスタ２１６に格納される。
【００９０】
この実施形態で手続き型論理として実装されるメッセージ・クリエータ・フィルタ２３４は、前述の方法でエージェントのクライアントに偽装メッセージを出力するのに使用される。フィルタ２３４は送信メッセージ信号ならびに偽装メッセージを送信するための信号を受信する。前述のように、非偽装メッセージは通常、「考えられる受入れ可能な代替策、受け入れるか」、「反復回数超過、継続を推奨」、「反復回数超過、撤回を推奨」、「即時撤回を推奨」、「交渉の動機を与えるための擬似伝送」、「オファー増加の承認を要求」など、いくつかのメッセージのうちの１つである。メッセージ送信信号は、主ネットワーク２０２によって出力される所与のメッセージのための偽装メッセージの伝送を開始する。
【００９１】
復号セレクタ信号selもブロック２３４への入力として受信され、フィルタ済みでないセレクタ値も、必要に応じてメッセージに入れるために受信される。相手方当事者によってオファーされレジスタ２２０および２２２に格納された最新価格または最終価格あるいはその両方などの他の値信号、ならびにフィルタ２１４に供給された製品特性も、マネージャへのメッセージに組み込むための入力として受信することがある。
【００９２】
これらの入力に応答して、フィルタ２３４はエージェント・マネージャにメッセージを出力する。このメッセージは、テキスト、バイナリ、またはエージェント・マネージャが認識可能な他のデータ形式でよい。たとえばこのメッセージが非偽装メッセージの１つを表すテキスト・メッセージであり、セレクタはその非偽装メッセージが表すのとは別のメッセージを示してもよい（たとえばあるセレクタでは、「即時撤回を推奨」をエージェント・マネージャが「考えられる受入れ可能な代替策、受け入れるか」の意味に解釈することがある）。
【００９３】
モジュール２００の図示の実施形態では、（たとえば、第７図のブロック１３４および１４１で示されるように）概念的には別々の意思決定およびメッセージ偽装モジュールまたは機構によって実行されると考えられるエージェント１００の意思決定およびメッセージ偽装機能が、どちらも主として主ネットワーク２０２内で実装されることを理解されたい。またこれらの機能は、代替方法では異なるニューラル・ネットワークに分離できることも理解されたい。さらに、主ネットワーク２０２は別々のニューラル・ネットワークの相互接続されたネットワークを介して実装することもできることを理解されたい。
【００９４】
その意思決定機能の１構成要素として、主ネットワーク２０２は、本発明に適合するいくつかの交渉戦略を実装する。たとえば、参照により組み込まれた「Intelligent Agent with Negotiation Capability and Method of Negotiation Therewith」と題する米国特許出願第８２１９３５号は、エージェントからの以前のオファーおよび現在のオファー、ならびに相手方当事者によってオファーされた以前の価格および現在の価格を利用した、交渉戦略を開示している。とりわけ、動的値決定、エージェントの行動をランダム化することによる交渉戦略の偽装、エージェントの行動を制約することによる非生産的な交渉の制限を含めて、主ネットワーク２０２が使用するのに適したいくつかの追加の交渉機能も、前述の出願で実装されている。他の交渉戦略および機能も、本発明に従って使用することができる。
【００９５】
多種多様な周知のニューラル・ネットワーク設計が、主ニューラル・ネットワーク２０２および本発明に適合する任意の例示的ネットワーク・フィルタに使用することができる。たとえば、好適なニューラル・ネットワーク設計の１つは、当技術分野で周知の後方伝搬ニューラル・ネットワークである。とりわけ放射状ベースの機能ネットワークを含む他のニューラル・ネットワーク設計も、代替方法で使用することができる。こうしたニューラル・ネットワークの開発およびトレーニングを実行するのにとりわけ適した開発環境が、インターナショナル・ビジネス・マシーンズ・コーポレーションによって市販されているＩＢＭニューラル・ネットワーク・ユーティリティである。
【００９６】
モジュール２００におけるネットワーク向けのトレーニングは、復号セレクタ信号によって提供される追加入力を除いて、ニューラル・ネットワーク用の監視トレーニング・プロセスを使って実行される。モジュール２００内の各ニューラル・ネットワーク／フィルタは、別々にトレーニングすることができるが、組み合わされたトレーニング・レコードを使ってモジュール２００全体を一度にトレーニングする場合、このトレーニング・プロセスはかなり簡略化される。
【００９７】
たとえば、モジュール２００をトレーニングするための好適プロセスの１つが、第９図のネットワーク・トレーニング・ルーチン３００によって例示されている。一般に、このプログラム流れは、３つのネストされたfor-nextループを含んでいる。ブロック３０２に示されている第１のfor-nextループは、セレクタの各可能値を通って循環する。各値ごとに、ブロック３０２に示されている第２のfor-nextループが、各トレーニング・レコードを通って循環する。
【００９８】
各トレーニング・レコードについて、ブロック３０６でレコードが取得される。好適なトレーニング・レコードは、前述の表２に示す一般形式を有する。
【００９９】
次に、ブロック３０８に示されている第３のfor-nextループは、このレコード内の各出力を通って循環し、ブロック３１０で、セレクタの現在値および所望の出力に基づく変換関数を使用して、トレーニング済み出力値を生成する。このトレーニング済み出力は、たとえば前述の表１に示したような変換表を使用して取り出され、その際に所望の出力を表すために１組のメッセージから偽装メッセージが選択される。
【０１００】
トレーニング・レコード用に好適な偽装（トレーニング済み）出力が生成されると、トレーニング・レコード、現行セレクタ、および偽装出力を使用してニューラル・ネットワークをトレーニングするために、ブロック３０８から、ブロック３１２に制御が移る。トレーニング・レコードを使用してモジュール２００をトレーニングした後、次のトレーニング・レコードを処理するために制御がブロック３０４に戻る。モジュール２００が、セレクタの各値について修正された各トレーニング・レコードでトレーニングされるまで、プログラム流れは続行する。
【０１０１】
ルーチン３００の主な利点は、各セレクタ値ごとに別々のトレーニング・レコードを生成する必要がなくなるために、トレーニングが簡略化されることであることを理解されたい。ただし代替方法では、このセレクタの各値ごとに、たとえば前述の表３〜５に例示した形式で、個々のトレーニング・レコードを生成することができる。
【０１０２】
エージェント１００のモジュール２００は、エージェントが購入または販売するすべてのタイプの製品／サービスなどを含めて、発生の可能性があるあらゆる状況に対処するように、エージェント・マネージャによってトレーニングすることができ、それによって、交渉が希望された場合にエージェント・マネージャは単にエージェントをディスパッチするだけとなることが予想される。代替方法では、このエージェント・マネージャが、エージェントをディスパッチする直前に、特定の所望トランザクションに関係する情報のみを使用してエージェントをトレーニングすることができる。この後者のプロセスは、トランザクションが希望されるときエージェントをディスパッチするのに余分な時間が必要となることがあるが、このエージェントに厳密に焦点をあてれば、エージェントのサイズおよび複雑さをかなり減少させることができる。
【０１０３】
エージェント１００の自律性動作のために、意思決定および偽装メッセージ以外に他の機能が必要になることがあり、交渉モジュール２００または別のプログラム・モジュールのどちらに組み込まれていても、こうした追加機能が手続き型論理またはニューラル・ネットワークあるいはその両方を介して実装できることを理解されたい。たとえば、初期化、保守、対話する他のエージェントや市場の発見などの機能も使用できる。ただし、これらの機能は、当技術分野で一般に周知のエージェントの基本動作により関係しているので、ここではこれ以上詳しくは論じない。
【０１０４】
他の修正例は、当業者には明らかであろう。したがって本発明は、添付の請求の範囲のみに存する。
【図面の簡単な説明】
【図１】第１図は、手続き的意思決定とメッセージの偽装を利用する、本発明の原理に適合するインテリジェント・エージェントの動作を示す流れ図である。
【図２】第２図は、ニューラル・ネットワークで実装される意思決定と手続き型メッセージの偽装を利用する、本発明の原理に適合する別のインテリジェント・エージェントの動作を示す流れ図である。
【図３】第３図は、ニューラル・ネットワークで実装される意思決定とメッセージの偽装を利用する、本発明の原理に適合する別のインテリジェント・エージェントの動作を示す流れ図である。
【図４】第４図は、本発明の図示した実施形態で使用するためのネットワーク接続されたコンピュータ・システム環境の構成図である。
【図５】第５図は、インテリジェント・エージェント間の対話を示す、第４図のネットワーク接続されたコンピュータ・システムの構成図である。
【図６】第６図は、クライアント・コンピュータ・システムおよびリモート・コンピュータ・システムにおける主要構成要素をさらに詳細に示す、第４図のネットワーク接続されたコンピュータ・システムの別の構成図である。
【図７】第７図は、第５図のエージェント・マネージャと、移動エージェントと、交渉中のエージェント（相手方当事者）との間の対話を示す流れ図である。
【図８】第８ａ図および第８ｂ図は、第５図のインテリジェント・エージェントの一実施形態における主要構成要素を示す構成図である。
【図９】第９図は、第８ａ図および第８ｂ図のインテリジェント・エージェントでニューラル・ネットワークのトレーニングに使用するための、ネットワーク・トレーニング・ルーチンのプログラムの流れを示す流れ図である。
【図１】
0003905926.tif 000009
【図２】
0003905926.tif 000010
【図３】
0003905926.tif 000011
【図４】
0003905926.tif 000012
【図５】
0003905926.tif 000013
【図６】
0003905926.tif 000014
【図７】
0003905926.tif 000015
【図８ａ】
0003905926.tif 000016
【図８ｂ】
0003905926.tif 000017
【図９】
0003905926.tif 000018