Upload
shlomo
View
43
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Computational Coalition Formation. Talal Rahwan (University of Southampton, UK). What is an Agent?. Hello… I am an intelligent entity…. I am situated in a an environment… I can perceive the environment I have goals… I have a list of available actions… - PowerPoint PPT Presentation
Citation preview
Computational Coalition Formation
Talal Rahwan(University of Southampton, UK)
What is an Agent?Hello…I am an intelligent entity….I am situated in a an environment…I can perceive the environmentI have goals…I have a list of available actions…I act autonomously to satisfy my goalsand…most importantly…I am social !!!
Hierarchies
Markets
Teams
Congregations
Societies
Federations
Holarchies
Matrix Organizations
Compounds
Coalitions
Organizations in Multi-Agent Systems
Data
Control
Markets
Holarchies
Hierarchies
Teams
Congregations
Societies
Federations
Matrix Organizations
Compounds
Coalitions
Organizations in Multi-Agent Systems
buyerseller
Hierarchies
Markets
Teams
Congregations
Societies
Federations
Holarchies
Matrix Organizations
Compounds
Coalitions
Organizations in Multi-Agent Systems
Coalition Formation
Coalitions in general are goal-directed and short-lived No coordination among members of different coalitions The organizational structure within each coalition is flat
Main characteristicis
Smart Energy Grids
Electronic-commerce
Disaster ManagementUN report said: "Efforts by the
United Nations in Haiti have lacked sufficient coordination“
Cooperation among buyers to obtain quantity discounts, and sellers to
maintain cartel pricing.
Intelligent appliances and energy storage devices coordinate for
optimal energy use
Applications of Coalition Formation
Distributed sensor networks: Coalitions of sensors can work together to track targets of interest [Dang et al. 2006]
Distributed vehicle routing: Coalitions of delivery companies can be formed to reduce the transportation costs by sharing deliveries [Sandholm and Lesser, 1997].
Information gathering: Several information servers can form coalitions to answer queries [Klusch and Shehory, 1996].
Applications of Coalition Formation
Game theory studies interactions between agents in situations known as games
Coalition Formation is studied in a field of Game theory, called Cooperative Game Theory
In cooperative game, agents benefit from cooperation, but is that all that makes a game a cooperative one?
Cooperative Game Theory
• Two agents committed a crime. • Court does not have enough evidence to convict them of the
crime, but can convict them of a minor offence (1 year in prison each)
• If one suspect confesses (acts as an informer), he walks free, and the other suspect gets 4 years
• If both confess, each gets 3 years• Agents have no way of communicating or making binding
agreements
Example: the Prisoner’s Dilemma
(-1,-1) (-4, 0)
(0, -4) (-3, -3)
quiet confess
quiet
confess
• Interpretation: the pair (x, y) at the intersection of row i and column j means that the row player gets x and the column player gets y
a2a1
Prisoners’ Dilemma: Matrix Representation
Prisoners’ Dilemma: the Rational Outcome
(-1,-1) (-4, 0)
(0, -4) (-3, -3)
• a1’s reasoning: – if a2 stays quiet,
I should confess– if a2 confesses,
I should confess, too• a2 reasons in the same way• Result: both confess and get 3 years in prison.• But: they could have got only 1 year each!• So why do not they cooperate?
Quite Confess
Quite
Confess
a1a2
• In Non-Cooperation games, players cannot make binding agreements
• But what if binding agreements are possible?
• Cooperative games model scenarios, where
– agents can benefit by cooperating
– binding agreements are possible
Cooperative vs. Non-Cooperative Games
Cooperative Games
Cooperative Game
Characteristic Function Game
(CFG)
Partition Function Game (PFG)Does a coalition
influence other co-existing coalitions?
Yes
No
Transferable Utility (TU)
Game
Non-Transferable Utility (NTU) Game
Can a player transfer part of its
utility to another?
Yes
No
Example: Writing Papers• n researchers working at n different universities can form
groups to write papers
• the composition of a group determines the quality of the paper they produce
• each author receives a payoff from his own university: – promotion– bonus– teaching load reduction
• TU or NTU?• CFG or PFG?
NTU (payoffs are non-transferable)CFG (a group does not influence others)
• n farmers can cooperate to grow fruit
• Each group grows apples or oranges
• a group of size k can grow f(k) tons of apples, or g(k) tons of oranges, where f() and g() are convex functions of k
Example: Growing Fruits
• The market price of a fruit drops monotonically as the number of tons available in the market increases
• TU or NTU?• CFG or PFG?
TU (money is transferable)PFG (a group can influence another)
• n children, each has some money:
• Supermarkets sells many ice-cream tubs, in different sizes:– Type 1 contains 500g, costs $7– Type 2 contains 750g, costs $9– Type 3 contains 1kg, costs $11
• children have utility for ice-cream, and don‘t care about money
• The payoff of a group is the maximum amount of ice-cream the members of the group can buy by pooling their money
Example: Buying Ice-cream
• TU or NTU?• CFG or PFG?
TU (ice-cream is transferable)CFG (many available tubs)
How is a Cooperative Game Played?
• Although agents work together, they can still be selfish
• We need to:– Partition the agents into coalitions– Divide the payoff of each coalition among its members
such that the outcome is stable (i.e., no player, or group of players, has an incentive to deviate)
• We may also want to ensure that the outcome is fair
• We will now see how to formalize these ideas
Cooperative Games
Transferable Utility (TU)
Game
Non-Transferable Utility (NTU) Game
Characteristic Function Game
(CFG)
Partition Function Game (PFG)
Focus of this
talk
Can a player transfer part of its
utility to another?
Does a coalition influence other
co-existing coalitions?
Cooperative Game
Yes
No
Yes
No
Transferable Utility Games Formalized• A transferable utility game is a pair (A, v), where:
– A ={a1, ..., an} is the set of players (or agents)– v: 2A → R is the characteristic function
• for each C A⊆ , v(C) is the value of C, i.e., the payoff that members of C can attain by working together
– usually it is assumed that• v(Ø) = 0• v(C) ≥ 0 for any C A⊆• v(C) ≤ v(D) for any C, D such that C D⊆
• The biggest possible coalition (the one containing all agents) is called the grand coalition
Ice-Cream Game: Characteristic Function
C: $6, M: $4, P: $3
w = 500g w = 750g w = 1000g
p = $7 p = $9 p = $11
• v(Ø) = v({C}) = v({M}) = v({P}) = 0• v({C, M}) = 750, v({C, P}) = 750, v({M, P}) = 500• v({C, M, P}) = 1000
Transferable Utility Games: Outcome
• CS =(C1, ..., Ck) is a coalition structure, i.e., a partition of A into coalitions:– C1 ... Ck = A,
– Ci Cj = Ø for i ≠ j
• x = (x1, ..., xn) is a payoff vector, which specifies the payoff of each agent:– xi ≥ 0 for all ai A
– xi = v(C) for all CCS
An outcome of a TU game G =(A, v) is a pair (CS, x), where:
• Definition: a game G = (A, v) is called superadditive iff: v(C U D) ≥ v(C)+v(D) for any two disjoint coalitions C and D
• Example: v(C) = |C|2: v(C U D) = (|C|+|D|)2 ≥ |C|2+|D|2 = v(C) + v(D)
• In superadditive games, any two coalitions can always merge without losing money; hence, we can assume that players form the grand coalition
Superadditive Games
Superadditive Games• In super-additive games, the grand coalition forms, so:
Superadditive Game
How should we divide the payoffs?
Which coalition structure is optimal?
Non-Superadditive Game
Grand coalition is always optimal !
How to divide payoff of grand coalition ?
What Is a Good Outcome?
• C: $4, M: $3, P: $3
• v(Ø) = v({C}) = v({M}) = v({P}) = 0• v({C, M}) = 500, v({C, P}) = 500, v({M, P}) = 0• v({C, M, P}) = 750• This is a superadditive game
– outcomes are payoff vectors• How should the players share the ice-cream?
– if they share as (200, 200, 350), Charlie and Marcie can get more ice-cream by buying a 500g tub on their own, and splitting it equally
– the outcome (200, 200, 350) is not stable!
• Definition: the core of a game is the set of all stable outcomes, i.e., outcomes that no coalition wants to deviate from. That is:
core(G) = {(CS, x) | xi ≥ v(C) for any C ⊆ A}
• Note: G is not necessarily superadditive
• Example:– v({a1, a2, a3}) = 9
– v({a4, a5}) = 4,
– but if v({a2, a4}) = 7 ?
– then (({a1, a2, a3}, {a4, a5}), (3, 3, 3, 3, 1)) is NOT in the core
Transferable Utility Games: Stability
a1a2
a3
a4
a5
Ice-Cream Game: Core
• C: $4, M: $3, P: $3
• v(Ø) = v({C}) = v({M}) = v({P}) = 0, v({C, M, P}) = 750• v({C, M}) = 500, v({C, P}) = 500, v({M, P}) = 0• (200, 200, 350) is not in the core:
– v({C, M}) > xC + xM
• (250, 250, 250) is in the core:– no subgroup of players can deviate so that each member of
the subgroup gets more• (750, 0, 0) is also in the core:
– Marcie and Pattie cannot get more on their own!
Games with Empty Core
• The core is a very attractive solution concept• However, some games have empty cores• G = (A, v)
– A = {a1, a2, a3}, v(C) = 1 if |C| > 1 and v(C) = 0 otherwise– consider an outcome (CS, x)– if CS = ({a1}, {a2}, {a3}), the grand coalition can deviate– if CS = ({a1, a2}, {a3}), either a1 or a2 gets less than 1,
so can deviate with a3
– same argument for CS = ({a1, a3}, {a2}) or CS = ({a2, a3}, {a1})– suppose CS = {a1, a2, a3}: xi > 0 for some ai, so x(A\{ai}) < 1, yet v(A\{ai}) = 1
e-Core
• If the core is empty, we may want to find approximately stable outcomes
• Need to relax the notion of the core: core: (CS, x): x(C) ≥ v(C) for all C N e-core: (CS, x): x(C) ≥ v(C) - e for all C N• Is usually defined for superadditive games only• Example: G = (A, v), A = {a1, a2, a3},
v(C) = 1 if |C| > 1, v(C) = 0 otherwise– 1/3-core is non-empty: (1/3, 1/3, 1/3) 1/3-core– e-core is empty for any e < 1/3: xi ≥ 1/3 for some i = 1, 2, 3, so x(A\{ai}) ≤ 2/3, v(A\{ai}) = 1
Given 3 agents, the set of agents is:
The possible coalitions are:
What is a Good Outcome ?
A = {a1, a2, a3}
a1 a1 a2
5 12
a2 a3 a1 a3 a2 a3 a1 a2 a3
55 12 12 24
A solution of a coalitional game: <? ? ?>
STABILITY
STABILITY THE CORE
Given 3 agents, the set of agents is:
The possible coalitions are:
Characteristic Function Games
N = {a1, a2, a3}
a1 a1 a2
5 12
a2 a3 a1 a3 a2 a3
a1 a2 a3
55 12 12
24
A solution of a coalitional game:
STABILITY THE CORE
<13 7 4><10 7 7>
Such division of payoffthat no sub-coalition wants to deviate
a2 : Wait!But it is not fair!
a1 : Great!I like this core
division!`
a3 : My contribution to every coalition in the game is the same as a1
Given 3 agents, the set of agents is:
The possible coalitions are:
Characteristic Function Games
N = {a1, a2, a3}
a1 a1 a2
5 12
a2 a3 a1 a3 a2 a3
a1 a2 a3
55 12 12
24
A solution of a coalitional game:
FAIRNESS SHAPLEY VALUE
<? ? ?>
A unique division of payoffThat meets fairness criteria (axioms)
<8 8 8>
Symmetry
Efficiency
Additivity
Null-player
Fairness criteria:
a1 a2 a3
a1 a2 a3
a2 a1 a3
a2 a3 a1
a3 a1 a2
a3 a2 a1
Shapley Value – Definition
a1 a1 a2
5 12
a2 a3 a1 a3 a2 a3
55 12 12
a1 a2 a3
a1 a2 a3
a2 a1 a3
a2 a3 a1
a3 a1 a2
a3 a2 a1
Shapley Value – Definition
a1 a1 a2
5 12
a2 a3 a1 a3 a2 a3
55 12 12
a2
a2 a3
a3
a3 a2
a1 a2 a3
a1 a2 a3
a1 a3
a1
a1 a2
a1
Shapley Value – DefinitionMC(a1)
+5
+5
+7
+12
+7
+12
48/6 = 8= Sh(a1)
0
0
a1 a1 a2
5 12
a2 a3 a1 a3 a2 a3
55 12 12
Coalition Formation Process
Value
Value
Value
Value
Payoff distribution
Coalition structure generation
optimal?
20+40+30= 90 70+30 = 100 40+40 = 80 20+65 = 85 95
Given 3 agents, the set of agents is: {a1,a2,a3}
The possible coalitions are:
{a1} {a2} {a3} {a1,a2} {a1,a3} {a2,a3} {a1,a2,a3}
The possible coalition structures:
{{a1},{a2},{a3}} {{a1,a2},{a3}} {{a2},{a1,a3}} {{a1},{a2,a3}} {{a1,a2,a3}}
Input: a value of every possible coalition
Output: a coalition structure in which the sum of values is maximized
20 40 30 70 40 65 95
Coalition Structure Generation(in Characteristic Function Games)
What is the optimal coalition structure ?
Exercise
value L4 value L3 value L2 value L1
140 {1,2,3,4} 90120100115
{1, 2, 3}{1, 2, 4}{1, 3, 4}{2, 3, 4}
506080557080
{1, 2}{1, 3}{1, 4}{2, 3}{2, 4}{3, 4}
30402545
{1}{2}{3}{4}
{ {1}, {2}, {3,4} }
Answer
value L6value L5
value L4value L3
value L2value L1
6217 1,2, 3, 4, 5, 6 480456574609482956505852
1, 2, 3, 4, 51, 2, 3, 4, 61, 2, 3, 5, 61, 2, 4, 5, 61, 3, 4, 5, 62, 3, 4, 5, 6
435543733770352839673647414238753905364538504099396733183576
1, 2, 3, 41, 2, 3, 51, 2, 3, 61, 2, 4, 51, 2, 4, 61, 2, 5, 61, 3, 4, 51, 3, 4, 61, 3, 5, 61, 4, 5, 62, 3, 4, 52, 3, 4, 62, 3, 5, 62, 4, 5, 63, 4, 5, 6
3352310233013119328726962950332424603134294329562950366126182906276930703135
1, 2, 31, 2, 41, 2, 5 1, 2, 61, 3, 41, 3, 51, 3, 61, 4, 51, 4, 61, 5, 62, 3, 42, 3, 52, 3, 62, 4, 52, 4, 62, 5, 63, 4, 53, 4, 63, 5, 64, 5, 6
175016701989166420232083227220821995180725292045168321151956
1, 21, 31, 41, 51, 62, 32, 42, 52, 63, 43, 53, 64, 54, 65, 6
826110810658909071024
123456
What is the optimal coalition structure ?
Exercise
The set of possible coalitions of agents: A = {1, 2, 3, 4, 5, 6}
CL6 CL5 CL4 CL3 CL2 CL1
1 ,2 ,3 ,4 ,5 ,6 1 , 2 , 3 , 4 , 51 , 2 , 3 , 4 , 61 , 2 , 3 , 5 , 61 , 2 , 4 , 5 , 61 , 3 , 4 , 5 , 62 , 3 , 4 , 5 , 6
1 , 2 , 3 , 41 , 2 , 3 , 51 , 2 , 3 , 61 , 2 , 4 , 51 , 2 , 4 , 61 , 2 , 5 , 61 , 3 , 4 , 51 , 3 , 4 , 61 , 3 , 5 , 61 , 4 , 5 , 62 , 3 , 4 , 52 , 3 , 4 , 62 , 3 , 5 , 62 , 4 , 5 , 63 , 4 , 5 , 6
1 , 2 , 31 , 2 , 4
1 , 2 , 5 1 , 2 , 61 , 3 , 41 , 3 , 51 , 3 , 61 , 4 , 51 , 4 , 61 , 5 , 62 , 3 , 42 , 3 , 52 , 3 , 62 , 4 , 52 , 4 , 62 , 5 , 63 , 4 , 53 , 4 , 63 , 5 , 64 , 5 , 6
1 , 21 , 31 , 41 , 51 , 62 , 32 , 42 , 52 , 63 , 43 , 53 , 64 , 54 , 65 , 6
123456
Example:
Limit the permitted sizes, and use greedy algorithms (Shehory & Kraus 1999, 1996, 1995)
Integer programming (IP)
The integer model:
s.t.
{1,2,4}
1234
1 0 1 0 1 0 1 0 1 0 1 0 1 0 11 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 1 0 0 0 0 1 1 1 1 0 0 01 1 1 1 1 1 1 1 0 0 0 0 0 0 0
Z =
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15
xi {1,0}
Z . x = (1,…,1)
{3}
max Sv(ci) . xii=1
2n
Order-based genetic algorithms (OBGA)(S. Sen & P. Dutta 2000)
GA consists of 3 steps: (1) Evalutation (2) Selection (3) Re-combination
9 3 2 8 6 1 7 5 4
4 2 1 7 6 8 9 5 3
Parents
9 3 2 8 6 1 9 5 3
4 2 1 7 6 8 7 5 4
Offspring7 1 5 6 2 3 4 8 9
9 3 2 8 6 1 7 5 46 1 2 3 4 8 7 5 9
3 8 9 1 5 4 2 6 7
4 2 1 7 6 8 9 5 36 9 3 1 7 8 4 5 2
Samples
{{3, 2}, {1}, {5, 3}}{{4, 2, 1}, {5, 4}}
1 7 6 3 8 4 2 5 9 2 5 7 1 4 3 9 8 6{ {2, 5}, {1, 4, 3} }{ {1}, {3}, {4, 2, 5} }
overlap
Dynamic Programming techniques IDP
Anytime with guarantees on solution quality IP
Slow
False True
O(nn)O(3n)
Fast
IPIDPAlgorithmProperty
Worst case performance
Return solutions anytime
Time to return optimal solution
[Rahwan & Jennings N. R., An Improved Dynamic Programming Algorithm for Coalition Structure Generation, AAMAS 2008].
[Rahwan et al., An Anytime Algorithm for Optimal Coalition Structure Generation, AAAI 2007, JAIR 2009].
Related Work
The Dynamic Programming (DP) AlgorithmMain observation: To find the optimal partition of a set of agents, it is sufficient to:• try the possible ways to split the set into two sets, and• For every half, find the optimal partition of that half.
f Best split Evaluations performed before setting f coalitionsize1
2
3
4
V({1,2})=50 f({1})+f({2})=70
V({1,3})=60 f({1})+f({3})=55
V({1,4})=80 f({1})+f({4})=75
V({2,3})=55 f({2})+f({3})=65
V({2,4})=70 f({2})+f({4})=85
V({3,4})=80 f({3})+f({4})=70
V({1,2,3})=90 f({1})+f({2,3})=95 f({2})+f({1,3})=100 f({3})+f({1,2})=95
V({1,2,4})=120 f({1})+f({2,4})=115 f({2})+f({1,4})=110 f({4})+f({1,2})=115
V({1,3,4})=100 f({1})+f({3,4})=110 f({3})+f({1,4})=105 f({4})+f({1,3})=105
V({2,3,4})=115 f({2})+f({3,4})=120 f({3})+f({2,4})=110 f({4})+f({2,3})=110
V({1,2,3,4})=140 f({1})+f({2,3,4})=150 f({2})+f({1,3,4})=150 f({3})+f({1,2,4})=145 f({4})+f({1,2,3})=145 f({1,2})+f({3,4})=150 f({1,3})+f({2,4})=145 f({1,4})+f({2,3})=145
{1} {2}
{1,3}
{1,4}
{2} {3}
{2} {4}
{3,4}
{2} {1,3}
{1,2,4}
{1} {3,4}
{2} {3,4}
{1,2} {3,4}
{1,2}
{1,3}
{1,4}
{2,3}
{2,4}
{3,4}
{1,2,3}
{1,2,4}
{1,3,4}
{2,3,4}
{1,2,3,4}
70
60
80
65
85
80
100
120
110
120
150
V({1})=30V({2})=40V({3})=25V({4})=45
{1}{2}{3}{4}
{1}{2}{3}{4}
30402545
{a1},{a2},{a3,a4} {a3},{a4},{a1,a2} {a1},{a3},{a2,a4} {a2},{a4},{a1,a3} {a1},{a4},{a2,a3} {a2},{a3},{a1,a4}
{a1},{a2},{a3},{a4}
{a1},{a2,a3,a4} {a1,a2},{a3,a4} {a2},{a1,a3,a4} {a1,a3},{a2,a4} {a3},{a1,a2,a4} {a1,a4},{a2,a3} {a4},{a1,a2,a3}
{a1,a2,a3,a4}
The Coalition Structure Graph
V = 150 V = 120 V = 125 V = 145 V = 130 V = 145
V = 140
V = 145 V = 130 V = 140 V = 130 V = 145 V = 135 V = 135
V = 140
{a1},{a3}
{a1,a3}
optimal
The Improved Dynamic Programming Algorithm (IDP)
We define a subset of edges E*
We prove that the edges in E* are sufficient to form a path to every node in the graph
We modify the original algorithm such that it only evaluates the movements through the edges in E*
{a1},{a2},{a3,a4} {a3},{a4},{a1,a2} {a1},{a3},{a2,a4} {a2},{a4},{a1,a3} {a1},{a4},{a2,a3} {a2},{a3},{a1,a4}
{a1},{a2},{a3},{a4}
{a1},{a2,a3,a4} {a1,a2},{a3,a4} {a2},{a1,a3,a4} {a1,a3},{a2,a4} {a3},{a1,a2,a4} {a1,a4},{a2,a3} {a4},{a1,a2,a3}
{a1,a2,a3,a4}
The Coalition Structure Graph
optimal
f Best split Evaluations performed before setting f Coalition
size
1
2
3
4
V({1,2})=90 f({1})+f({2})=80
V({1,3})=80 f({1})+f({3})=95
V({1,4})=65 f({1})+f({4})=85
V({2,3})=90 f({2})+f({3})=75
V({2,4})=70 f({2})+f({4})=65
V({3,4})=60 f({3})+f({4})=80
V({1,2,3})=125 f({1})+f({2,3})=140 f({2})+f({1,3})=125 f({3})+f({1,2})=135
V({1,2,4})=120 f({1})+f({2,4})=120 f({2})+f({1,4})=115 f({4})+f({1,2})=125
V({1,3,4})=135 f({1})+f({3,4})=130 f({3})+f({1,4})=130 f({4})+f({1,3})=130
V({2,3,4})=115 f({2})+f({3,4})=110 f({3})+f({2,4})=115 f({4})+f({2,3})=125
V({1,2,3,4})=160 f({1})+f({2,3,4})=175 f({2})+f({1,3,4})=160 f({3})+f({1,2,4})=170 f({4})+f({1,2,3})=175 f({1,2})+f({3,4})=170 f({1,3})+f({2,4})=165 f({1,4})+f({2,3})=175
{1,2}
{1} {3}
{1} {4}
{2,3}
{2,4}
{3} {4}
{1} {2,3}
{4} {1,2}
{1,3,4}
{4} {2,3}
{4} {1,2,3}
{1,2}
{1,3}
{1,4}
{2,3}
{2,4}
{3,4}
{1,2,3}
{1,2,4}
{1,3,4}
{2,3,4}
{1,2,3,4}
90
95
85
90
70
80
140
125
135
125
175
V({1,2,3})=125
V({1,2,4})=120
V({1,3,4})=135
V({2,3,4})=115
120
{1,2,4}
115
{2,3,4}
125{1,2
,3}
V({1,2,3,4})=160
f({1,2})+f({3,4})=170f({1,3})+f({2,4})=165 f({1,4})+f({2,3})=175
{1,4} {2,3}
V({1})=50V({2})=30V({3})=45V({4})=35
{1}{2}{3}{4}
{1}{2}{3}{4}
50304535
Evaluation of IDP
The total number of evaluations performed by IDP is only 38.7% of those performed by the original dynamic programming (DP) algorithm
How can we reduce the memory requirements ?
Question
f Best split Evaluations performed before setting f Coalition
size
1
2
3
4
V[{1}]=30V[{2}]=40V[{3}]=25V[{4}]=45
V[{1,2}]=50 f[{1}]+f[{2}]=70
V[{1,3}]=60 f[{1}]+f[{3}]=55
V[{1,4}]=80 f[{1}]+f[{4}]=75
V[{2,3}]=55 f[{2}]+f[{3}]=65
V[{2,4}]=70 f[{2}]+f[{4}]=85
V[{3,4}]=80 f[{3}]+f[{4}]=70
V[{1,2,3}]=90 f[{1}]+f[{2,3}]=95 f[{2}]+f[{1,3}]=100 f[{3}]+f[{1,2}]=95
V[{1,2,4}]=120 f[{1}]+f[{2,4}]=115 f[{2}]+f[{1,4}]=110 f[{4}]+f[{1,2}]=115
V[{1,3,4}]=100 f[{1}]+f[{3,4}]=110 f[{3}]+f[{1,4}]=105 f[{4}]+f[{1,3}]=105
V[{2,3,4}]=115 f[{2}]+f[{3,4}]=120 f[{3}]+f[{2,4}]=110 f[{4}]+f[{2,3}]=110
V[{1,2,3,4}]=140 f[{1}]+f[{2,3,4}]=150 f[{2}]+f[{1,3,4}]=150 f[{3}]+f[{1,2,4}]=145 f[{4}]+f[{1,2,3}]=145 f[{1,2}]+f[{3,4}]=150 f[{1,3}]+f[{2,4}]=145 f[{1,4}]+f[{2,3}]=145
{1}{2}{3}{4}
{1} {2}
{1,3}
{1,4}
{2} {3}
{2} {4}
{3,4}
{2} {1,3}
{1,2,4}
{1} {3,4}
{2} {3,4}
{1,2} {3,4}
30402545
70
60
80
65
85
80
100
120
110
120
150
Dynamic Programming techniques IDP
Anytime with guarantees on solution quality IP
Related Work
[Rahwan & Jennings N. R., An Improved Dynamic Programming Algorithm for Coalition Structure Generation, AAMAS 2008].
[Rahwan et al., An Anytime Algorithm for Optimal Coalition Structure Generation, AAAI 2007, JAIR 2009].
Basic Idea of IP
Search space
Sub-space
Sub-space
Sub-spaceSub-space
Sub-space
Sub-space
Lower bound = 150
Upper bound = 350
Lower bound = 100
Upper bound = 600
Lower bound = 250
Upper bound = 450
Lower bound = 200
Upper bound = 550
Lower bound = 200
Upper bound = 300Lower bound = 100
Upper bound = 250
400
500
Sub-space
Sub-space
Sub-spaceSub-space
Sub-space
Sub-space
Lower bound = 150
Upper bound = 350
Lower bound = 100
Upper bound = 600
Lower bound = 250
Upper bound = 450
Lower bound = 200
Upper bound = 550
Lower bound = 200
Upper bound = 300Lower bound = 100
Upper bound = 250
400
500
{{a1}, {a2}, {a3,a4}}
{{a1}, {a3}, {a2,a4}}
{{a1}, {a4}, {a2,a3}}
{{a2}, {a3}, {a1,a4}}
{{a2}, {a4}, {a1,a3}}
{{a3}, {a4}, {a1,a2}}
{{a1}, {a2}, {a3}, {a4}}
{{a1,a2}, {a3,a4}}
{{a1,a3}, {a2,a4}}
{{a1,a4}, {a2,a3}}
{{a1, a2, a3, a4}}
{{a1}, {a2,a3,a4}}
{{a2}, {a1,a3,a4}}
{{a3}, {a1,a2,a4}}
{{a4}, {a1,a2,a3}}
Basic Idea of IP
[4]
[1,3]
[2,2]
[1,1,2]
[1,1,1,1]
S
S
S
S
S
{a1}
{a2}
{a3}
{a4}
{a2,a3,a4}
{a1,a3,a4}
{a1,a2,a4}
{a1,a2,a3}
31
value L4 value L3 value L2 value L1
425 {1, 2, 3, 4} 200150300150
{1, 2, 3}{1, 2, 4}{1, 3, 4}{2, 3, 4}
175150100150200125
{1, 2}{1, 3}{1, 4}{2, 3}{2, 4}{3, 4}
1255075150
1234
Avg1 = 100
Avg2 = 150
Avg3 = 200
Avg4 = 425
Max1 = 150
Max2 = 200
Max3 = 300
Max4 = 425
{{a1}, {a2}, {a3,a4}}{{a1}, {a3}, {a2,a4}}{{a1}, {a4}, {a2,a3}}
{{a2}, {a3}, {a1,a4}}{{a2}, {a4}, {a1,a3}}{{a3}, {a4}, {a1,a2}}
{{a1}, {a2}, {a3}, {a4}}
{{a1,a2}, {a3,a4}}
{{a1,a3}, {a2,a4}}
{{a1,a4}, {a2,a3}}
{{a1, a2, a3, a4}}
{{a1}, {a2,a3,a4}}
{{a2}, {a1,a3,a4}}
{{a3}, {a1,a2,a4}}
{{a4}, {a1,a2,a3}}
[4]
[1,3][2,2]
[1,1,2] [1,1,1,1]
S
S
S
S
S
Avg=300 UB=400
Avg=300 UB=450
Avg=350 UB=500 Avg=400 UB=600
Avg=425 UB=425
How the Bounds are Computed
{ {a1}, {a1, a2, a3} }{ {a1}, {a1, a2, a4} }{ {a1}, {a1, a3, a4} }{ {a1}, {a2, a3, a4} }
{ {a2}, {a1, a2, a3} }{ {a2}, {a1, a2, a4} }{ {a2}, {a1, a3, a4} }{ {a2}, {a2, a3, a4} }
{ {a3}, {a1, a2, a3} }{ {a3}, {a1, a2, a4} }{ {a3}, {a1, a3, a4} }{ {a3}, {a2, a3, a4} }
{ {a4}, {a1, a2, a3} }{ {a4}, {a1, a2, a4} }{ {a4}, {a1, a3, a4} }{ {a4}, {a2, a3, a4} }
[8]
[1,1,1,1,1,3][1,1,1,1,2,2]
[1,1,1,1,1,1,2]
[1,1,1,1,1,1,1,1]
[1,1,1,1,4][1,1,1,2,3][1,1,2,2,2]
[1,1,1,5][1,1,2,4][1,1,3,3][1,2,2,3]
[1,1,6][1,2,5][1,3,4]
[2,2,2,2]
[2,2,4][2,3,3]
[1,7][2,6][3,5][4,4]
Avg=350 Avg=450 Avg=500 Avg=390 Avg=460
Avg=520 Avg=450 Avg=440 Avg=550 Avg=520
Avg=380 Avg=470 Avg=420
Avg=500 Avg=320
Avg=360
UB=400 UB=575 UB=480 UB=510
UB=600 UB=520 UB=480 UB=620 UB=540
UB=490 UB=525 UB=475
UB=650 UB=400
UB=390
UB=700
Lower bound = 550Upper bound = 700Searched initially
(contains one solution)
Searched while scanning the input
Searched initially (contains one solution)
Avg=520 Avg=450 Avg=440 Avg=550 Avg=520UB=600 UB=520 UB=480 UB=620 UB=540
Avg=350 Avg=450 Avg=500 Avg=390 Avg=460UB=400 UB=575 UB=480 UB=510UB=700
Avg=500
Avg=380 Avg=470 Avg=420
Avg=320
Avg=360
UB=650
UB=490 UB=525 UB=475
UB=400
UB=390
Search
Lower bound = 550Upper bound = 700Lower bound = 600
[1,1,1,1,1,3][1,1,1,1,2,2]
[1,1,1,1,1,1,2]
[1,1,1,1,1,1,1,1]
[1,1,1,1,4][1,1,1,2,3][1,1,2,2,2]
[1,1,1,5][1,1,2,4][1,1,3,3][1,2,2,3]
[1,1,6][1,2,5][1,3,4]
[2,2,2,2]
[2,2,4][2,3,3]
[8]
[1,7][2,6][3,5][4,4]Searched while scanning the input
Upper bound = 650
Search
Searched initially (contains one solution)
Searched initially (contains one solution)
? ??
UB* UB*UB*
V*
UB*
Why select sub-space with highest UB ?
UB*
value L5value L4
Value L3Value L2
Value L1165 1, 2, 3, 4,
5110140100150100
1, 2, 3, 41, 2, 3, 51, 2, 4, 51, 3, 4, 52, 3, 4, 5
70706060408070507575
1, 2, 31, 2, 41, 2, 5 1, 3, 41, 3, 51, 4, 52, 3, 42, 3, 52, 4, 53, 4, 5
40303040402030206535
1, 21, 31, 41, 52, 32, 42, 53, 43, 54, 5
2010303010
12345
Avg=165 UB=165
Avg=100 UB=145
Avg=90 UB=160
Avg=140 UB=180
Avg=95 UB=155 Avg=100 UB=150
Avg=105 UB=140
[5]
[2,3][1,4]
[1,2,2]
[1,1,1,2]
[1,1,3]
[1,1,1,1,1]
find the optimal solution using IP
Exercise:
Avg=20
Avg=35 Avg=65
Avg=120
Avg=165
Max=30
Max=65 Max=80
Max=150
Max=165
value L6value L5
value L4value L3
value L2value L1
6217 1,2, 3, 4, 5, 6 480456574609482956505852
1, 2, 3, 4, 51, 2, 3, 4, 61, 2, 3, 5, 61, 2, 4, 5, 61, 3, 4, 5, 62, 3, 4, 5, 6
435543733770352839673647414238753905364538504099396733183576
1, 2, 3, 41, 2, 3, 51, 2, 3, 61, 2, 4, 51, 2, 4, 61, 2, 5, 61, 3, 4, 51, 3, 4, 61, 3, 5, 61, 4, 5, 62, 3, 4, 52, 3, 4, 62, 3, 5, 62, 4, 5, 63, 4, 5, 6
3352310233013119328726962950332424603134294329562950366126182906276930703135
1, 2, 31, 2, 41, 2, 5 1, 2, 61, 3, 41, 3, 51, 3, 61, 4, 51, 4, 61, 5, 62, 3, 42, 3, 52, 3, 62, 4, 52, 4, 62, 5, 63, 4, 53, 4, 63, 5, 64, 5, 6
174216671989166420232083227220821995180725292045168321151956
1, 21, 31, 41, 51, 62, 32, 42, 52, 63, 43, 53, 64, 54, 65, 6
826110810658909071024
123456
Scanning the input
L=3 [ 1 , 1 , 4 ][ 1 , 2 , 3 ]
[ 6 ]
[ 2 , 2 , 2 ]
L=2 [ 1 , 5 ][ 2 , 4 ][ 3 , 3 ]
L=1
Dire
ctio
n of
cyc
le
C2
Overlap with C1
C3
Overlap with {C1, C2}
C3
Overlap with {C1, C2}
C3
Overlap with {C1, C2}
Overlap with C1
C1
C2
C1C1C1
C3
Searching a Sub-spaceExample: Search the following sub-space [x, y, z]
Coalitions of size x
Coalitions of size y
Coalitions of size z
6, 75, 75, 64, 74, 64, 53, 73, 63, 53, 42, 72, 62, 52, 42, 31, 71, 61, 51, 41, 31, 2
6, 75, 75, 64, 74, 64, 53, 73, 63, 53, 42, 72, 62, 52, 42, 31, 71, 61, 51, 41, 31, 2
5, 6, 74, 6, 74, 5, 74, 5, 63, 6, 73, 5, 73, 5, 63, 4, 73, 4, 63, 4, 52, 6, 72, 5, 72, 5, 62, 4, 72, 4, 62, 4, 52, 3, 72, 3, 62, 3, 52, 3, 41, 6, 71, 5, 71, 5, 61, 4, 71, 4, 61, 4, 51, 3, 71, 3, 61, 3, 51, 3, 41, 2, 71, 2, 61, 2, 51, 2, 51, 2, 41, 2, 3
Redundant
invalid
invalid
L2 L2
L3
C1
C2
C3
C1
C1 C2
C2
Dire
ctio
n of
cyc
leA = {1, 2, 3, 4, 5, 6, 7}Subspace = [2, 2, 3]
Example
Overlap with C1 Overlap with {C1,
C2}
Overlap with {C1, C2}
Overlap with {C1, C2}
Overlap with C1
Dire
ctio
n of
cyc
le
C1
C2
Searching a Sub-space
C3
Coalitions of size x
Coalitions of size y
Coalitions of size z
Value=100
C2
Maxz=200
Example: If value of best solution found so far is 500, then if:Applying Branch and Bound:
Value=100
Example: Search the following sub-space [x, y, z]
then prune and go back one step.
M2M2
A2 = A1 / C1 = { , , , , }
A3=A2 / C2 = { , , }
4, 5
3, 53, 4
2, 52, 42, 3
1, 51, 41, 31, 2
A1 = A = { , , , , , , }
6, 7
5, 75, 6
4, 74, 64, 5
3, 73, 63, 53, 4
2, 72, 62, 52, 42, 3
1, 71, 61, 51, 41, 31, 2
M1
1, 2, 3M3
b c d e g
c d eb e g
b c d e f
d e f
A = {a,b,c,d,e,f,g} G = {2, 2, 3}
Searching a subset
M2C1={a,f} C2={b,g}C2={c,d}
C1={a,g}
C2={b,c}
a b c d e f gD
irect
ion
of c
ycle
CPLEX
Dynamic programming2.5 days
4 hours
25 min
379 sec
Evaluation(Time to Terminate)
IDP-IP
[1,1,1,5][1,1,2,4][1,1,3,3][1,2,2,3]
Level8
Level6
Level5
Level4
Level3
Level7
[1,1,1,1,1,3][1,1,1,1,2,2]
[1,1,1,1,1,1,2]
[1,1,1,1,1,1,1,1]
[1,1,1,1,4][1,1,1,2,3]
[1,1,6][1,2,5][1,3,4][2,2,4][2,3,3]
Level1
Level2
[8]
[1,7][2,6][3,5][4,4]
[1,1,2,2,2]
[2,2,2,2]2
1,1
The Integer-Partition Graph
{{a1}, {a2,a3,a4}}
{{a2}, {a1,a3,a4}}
{{a3}, {a1,a2,a4}}
{{a4}, {a1,a2,a3}}
{{a1}, {a2,a3,a4}}
{{a1}, {a2}, {a3,a4}} , {{a1}, {a3}, {a2,a4}}
{{a1}, {a4}, {a2,a3}} , {{a2}, {a3}, {a1,a4}}
{{a2}, {a4}, {a1,a3}} , {{a3}, {a4}, {a1,a2}}
{{a1}, {a2}, {a3}, {a4}}
{{a1,a2}, {a3,a4}}
{{a1,a3}, {a2,a4}}
{{a1,a4}, {a2,a3}}
{{a1, a2, a3, a4}}Integer Partition Graph
Coalition Structure Graph
[4]
[1,3]
[1,1,1,1]
{{a1}, {a2}, {a3,a4}}Level4
Level3
Level2
Level1
{1},{2,3,4}
{1},{2},{3,4}
[2,2]
[1,1,2]
{a1},{a2},{a3,a4} {a3},{a4},{a1,a2} {a1},{a3},{a2,a4} {a2},{a4},{a1,a3} {a1},{a4},{a2,a3} {a2},{a3},{a1,a4}
{a1},{a2},{a3},{a4}
{a1},{a2,a3,a4} {a1,a2},{a3,a4} {a2},{a1,a3,a4} {a1,a3},{a2,a4} {a3},{a1,a2,a4} {a1,a4},{a2,a3} {a4},{a1,a2,a3}
{a1,a2,a3,a4}
{a1},{a2,a3,a4}
{a1},{a2},{a3,a4}
IDP-IP
Level8
Level6
Level5
Level4
Level3
Level7
Level1
Level2
IDP
IDP IDP IDPIDP
IDPIDP
IDPIDPIDP
IDP IDP
IDP
IDP
IDP
IDP
IDP
IDP
IDP IDPIDP
IDP [1,1,1,5]
[1,1,6][1,2,5]
[8]
[1,7][2,6][3,5][4,4]
[1,1,3,3][1,2,2,3]
[1,1,1,1,2,2]
[1,1,1,1,1,1,2]
[1,1,1,2,3][1,1,2,2,2]
[1,1,2,4]
[1,3,4]
[2,2,2,2]
[2,2,4][2,3,3]
[1,1,1,1,1,1,1,1]
[1,1,1,1,1,3]
[1,1,1,1,4]
The Integer-Partition Graph
IDP-IP
IDP
IDP IDP IDPIDP
IDPIDP
IDP[1,1,1,5]
[1,1,6][1,2,5]
[8]
[1,7][2,6][3,5][4,4]
No edge!
No edge! No edge! No edge!
Level8
Level6
Level5
Level4
Level3
Level7
Level1
Level2
IDP IDP
IDPIDP
IDP IDP
IDP
IDP
IP IPIP
IP
IDP
IDP
[1,1,1,1,1,1,1,1]
[1,1,1,1,1,1,2]
[1,1,1,1,2,2]
[1,1,2,2,2]
[2,2,2,2]
[1,1,1,1,1,3]
[1,1,1,1,4][1,1,1,2,3]
[1,1,2,4][1,1,3,3][1,2,2,3]
[2,3,3] [2,2,4] [1,3,4]
The Integer-Partition Graph
?
? ? ?
Which one should we search first ?
[1,1,5]
[1,6][2,5]
[7]
[1,3,3]
[1,1,1,1,1,2]
[1,1,2,3]
[1,2,4]
[3,4]
[1,1,1,1,1,1,1]
[1,1,1,4]
ExerciseBy setting m=2, which
subspaces are searched by IP, and in which
order ?
1
21
105 35
210105
70 105
35 21
1
7
21
35
[1,1,1,2,2] [1,1,1,1,3]
[1,2,2,2]
size ofsubspace
[1,1,5]
[1,6][2,5]
[7]
[1,3,3]
[1,1,1,1,1,2]
[1,1,2,3][1,2,2,2]
[1,2,4]
[3,4]
[1,1,1,1,1,1,1]
delete
ExerciseBy setting m=2, which
subspaces are searched by IP, and in which
order ?
[1,1,1,4]
[1,1,1,2,2] [1,1,1,1,3]
1
21
105 35
210105
70 105
35 21
1
7
21
35
IDP
IDPIDP
IDP
IDP
IDP
IDP
IDP
IDP
IDP
IP IP
IPIP
ExerciseBy setting m=2, which
subspaces are searched by IP, and in which
order ?
[1,1,5]
[1,6][2,5]
[7]
[1,3,3]
[1,1,1,1,1,2]
[1,1,2,3]
[1,2,4]
[3,4]
[1,1,1,1,1,1,1]
[1,1,1,4]
[1,1,1,2,2] [1,1,1,1,3]
[1,2,2,2]
1
21
105 35
210105
70 105
35 21
1
7
21
35
IDP
IDPIDP
IDP
IDP
IDP
IDP
IDP
IDP
IDP
IP IP
IPIP
ExerciseBy setting m=2, which
subspaces are searched by IP, and in which
order ?
[1,1,5]
[1,6][2,5]
[7]
[1,3,3]
[1,1,1,1,1,2]
[1,1,2,3]
[1,2,4]
[3,4]
[1,1,1,1,1,1,1]
[1,1,1,4]
[1,1,1,2,2] [1,1,1,1,3]
[1,2,2,2]
1
21
105 35
210105
70 105
35 21
1
7
21
35
105+105+21+1 210+35
105+3570
105
10570
210
= 1 = 1.33
= 1.16= 2.21
Coalition Structure Generation in Multi-Agent Systems with Positive and Negative Externalities
Given 3 agents: the set of agents is:
{a1,a2,a3}
The possible coalitions are:
{a1} {a2} {a3} {a1,a2} {a1,a3} {a2,a3} {a1,a2,a3}
The possible coalition structures:
{{a1},{a2},{a3}} {{a1,a2},{a3}} {{a2},{a1,a3}} {{a1},{a2,a3}} {{a1,a2,a3}}
Assumption: The value of a coalition structure is the sum of the values of the coalitions within that structure
20 40 30 70 40 65 95
20+40+30= 90 70+30 = 100 40+40 = 80 20+65 = 85 95
a value for every coalitionINPUT
an optimal coalition structureOUTPUT
CSG in Characteristic Function Games
35 201520
Given 3 agents: the set of agents is:
{a1,a2,a3}
The possible coalitions are:
{a1} {a2} {a3} {a1,a2} {a1,a3} {a2,a3} {a1,a2,a3}
The possible coalition structures:
{{a1},{a2},{a3}} {{a1,a2},{a3}} {{a2},{a1,a3}} {{a1},{a2,a3}} {{a1,a2,a3}}
Assumption: The value of a coalition structure is the sum of the values of the coalitions within that structure
+40+30= 70+30 = 100 40+40 = 80 +65 = 95
20 40 30 70 40 65 95
CSG in Characteristic Function GamesPartition
a value for every coalitionINPUT
an optimal coalition structureOUTPUT
10590 8580
-
+
C1 C2 C3
C2 U C3C1
CS
CS'
C1 C2 C3
C2 U C3C1
+
-
CS
CS'
Super-additive values, negative externalities
Sub-additive values, positive externalities
externality
Michalak et. al. [ECAI-2008] focused on the following classes:
The merging of two coalitions may affect the values ofother coalitions in the structure!
Games with externalities are known as Partition Function Games
Computing Upper & Lower BoundsWe need to compute upper and lower bounds on the value of any combination of disjoint coalitions
C2C1
The maximum possible value of this combination is 500, and the minimum possible value is 100
Example:
>>< <
P F+P F :
Searchspace
the best coalition structure in this
from the optimalset is within a bound m
coalition structure
We need to identify the minimum set of coalition structures that must be searched in order to establish a worst-case guarantee
We need to develop a novel algorithm for improving the worst-case bound with further search
Establishing Worst-Case Guarantees
Y is a set of subsets of X
Y'
Main Theorem
X x1x2
x3
x4x5
MUST BE Y/Y’
Yx1
x2
x3
x5x4
x1 x4x2
x3 x5x1
x2
x3x4 x5
x5x1x3
x4
x5
x1
x1x1
x1
The bound equals the size of the biggest subset
Every xi X may have different values in different subsets
Let Y' be a subset of Y such that every element in X appears with its maximum value in Y'then the value of the best subset in Y' is within a bound m from the optimal, where m is the size of the biggest subset in Y
X is a set of elements
if every xi X appears with its maximum value
20
70
30
50
In the next few slides, we will be using the following graphical representation:
{ {a1,a2}, {a3}, {a4} }
{ {a1,a3}, {a2}, {a4} }
{ {a1,a4}, {a2}, {a3} }
{ {a2,a3}, {a1}, {a4} }
{ {a2,a4}, {a1}, {a3} }
{ {a3,a4}, {a1}, {a2} }
2,1,11,1
{{a1}, {a2}}
{{a1}, {a3}}
{{a1}, {a4}}
{{a2}, {a3}}
{{a2}, {a4}}
{{a3}, {a4}}
2
{a1, a2}
{a1,a3}
{a1,a4}
{a2,a3}
{a2,a4}
{a3,a4}
12
34
Set of coalitions
4
1,3 2,22,1,1
1,1,1,1
Set of coalition structures
i,j,k,...
integers represent coalition sizes
[5,2,1,1,1] [4,3,1,1,1] [4,2,2,1,1] [3,3,2,1,1] [3,2,2,2,1] [2,2,2,2,2]
[5,1,1,1,1,1] [4,2,1,1,1,1] [3,3,1,1,1,1] [3,2,2,1,1,1] [2,2,2,2,1,1]
[4,1,1,1,1,1,1] [3,2,1,1,1,1,1] [2,2,2,1,1,1,1]
[3,1,1,1,1,1,1,1] [2,2,1,1,1,1,1,1] [2,1,1,1,1,1,1,1,1]
[1,1,1,1,1,1,1,1,1,1]
Y[7,1,1,1] [6,2,1,1] [5,3,1,1] [5,2,2,1] [4,4,1,1]
[4,3,2,1] [4,2,2,2] [3,3,3,1] [3,3,2,2]
[7,2,1] [6,3,1] [5,4,1] [5,3,2] [4,4,2] [4,3,3]
[10]
[2][1] [7]
[3] [4][5]
[9]
[6]
[10]
[8]
X[1,1]
[1,1,1,1]
[2,2]
[9,1] [8,2] [7,3] [6,4] [5,5]
Y'
[6,1,1,1,1]
[6,2,2][8,1,1]
?
Establishing the Worst-Case Bound in this set, every
coalition appears with its maximum value
the bound equals the size of the biggest subset
[3,1,1,1,1,1,1,1
[3,2,1,1,1,1,1]
[3,2,2,1,1,1]
[5,2,1,1,1] [4,3,1,1,1] [3,3,2,1,1] [3,2,2,2,1]
[3,3,3,1][4,3,2,1]
?
Y
X
Y'
Solve Using Integer Programming
Constrained Coalition Formation
88
89
In conventional models:• every possible subset of agents is a potential coalition,• every possible partition of the set of agents is a potential
coalition structure.
Many times we have constraints that enforce or prohibit the co-existence of certain agents in a coalition.
To date, very limited work on constraints, e.g., only permitting certain sizes.
Constrained Coalition Formation (CCF)
90
Let P(A) be the set of all coalition structures. A constrained coalition formation (CCF) game is a tuple G = ⟨A,CS, v⟩ where:
• A = {a1, …, an} is the set of agents
• CS ⊆ P(A) is the set of coalition structures that are feasible
• v : (⋃CS ∈ CS ⋃C ∈ CS {C}) → ℝ assigns a value to every coalition that appears in some feasible coalition structure
Feasibility is defined for coalition structures rather than for coalitions:
• Example: a coalition structure is feasible only if it contains coalitions of equal sizes.
• In this example, {{a1},{a2},{a3,a4}} is not feasible, even though each of its coalitions may be a part of some feasible coalition structure
General Model
A CCF game G = ⟨A,CS, v⟩ is locally constrained if there exists a set of coalitions, C ⊆ 2A, such that CS = {CS ∈ P(A) : CS ⊆ C }.
• We will refer to the coalitions in C as feasible coalitions.
Constraints are represented using propositional logic:
• Boolean variables correspond to agents: BA = { bi : ai ∈ A }
• Let d be a propositional formula over BA constructed using the classical connectives ( ⋀, ⋁, ¬, →, …).
• Coalition C satisfies d iff d is satisfied under the truth assignment that sets all bi : i ∈ C to true, and all bi : i ∉ C to false.
• Example: C = {a1,a4,a5,a7} satisfies d = b4 ⋀ b5
Proposition: The class of propositionally definable CCF games is equal to the class of locally constrained CCF games.
Locally Constrained Games
91
A basic CCF game is a tuple G = ⟨A, P, N, S, v⟩ where:
• P is a set of subsets of A (Positive constraints)• N is a set of subsets of A (Negative constraints)• S ⊆ ℕ (permitted sizes)
A coalition C is feasible if:
• P ⊆ C for some P ∈ P• N ⊈ C for all N ∈ N• |C| ∈ S
We will denote the feasible coalitions as c (A, P, N, S)
92
Basic CCF Model
93
Basic CCF Model
94
PNS12
3
94
Basic CCF Model
General CCF games Constraints are placed on Coalition Structures
Local CCF gamesConstraints are placed on Coalitions
• Constraint can be expressed using propositional logic
Basic CCF gamesConstraints are placed on Coalitions In the form of:
• Size constraints• Positive constraints• Negative constraints
95
96
size = 6 size = 5 size = 4 size = 3 size = 2 size=11, 2, 3, 4, 5, 6 1, 2, 3, 4, 5
1, 2, 3, 4, 61, 2, 3, 5, 61, 2, 4, 5, 61, 3, 4, 5, 62, 3, 4, 5, 6
1, 2, 3, 41, 2, 3, 51, 2, 3, 61, 2, 4, 51, 2, 4, 61, 2, 5, 61, 3, 4, 51, 3, 4, 61, 3, 5, 61, 4, 5, 62, 3, 4, 52, 3, 4, 62, 3, 5, 62, 4, 5, 63, 4, 5, 6
1, 2, 31, 2, 41, 2, 5 1, 2, 61, 3, 41, 3, 51, 3, 61, 4, 51, 4, 61, 5, 62, 3, 42, 3, 52, 3, 62, 4, 52, 4, 62, 5, 63, 4, 53, 4, 63, 5, 64, 5, 6
1, 21, 31, 41, 51, 62, 32, 42, 52, 63, 43, 53, 64, 54, 65, 6
123456
P = {Ø} , N = { {1,2,3,4}, {1,2,4,5}, {5,6} }
Given a set of constraints, how do we generate the feasible coalitions?
How to Generate Feasible Coalitions?
f ( {12345678} , {158},{257},{578} , {123}{235} , Ø , Ø )
P
97
A N N∗P∗
f ( {2345678} , {58}{257}{578} , {23}{235} , {1} , Ø )
contain
agent 1do not
contain agent 1
f ( {2345678} , {257}{578} , {235} , Ø , {1} )
Divide & Conquer
Divide & Conquer
99
Repeat the division recursively until we reach:
• an impossible case, where:P = Ø or N ∋ Ø
• or a base case, where:|P| = 1 and ∩N = Ø and |{N ∈ N : |N|>1 }| < 1
f ( {12345678} , {158}{257}{578} , {123}{235} , Ø , Ø )
contains 1 does not
contain 1
f ( A, P, N, P*, N*) =
100
Divide & Conquer
f ( {234678} , Ø , {23} , {1} , {5} )f ( {234678} , {8}{27} , {23} , {15} , Ø )
f ( {34678} , {8} , Ø , {15} , {2} )
P* = {{158}} , N* = {{2}}
f ( {34678} , {8}{7} , {3} , {152} , Ø )
f ( {467} , {7} , Ø , {152} , {8} )
P* = {{1527}} , N* = {{8}} P* = {{1528}} , N* = Ø
does not contain 8contains 8
does not contain 2
does not contain 5
contains 2
contains
5
Impossible case
f ( {467} , Ø{7} , Ø , {1528} , Ø )
f ( {345678} , {578} , Ø , Ø , {1}{2} )f ( {345678} , {57}{578} , {35} , {2} , {1} )
P* = {{578}} , N* = {{1}{2}}
P* = {{257}} , N* = {{1}{3}}
f ( {45678} , {57}, Ø , {2} , {1}{3} )f ( {45678} , {57} , {5} , {23} , {1} )
does not contain 2contains
2
does not contain 3contains 3
Impossible case
f ( {2345678} , {58}{257}{578} , {23}{235} , {1} , Ø )
f ( {2345678} , {257}{578} , {235} , Ø , {1} )
101
P* = {{1,2}} , N* = { {3,4,5},{6},{7}} , S* = {1,2}
How to Generate the coalitions that correspond to a base case?
The single constraint
in P*X C {3,4,5} : |C| ∈ S* X C {8,9,10} : |C| ∈ S*
Example: base case give 10 agents
{1,2} Ø{3}{4}{5}
{3,4}{3,5}{4,5}
Ø{8}{9}
{10}{8,9}
{8,10}{9,10}
102
Back to our Example
size = 6 size = 5 size = 4 size = 3 size = 2 size=11, 2, 3, 4, 5, 6 1, 2, 3, 4, 5
1, 2, 3, 4, 61, 2, 3, 5, 61, 2, 4, 5, 61, 3, 4, 5, 62, 3, 4, 5, 6
1, 2, 3, 41, 2, 3, 51, 2, 3, 61, 2, 4, 51, 2, 4, 61, 2, 5, 61, 3, 4, 51, 3, 4, 61, 3, 5, 61, 4, 5, 62, 3, 4, 52, 3, 4, 62, 3, 5, 62, 4, 5, 63, 4, 5, 6
1, 2, 31, 2, 41, 2, 5 1, 2, 61, 3, 41, 3, 51, 3, 61, 4, 51, 4, 61, 5, 62, 3, 42, 3, 52, 3, 62, 4, 52, 4, 62, 5, 63, 4, 53, 4, 63, 5, 64, 5, 6
1, 21, 31, 41, 51, 62, 32, 42, 52, 63, 43, 53, 64, 54, 65, 6
123456
P = {Ø} , N = { {1,2,3,4}, {1,2,4,5}, {5,6} }
We wanted to generate the feasible coalitions using the base cases
P1* = {Ø} N1* = {{1},{5,6}}
P2* = {{1}} N2* = {{2},{5,6}}
P3* = {{1,2}} N3* = {{3},{4},{5,6}}
P4* = {{1,2,4}} N4* = {{3},{5}}
P5* = {{1,2,3}} N5* = {{4},{5,6}}
size = 6 size = 5 size = 4 size = 3 size = 2 size=11, 2, 3, 4, 5, 6 1, 2, 3, 4, 5
1, 2, 3, 4, 61, 2, 3, 5, 61, 2, 4, 5, 61, 3, 4, 5, 62, 3, 4, 5, 6
1, 2, 3, 41, 2, 3, 51, 2, 3, 61, 2, 4, 51, 2, 4, 61, 2, 5, 61, 3, 4, 51, 3, 4, 61, 3, 5, 61, 4, 5, 62, 3, 4, 52, 3, 4, 62, 3, 5, 62, 4, 5, 63, 4, 5, 6
1, 2, 31, 2, 41, 2, 5 1, 2, 61, 3, 41, 3, 51, 3, 61, 4, 51, 4, 61, 5, 62, 3, 42, 3, 52, 3, 62, 4, 52, 4, 62, 5, 63, 4, 53, 4, 63, 5, 64, 5, 6
1, 21, 31, 41, 51, 62, 32, 42, 52, 63, 43, 53, 64, 54, 65, 6
123456
103
P = {Ø} , N = { {1,2,3,4}, {1,2,4,5}, {5,6} }
Back to our Example
How to search the feasible coalition structures?
This can be done using the base cases as follows:
104
Searching Feasible Coalition Structures
(P1*,N1*)
(P2*,N2*)
(P3*,N3*)
(P4*,N4*)
(P6*,N6*)
(P7*,N7*)
(P8*,N8*)
(P9*,N9*) (P10*,N10*)
(P11*,N11*)
(P12*,N12*)
(P14*,N14*)
(P15*,N15*)
a1 a1
a4
a7
a2
a1
a6
a3
a4
a6
a7
a6
a8 a8
a4
a7
a2
a1
a6
a3
a4
a6 a6
a7
a8
a1
a2
a5a5
a2
a1
a8
(P13*,N13*)
L3 L4
L5
L1 L2
(P1*,N1*)
(P2*,N2*)
(P3*,N3*)
(P4*,N4*)
(P6*,N6*)
(P7*,N7*)
(P8*,N8*)
(P5*,N5*)
(P10*,N10*)
(P11*,N11*)
(P9*,N9*) (P12*,N12*)
(P14*,N14*)
(P15*,N15*)(P13*,N13*)
impossible case
impossible case
(P5*,N5*)
105
Searching Feasible Coalition Structures
L3
L4
L5
L1L2
(P1*,N1*)
(P2*,N2*)
(P3*,N3*)
(P4*,N4*)
(P5*,N5*)
(P6*,N6*)(P7*,N7*)
(P8*,N8*)
(P9*,N9*)
(P10*,N10*)
(P11*,N11*)
(P12*,N12*)
(P13*,N13*)
(P14*,N14*)
(P16*,N16*)
(P17*,N17*)(P15*,N15*)
Every feasible coalition structure contains exactly one coalition from L1, and at most one coalition from Li : i = 2, 3, …
For every coalition C1 ∈ L1: add C1 to CS and, and add the agents
in C1 to Nj* for every (Pj*,Nj*) ∈ L2
If UCS ≠ A, the process is repeated: add a coalition C2 ∈ L2 to
CS, and add the agents in C1 U C2 to every (Pj*,Nj*) ∈ L3… etc.
To speed up the search, we apply a branch-and-bound technique.
106
Experimental ResultsTime in log scale to find an optimal coalition structure
We outperform existing algorithms by several orders of magnitude