• No se han encontrado resultados

ℜn

+, given agents a1, . . . , an, ⊗ is defined as ⊗(v, v′) = hv1+ v1′, v2+ v2′, . . . , vn+ vn′i and ⊕ is defined

as ⊕(v, v′) =    v Σ1nv ≤ Σ1nv′ v′ otherwise (6.3) In addition, if there does not exist a variable which is owned by an agent α, in the signature of a constraint c, then the cost for α in the result of the constraint c must be zero.

Proof:

The ADCOP definition allows the cost for each agent to be recorded separately, by having one integer/real number for each agent, the idempotent semiring described also allows the cost for each agent to be recorded separately. The aggregation operator in ADCOP is sum, with the cost for each agent aggregated separately, this is reflected in the ⊗ operator. The comparison operator in ADCOP is a utilitarian minimization operator, this is reflected in the ⊕ operator.

The idempotent semiring always includes a cost for all agents, even if the agent is not involved in the constraint, thus it may represent constraints that can not be represented in an ADCOP. The restriction on the cost for an agent if the agent is not part of the constraint prevents this case. 

6.3

Alternate Modelling Approaches

There is a spectrum of different ways to structure an SDCOP. At one end, each agent has exclusive control over a set of variables and shares the constraints. On the other end, each agent has exclusive control over a set of constraints and shares the variables. Existing DCOP research has focused exclusively on on the former problem structure.

By allowing shared variables in a problem, some problems can be represented and solved more efficiently. On example of this is meeting scheduling problems [32]. It is common to give every agent who must attend the same meeting a different variable, representing the time of the meeting, with an equality constraint between them, this is the Private Events as Variables approach (PEAV). SDCOP permits the same problem to be modeled such that all agents who must attend a meeting have write privileges to a single variable representing the time of the meeting, as per the Events as Variables approach (EAV). This permits the problem to be written with less variables and less constraints, reducing the complexity of solving the problem. In addition, Grinshpoun et al. [21] point out that any consistent solution to a problem modeled using PEAV must be a local optimal. Which reduces the effectiveness of local search algorithms when applied to these problems.

Changing equality constraints to a single shared variable does change the semantics of the problem slightly. Equality constraints can be violated or relaxed, while the same constraints expressed as a shared variable can not be violated. Consider a problem where a group of people have chartered a small plane. If one of the people who wishes to board the plane turns up late, the plane still departs as planned and all the people who turned up on time can board. As such modelling the time people intend to board the plane as a shared variable doesn’t make sense, for it would not allow people to arrive early or late. On the other hand, deciding when the plane will depart should be a shared variable, as there is only one plane it can not depart at two different times.

The discussion between shared variables and shared constraints highlights the question of an agents responsibility. If it is a new system, then the responsibilities of each agent can be determined

6.3. Alternate Modelling Approaches 74

at design time. However if an existing system is being retrofitted with agent technology, then the responsibilities of each agent are often already defined. It is common practice to ensure a complete separation of concerns when designing agent systems, as this makes the system easier to design, increases the efficiency of the system and helps to protect each agents privacy. On the other hand, having overlap between agents increases the robustness of the system. For instance, if two agents have write privileges to each variable and at least two agents know each constraint, then the system has n+1 redundancy. Having redundancy within the system and an efficient way of identifying and restarting failed agents will result in a system that is robust against failures in the environment. Future work may be able to minimize the amount of duplicated effort between redundant agents, reducing the efficiency loss.

To highlight the intended use of a SDCOP, consider a consortium of three small distributors who operate from the same area. These distributors have formed a consortium to increase their overall efficiency. Efficiency is gained by sharing resources and reducing competition between their companies. Each distributor maintains their own truck, and there is another truck which is shared between the three distributors (note that the shared truck is an instance of a committee problem as described in the introduction). So long as two distributors wish to transport product to the same destination, the can use the shared truck and share the transport costs. For simplicity, we assume that all the distributors supply the same product, they all have the same amount of product to distribute, and the capacity of each truck is unlimited. Each distributor earns money by matching what they supply to a destination with the demand at that destination. This results in the following SDCOP:

• A = {agent-1, agent-2, agent-3}.

• X = {truck-1-d, truck-1-q, truck-2-d, truck-2-q, truck-3-q, truck-3-d, s-truck-d, s-truck-q1, s-truck-q2, s-truck-q3, demand-1, demand-2, demand-3, demand-4}.

• Ragent-1 = {truck-1-d, truck-1-q, s-truck-d, s-truck-q1, demand-1, demand-2, demand-3, demand-4}

• Ragent-2 = {truck-2-d, truck-2-q, s-truck-d, s-truck-q2, demand-1, demand-2, demand-3, demand-4}

• Ragent-3 = {truck-3-d, truck-3-q, s-truck-d, s-truck-q3, demand-1, demand-2, demand-3, demand-4}

• Wagent-1 = {truck-1-d, truck-1-q, s-truck-d, s-truck-q1} • Wagent-2 = {truck-2-d, truck-2-q, s-truck-d, s-truck-q2} • Wagent-1 = {truck-3-d, truck-3-q, s-truck-d, s-truck-q3}

• D = {0, 1, . . . , 100, destination-1, destination-2, destination-3, destination-4} • V = hℜ, max, +i

• C = {...}

As all the distributors must agree on the destination of the shared truck (s-truck-d), all of the distributors have write access to that variable. Note also the use of ’parameter’ variables (demand-1 to demand-4) which all agents can read, but not write to.