System and method for optimizing message flows between agents in distributed computations
First Claim
1. In a computer system, a method of performing distributed computations, the steps of the method performed by said computer system comprising:
- providing cooperating agents to perform each distributed computation, each agent having an associated set of events representing state transitions among a predefined set of states, each said event having a truth value that said agent changes while performing said distributed computation, each agent further having means for sending event value notifications to other ones of said agents when said agent changes said truth value of any said event;
storing in a computer memory associated with each agent a local knowledge database, said local knowledge database including data representing conditions for changing the truth value of local events, comprising events in said each agent and data representing conditions for changing the truth value of external events, comprising events in other ones of said agents, each of said conditions being represented in said local knowledge database as a boolean expression of the truth values of specified ones of said events in specified ones of said agents;
said local knowledge database further storing data representing truth values for said local and external events known to said each agent;
wherein said data representing said known truth values for at least a plurality of said local and external events is initialized to represent that said truth values are Undefined;
performing each distributed computation with said agents provided for that distributed computation, including;
whenever any one of said agents changes the truth value of any one of said local events, said one agent identifying from said conditions represented in said one agent'"'"'s associated local knowledge database (A) those of said external events whose condition depends on said one local event, (B) for each identified external event, other ones of said local events, if any, upon which said external events'"'"' conditions depend, and (C) the truth values of said other local events;
evaluating said condition for each said identified external event to generate a truth value for said evaluated condition; and
sending notifications of said one local event and said other local events from said one agent to said agent associated with each said identified external event only when the evaluated condition associated with each said identified external event has a truth value other than an Undefined truth value.
4 Assignments
0 Petitions
Accused Products
Abstract
A distributed computation system has a set of agents that perform each specified distributed computation. State transition events in each agent are conditioned or dependent on state transition events in other ones of the agents participating in the same distributed computation. The event dependencies between events in the agents are dynamically specified at run time from a set of predefined dependency types. The assigned conditions for resolving the truth value of these events are stored in local knowledge databases in each of the agents. Each agent stores in its local knowledge database a representation of the conditions for local events, which are state transition events in that agent, and a representation of the conditions for those external events that depend on notifications of local events in this agent and for those external events on which the local events are dependent. The local knowledge database also stores status information on the current truth value of the local and external events. Event notifications are sent by each agent when the truth value of a local event is changed. Whenever the truth value of a local event changes the agent inspects the local knowledge database to identify external events that depend on the local event. Notifications of events that are known, based on knowledge available to the agent, to be insufficient to resolve an external event'"'"'s truth value are delayed or withheld until all the local events required to resolve the external event'"'"'s truth value have been assigned final truth values.
205 Citations
16 Claims
-
1. In a computer system, a method of performing distributed computations, the steps of the method performed by said computer system comprising:
-
providing cooperating agents to perform each distributed computation, each agent having an associated set of events representing state transitions among a predefined set of states, each said event having a truth value that said agent changes while performing said distributed computation, each agent further having means for sending event value notifications to other ones of said agents when said agent changes said truth value of any said event; storing in a computer memory associated with each agent a local knowledge database, said local knowledge database including data representing conditions for changing the truth value of local events, comprising events in said each agent and data representing conditions for changing the truth value of external events, comprising events in other ones of said agents, each of said conditions being represented in said local knowledge database as a boolean expression of the truth values of specified ones of said events in specified ones of said agents;
said local knowledge database further storing data representing truth values for said local and external events known to said each agent;
wherein said data representing said known truth values for at least a plurality of said local and external events is initialized to represent that said truth values are Undefined;performing each distributed computation with said agents provided for that distributed computation, including; whenever any one of said agents changes the truth value of any one of said local events, said one agent identifying from said conditions represented in said one agent'"'"'s associated local knowledge database (A) those of said external events whose condition depends on said one local event, (B) for each identified external event, other ones of said local events, if any, upon which said external events'"'"' conditions depend, and (C) the truth values of said other local events; evaluating said condition for each said identified external event to generate a truth value for said evaluated condition; and sending notifications of said one local event and said other local events from said one agent to said agent associated with each said identified external event only when the evaluated condition associated with each said identified external event has a truth value other than an Undefined truth value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In computer system for performing distributed computations, comprising:
-
a set of cooperating computational agents for performing each distributed computation, each agent having an associated set of events representing state transitions among a predefined set of states, each said event having a truth value that said agent changes while performing said distributed computation, each agent further having means for sending event value notifications to other ones of said agents when said agent changes said truth value of any said event; at least one computer memory associated with each said agent;
said computer memory associated with each said agent storing a local knowledge database, said local knowledge database including data representing conditions for changing the truth value of local events, comprising events in said each agent and data representing conditions for changing the truth value of external events, comprising events in other ones of said agents, each of said conditions being represented in said local knowledge database as a boolean expression of the truth values of specified ones of said events in specified ones of said agents;
said local knowledge database further including data representing truth values for said local and external events known to said each agent;
wherein said data representing said known truth values for at least a plurality of said local and external events is initialized to represent that said truth values are Undefined; anda notification message processing module associated with each said agent, said notification message processing module including; condition identification means for identifying, whenever the truth value of any one of said local events for said each agent changes value, (A) those of said external events whose condition depends on said one local event, (B) for each identified external event, other ones of said local events, if any, upon which said external events'"'"' conditions depend, and (C) the truth values of said other local events; condition evaluating means for evaluating said condition for each said identified external event to generate a truth value for said evaluated condition; and message sending means for sending notifications of said one local event and said other local events from said one agent to said agent associated with each said identified external event only when the evaluated condition associated with each said identified external event has a truth value other than an Undefined truth value. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification