Computing

the

Banzhaf

Power

Index

in

Network

Flow

Games

Yoram

Bachrach

Jeffrey

S.

Rosenschein

School

of

Engineering

and

Computer

Science

The

Hebrew

University

of

Jerusalem,

Israel

{yori,jeff}@cs.huji.ac.il

ABSTRACT

Preference

aggregation

is

used

in

a

variety

of

multiagent

applications,

and

as

a

result,

voting

theory

has

become

an

important

topic

in

multiagent

system

research.

However,

power

indices

(which

reflect

how

much

real

power

a

voter

has

in

a

weighted

voting

system)

have

received

relatively

little

attention,

although

they

have

long

been

studied

in

political

science

and

economics.

The

Banzhaf

power

index

is

one

of

the

most

popular;

it

is

also

well-defined

for

any

simple

coalitional

game.

In

this

paper,

we

examine

the

computational

complexity

of

calculating

the

Banzhaf

power

index

within

a

particular

multiagent

domain,

a

network

flow

game.

Agents

control

the

edges

of

a

graph;

a

coalition

wins

if

it

can

send

a

flow

of

a

given

size

from

a

source

vertex

to

a

target

vertex.

The

relative

power

of

each

edge/agent

reflects

its

significance

in

enabling

such

a

flow,

and

in

real-world

networks

could

be

used,

for

example,

to

allocate

resources

for

maintaining

parts

of

the

network.

We

show

that

calculating

the

Banzhaf

power

index

of

each

agent

in

this

network

flow

domain

is

#P-complete.

We

also

show

that

for

some

restricted

network

flow

domains

there

exists

a

polynomial

algorithm

to

calculate

agents"

Banzhaf

power

indices.

Categories

and

Subject

Descriptors

[Theory

of

Computation]:

Analysis

of

Algorithms

and

Problem

Complexity;

[Artificial

Intelligence]:

Distributed

Artificial

IntelligenceMultiagent

Systems;

[Computer

Applications]:

Social

and

Behavioral

SciencesEconomics

General

Terms

Algorithms,

Theory,

Economics

INTRODUCTION

Social

choice

theory

can

serve

as

an

appropriate

foundation

upon

which

to

build

multiagent

applications.

There

is

a

rich

literature

on

the

subject

of

from

political

science,

mathematics,

and

economics,

with

important

theoretical

results,

and

builders

of

automated

agents

can

benefit

from

this

work

as

they

engineer

systems

that

reach

group

consensus.

Interest

in

the

theory

of

economics

and

social

choice

has

in

fact

become

widespread

throughout

computer

science,

because

it

is

recognized

as

having

direct

implications

on

the

building

of

systems

comprised

of

multiple

automated

agents

What

distinguishes

computer

science

work

in

these

areas

is

its

concern

for

computational

issues:

how

are

results

arrived

at

(e.g.,

equilibrium

points)?

What

is

the

complexity

of

the

process?

Can

complexity

be

used

to

guard

against

unwanted

phenomena?

Does

complexity

of

computation

prevent

realistic

implementation

of

a

technique?

The

practical

applications

of

voting

among

automated

agents

are

already

widespread.

Ghosh

et

al.

built

a

movie

recommendation

system;

a

user"s

preferences

were

represented

as

agents,

and

movies

to

be

suggested

were

selected

through

agent

voting.

Candidates

in

virtual

elections

have

also

been

beliefs,

joint

plans

and

schedules

In

fact,

to

see

the

generality

of

the

(automated)

voting

scenario,

consider

modern

web

searching.

One

of

the

most

massive

preference

aggregation

schemes

in

existence

is

Google"s

PageRank

algorithm,

which

can

be

viewed

as

a

vote

among

indexed

web

pages

on

candidates

determined

by

a

user-input

search

string;

winners

are

ranked

(Tennenholtz

and

Altman

consider

the

axiomatic

foundations

of

ranking

systems

such

as

this).

In

this

paper,

we

consider

a

topic

that

has

been

less

studied

in

the

context

of

automated

agent

voting,

namely

power

indices.

A

power

index

is

a

measure

of

the

power

that

a

subgroup,

or

equivalently

a

voter

in

a

weighted

voting

environment,

has

over

decisions

of

a

larger

group.

The

Banzhaf

power

index

is

one

of

the

most

popular

measures

of

voting

power,

and

although

it

has

been

used

primarily

for

measuring

power

in

weighted

voting

games,

it

is

well-defined

for

any

simple

coalitional

game.

We

look

at

some

computational

aspects

of

the

Banzhaf

power

index

in

a

specific

environment,

namely

a

network

flow

game.

In

this

game,

a

coalition

of

agents

wins

if

it

can

send

a

flow

of

size

k

from

a

source

vertex

s

to

a

target

vertex

t,

with

the

relative

power

of

each

edge

reflecting

its

significance

in

allowing

such

a

flow.

We

show

that

calculating

the

Banzhaf

power

index

of

each

agent

in

this

general

network

flow

domain

is

#P-complete.

We

also

show

that

for

some

restricted

network

flow

domains

(specifically,

of

We

use

the

term

in

its

intuitive

sense

here,

but

in

the

social

choice

literature,

preference

aggregation

and

voting

are

basically

synonymous.

(RPS)

c

IFAAMAS

nectivity

games

on

bounded

layer

graphs),

there

does

exist

a

polynomial

algorithm

to

calculate

the

Banzhaf

power

index

of

an

agent.

There

are

implications

in

this

scenario

to

real-world

networks;

for

example,

the

power

index

might

be

used

to

allocate

maintenance

resources

(a

more

powerful

edge

being

more

critical),

in

order

to

maintain

a

given

flow

of

data

between

two

points.

The

paper

proceeds

as

follows.

In

Section

we

give

some

background

concerning

coalitional

games

and

the

Banzhaf

power

index,

and

in

Section

we

introduce

our

specific

network

flow

game.

In

Section

we

discuss

the

Banzhaf

power

index

in

network

flow

games,

presenting

our

complexity

result

in

the

general

case.

In

Section

we

consider

a

restricted

case

of

the

network

flow

game,

and

present

results.

In

Section

we

discuss

related

work,

and

we

conclude

in

Section

TECHNICAL

BACKGROUND

A

coalitional

game

is

composed

of

a

set

of

n

agents,

I,

and

a

function

mapping

any

subset

(coalition)

of

the

agents

to

a

real

value

v

R.

In

a

simple

coalitional

game,

v

only

gets

values

of

or

(v

We

say

a

coalition

C

I

wins

if

v(C)

and

say

it

loses

if

v(C)

We

denote

the

set

of

all

winning

coalitions

as

W(v)

{C

|v(C)

An

agent

i

is

a

swinger

(or

pivot)

in

a

winning

coalition

C

if

the

agent"s

removal

from

that

coalition

would

make

it

a

losing

coalition:

v(C)

v(C

{i})

A

swing

is

a

pair

i,

S

such

that

agent

i

is

a

swinger

in

coalition

S.

A

question

that

arises

in

this

context

is

that

of

measuring

the

influence

a

given

agent

has

on

the

outcome

of

a

simple

game.

One

approach

to

measuring

the

power

of

individual

agents

in

simple

coalitional

games

is

the

Banzhaf

index.

The

Banzhaf

Index

A

common

interpretation

of

the

power

an

agent

possesses

is

that

of

its

a

priori

probability

of

having

a

significant

role

in

the

game.

Different

assumptions

about

the

formation

of

coalitions,

and

different

definitions

of

having

a

significant

role,

have

caused

researchers

to

define

different

power

indices,

one

of

the

most

prominent

of

which

is

the

Banzhaf

index

This

index

has

been

widely

used,

though

primarily

for

the

purpose

of

measuring

individual

power

in

a

weighted

voting

system.

However,

it

can

also

easily

be

applied

to

any

simple

coalitional

game.

The

Banzhaf

index

depends

on

the

number

of

coalitions

in

which

an

agent

is

a

swinger,

out

of

all

possible

The

Banzhaf

index

is

given

by

β(v)

βn(v))

where

βi(v)

S⊂N|i∈S

[v(S)

v(S

{i})].

Different

probabilistic

models

on

the

way

a

coalition

is

formed

yield

different

appropriate

power

indices

The

Banzhaf

power

index

reflects

the

assumption

that

the

agents

are

independent

in

their

choices.

NETWORK

FLOW

GAMES

Motivation

Consider

a

communication

network,

where

it

is

crucial

to

be

able

to

send

a

certain

amount

of

information

between

two

sites.

Given

limited

resources

to

maintain

network

links,

which

edges

should

get

those

resources?

Banzhaf

actually

considered

the

percentage

of

such

coalitions

out

of

all

winning

coalitions.

This

is

called

the

normalized

Banzhaf

index.

We

model

this

problem

by

considering

a

network

flow

game.

The

game

consists

of

agents

in

a

network

flow

graph,

with

a

certain

source

vertex

s

and

target

vertex

t.

Each

agent

controls

one

of

the

graph"s

edges,

and

a

coalition

of

agents

controls

all

the

edges

its

members

control.

A

coalition

of

agents

wins

the

game

if

it

manages

to

send

a

flow

of

at

least

k

from

source

s

to

target

t,

and

loses

otherwise.

To

ensure

that

the

network

is

capable

of

maintaining

the

desired

flow

between

s

and

t,

we

may

choose

to

allocate

our

limited

maintenance

resources

to

the

edges

according

to

their

impact

on

allowing

this

flow.

In

other

words,

resources

could

be

devoted

to

the

links

whose

failure

is

most

likely

to

cause

us

to

lose

the

ability

to

send

the

required

amount

of

information

between

the

source

and

target.

Under

a

reasonable

probabilistic

model,

the

Banzhaf

index

provides

us

with

a

measure

of

the

impact

each

edge

has

on

enabling

this

amount

of

information

to

be

sent

between

the

sites,

and

thus

provides

a

reasonable

basis

for

allocation

of

scarce

maintenance

resources.

Formal

Definition

Formally,

a

network

flow

game

is

defined

as

follows.

The

game

consists

of

a

network

flow

graph

G

V,

E

with

capacities

on

the

edges

c

E

R,

a

source

vertex

s,

a

target

vertex

t,

and

a

set

I

of

agents,

where

agent

i

controls

the

edge

ei.

Given

a

coalition

C,

which

controls

the

edges

EC

{ei|i

C},

we

can

check

whether

the

coalition

allows

a

flow

of

k

from

s

to

t.

We

define

the

simple

coalitional

game

of

network

flow

as

the

game

where

the

coalition

wins

if

it

allows

such

a

flow,

and

loses

otherwise:

v(C)

if

EC

allows

a

flow

of

k

from

s

to

t;

otherwise;

A

simplified

version

of

the

network

flow

game

is

the

connectivity

game;

in

a

connectivity

game,

a

coalition

wants

to

have

some

path

from

source

to

target.

More

precisely,

a

connectivity

game

is

a

network

flow

game

where

each

of

the

edges

has

identical

capacity,

c(e)

and

the

target

flow

value

is

k

In

such

a

scenario,

the

goal

of

a

coalition

is

to

have

at

least

one

path

from

s

to

t:

v(C)

if

EC

contains

a

path

from

s

to

t;

otherwise;

Given

a

network

flow

game

(or

a

connectivity

game),

we

can

compute

the

power

indices

of

the

game.

When

a

coalition

of

edges

is

chosen

at

random,

and

each

coalition

is

equiprobable,

the

appropriate

index

is

the

Banzhaf

We

can

use

the

Banzhaf

value

of

an

agent

i

I

(or

the

edge

it

controls,

ei),

βei

(v)

βi(v),

to

measure

its

impact

on

allowing

a

given

flow

between

s

and

t.

THE

BANZHAF

INDEX

IN

NETWORK

FLOW

GAMES

We

now

define

the

problem

of

calculating

the

Banzhaf

index

in

the

network

flow

game.

DEFINITION

NETWORK-FLOW-BANZHAF:

We

are

given

a

network

flow

graph

G

V,

E

with

a

source

vertex

s

and

a

target

vertex

t,

a

capacity

function

c

E

R,

and

a

target

flow

value

k.

We

consider

the

network

flow

game,

as

defined

above

in

Section

We

are

given

an

agent

i,

controlling

the

edge

ei,

and

are

asked

to

calculate

the

Banzhaf

index

for

that

agent.

In

the

network

When

each

ordering

of

edges

is

equiprobable,

the

appropriate

index

is

the

Shapley-Shubik

index.

The

Sixth

Intl.

Joint

Conf.

on

Autonomous

Agents

and

Multi-Agent

Systems

(AAMAS

flow

game,

let

Cei

be

the

set

of

all

subsets

of

E

that

contain

ei:

Cei

{C

E|ei

C}.

In

this

game,

the

Banzhaf

index

of

ei

is:

βi(v)

E

⊂Cei

[v(E

v(E

{ei})].

Let

W(Cei

be

the

set

of

winning

subsets

of

edges

in

Cei

i.e.,

the

subsets

E

Cei

where

a

flow

of

at

least

k

can

be

sent

from

s

to

t

using

only

the

edges

in

E

The

Banzhaf

index

of

ei

is

the

proportion

of

subsets

in

W(Cei

where

ei

is

crucial

to

maintaining

the

k-flow.

All

the

edge

subsets

in

W(Cei

contain

ei

and

are

winning,

but

only

for

some

of

them,

E

W(Cei

do

we

have

that

v(E

{ei})

(i.e.,

E

is

no

longer

winning

if

we

remove

ei).

The

Banzhaf

index

of

ei

is

the

proportion

of

such

subsets.

#P-Completeness

of

Calculating

the

Banzhaf

Index

in

the

Network

Flow

Game

We

now

show

that

the

general

case

of

NETWORK-FLOW-BANZHAF

is

#P-complete,

by

a

reduction

from

#MATCHING.

First,

we

note

that

NETWORK-FLOW-BANZHAF

is

in

#P.

There

are

several

polynomial

algorithms

to

calculate

the

maximal

network

flow,

so

it

is

easy

to

check

if

a

certain

subset

of

edges

E

E

contains

ei

and

allows

a

flow

of

at

least

k

from

s

to

t.

It

is

also

easy

to

check

if

a

flow

of

at

least

k

is

no

longer

possible

when

we

remove

ei

from

E

(again,

by

running

a

polynomial

algorithm

for

calculating

the

maximal

flow).

The

Banzhaf

index

of

ei

is

exactly

the

number

of

such

subsets

E

E,

so

NETWORK-FLOWBANZHAF

is

in

#P.

To

show

that

NETWORK-FLOW-BANZHAF

is

#P-complete,

we

reduce

a

#MATCHING

to

a

NETWORKFLOW-BANZHAF

problem.

DEFINITION

#MATCHING:

We

are

given

a

bipartite

graph

G

U,

V,

E

such

that

|U|

|V

n,

and

are

asked

to

count

the

number

of

perfect

matchings

possible

in

G.

The

Overall

Reduction

Approach

The

reduction

is

done

as

follows.

From

the

#MATCHING

input,

G

U,

V,

E

we

build

two

inputs

for

the

NETWORKFLOW-BANZHAF

problem.

The

difference

between

the

answers

obtained

from

the

NETWORK-FLOW-BANZHAF

runs

is

the

answer

to

the

#MATCHING

problem.

Both

runs

of

the

NETWORKFLOW-BANZHAF

problem

are

constructed

with

the

same

graph

G

V

E

with

the

same

source

vertex

s

and

target

vertex

t,

and

with

the

same

edge

ef

for

which

to

compute

the

Banzhaf

index.

They

differ

only

in

the

target

flow

value.

The

first

run

is

with

a

target

flow

of

k,

and

the

second

run

is

with

a

target

flow

of

k

A

choice

of

subset

Ec

E

reflects

a

possible

matching

in

the

original

graph.

G

is

a

subgraph

of

the

constructed

G

We

identify

an

edge

in

G

e

E

with

the

same

edge

in

G.

This

edge

indicates

a

particular

match

between

some

vertex

u

U

and

another

vertex

v

V

Thus,

if

Ec

E

is

a

subset

of

edges

in

G

which

contains

only

edges

in

the

subgraph

of

G,

we

identify

it

with

a

subset

of

edges

in

G,

or

with

some

candidate

of

a

matching.

We

say

Ec

E

matches

some

vertex

v

V

if

Ec

contains

some

edge

that

connects

to

v,

i.e.,

for

some

u

U

we

have

(u,

v)

Ec.

Ec

is

a

possible

matching

if

it

does

not

match

a

vertex

v

V

with

more

than

one

vertex

in

U,

i.e.,

there

are

not

two

vertices

in

U

that

both

v)

Ec

and

v)

Ec.

A

perfect

matching

matches

all

the

vertices

in

V

If

Ec

fails

to

match

a

vertex

in

V

(the

right

side

of

the

partition),

the

maximal

possible

flow

that

Ec

allows

in

G

is

less

than

k.

If

it

matches

all

the

vertices

in

V

a

flow

of

k

is

possible.

If

it

matches

This

is

one

of

the

most

well-known

#P-complete

problems.

all

the

vertices

in

V

but

matches

some

vertex

in

V

more

than

once

(which

means

this

is

not

a

true

matching),

a

flow

of

k+

is

possible.

is

chosen

so

that

if

a

single

vertex

v

V

is

unmatched,

the

maximal

possible

flow

would

be

less

than

|V

even

if

all

the

other

vertices

are

matched

more

than

once.

In

other

words,

is

chosen

so

that

matching

several

vertices

in

V

more

than

once

can

never

compensate

for

not

matching

some

vertex

in

V

in

terms

of

the

maximal

possible

flow.

Thus,

when

we

check

the

Banzhaf

index

of

ef

when

the

required

flow

is

at

least

k,

we

get

the

number

of

subsets

E

E

that

match

all

the

vertices

in

V

at

least

once.

When

we

check

the

Banzhaf

index

of

ef

with

a

required

flow

of

at

least

k+

we

get

the

number

of

subsets

E

E

that

match

all

the

vertices

in

V

at

least

once,

and

match

at

least

one

vertex

v

V

more

than

once.

The

difference

between

the

two

is

exactly

the

number

of

perfect

matchings

in

G.

Therefore,

if

there

existed

a

polynomial

algorithm

for

NETWORKFLOW-BANZHAF,

we

could

use

it

to

build

a

polynomial

algorithm

for

#MATCHING,

so

NETWORK-FLOW-BANZHAF

is

#Pcomplete.

Reduction

Details

The

reduction

takes

the

#MATCHING

input,

the

bipartite

graph

G

U,

V,

E

where

|U|

|V

k.

It

then

generates

a

network

flow

graph

G

as

follows.

The

graph

G

is

kept

as

a

subgraph

of

G

and

each

edge

in

G

is

given

a

capacity

of

A

new

source

vertex

s

is

added,

along

with

a

new

vertex

t

and

a

new

target

vertex

t.

Let

so

that

k

The

source

s

is

connected

to

each

of

the

vertices

in

U,

the

left

partition

of

G,

with

an

edge

of

capacity

Each

of

the

vertices

in

V

is

connected

to

t

with

an

edge

of

capacity

t

is

connected

to

t

with

an

edge

ef

of

capacity

As

mentioned

above,

we

perform

two

runs

of

NETWORK-FLOWBANZHAF,

both

checking

the

Banzhaf

index

of

the

edge

ef

in

the

flow

network

G

We

denote

the

network

flow

game

defined

on

G

with

target

flow

k

as

v(G

,k).

The

first

run

is

performed

on

the

game

with

a

target

flow

of

k,

v(G

,k),

returning

the

index

βef

(v(G

,k)).

The

second

run

is

performed

on

the

game

with

a

target

flow

of

k

v(G

,k+

returning

the

index

βef

(v(G

,k+

The

number

of

perfect

matchings

in

G

is

the

difference

between

the

answers

in

the

two

runs,

βef

(v(G

,k))

βef

(v(G

,k+

This

is

proven

in

Theorem

Figure

shows

an

example

of

constructing

G

from

G.

On

the

left

is

the

original

graph

G,

and

on

the

right

is

the

constructed

network

flow

graph

G

Proof

of

the

reduction

We

now

prove

that

the

reduction

above

is

correct.

In

all

of

this

section,

we

take

the

input

to

the

#MATCHING

problem

to

be

G

U,

V,

E

with

|U|

|V

k,

the

network

flow

graph

constructed

in

the

reduction

to

be

G

V

E

with

capacities

c

E

R

as

defined

in

Section

the

edge

for

which

to

calculate

the

Banzhaf

index

to

be

ef

and

target

flow

values

of

k

and

k

PROPOSITION

Let

Ec

E

be

a

subset

of

edges

that

lacks

one

or

more

edges

of

the

following:

The

edges

connected

to

s;

The

edges

connected

to

t

The

edge

ef

(t

t).

We

call

such

a

subset

a

missing

subset.

The

maximal

flow

between

s

and

t

using

only

the

edges

in

the

missing

subset

Ec

is

less

than

k.

The

Sixth

Intl.

Joint

Conf.

on

Autonomous

Agents

and

Multi-Agent

Systems

(AAMAS

Figure

Reducing

#MATCHING

to

NETWORK-FLOW-BANZHAF

PROOF.

The

graph

is

a

layer

graph,

with

s

being

the

vertex

in

the

first

layer,

U

the

vertices

in

the

second

layer,

V

the

vertices

in

the

third,

t

the

vertex

in

the

fourth,

and

t

in

the

fifth.

Edges

in

G

only

go

between

consecutive

layers.

The

maximal

flow

in

a

layer

graph

is

limited

by

the

total

capacity

of

the

edges

between

every

two

consecutive

layers.

If

any

of

the

edges

between

s

and

U

is

missing,

the

flow

is

limited

by

(|V

k.

If

any

of

the

edges

between

V

and

t

is

missing,

the

flow

is

also

limited

by

(|V

k.

If

the

edge

ef

is

missing,

there

are

no

edges

going

to

the

last

layer,

and

the

maximal

flow

is

Since

such

missing

subsets

of

edges

do

not

affect

the

Banzhaf

index

of

ef

(they

add

to

the

sum),

from

now

on

we

will

consider

only

non-missing

subsets.

As

explained

in

Section

we

identify

the

edges

in

G

that

were

copied

from

G

(the

edges

between

U

and

V

in

G

with

their

counterparts

in

G.

Each

such

edge

(u,

v)

E

represents

a

match

between

u

and

v

in

G.

Ec

is

a

perfect

matching

if

it

matches

every

vertex

u

to

a

single

vertex

v

and

vice

versa.

PROPOSITION

Let

Ec

E

be

a

subset

of

edges

that

fails

to

match

some

vertex

v

V

The

maximal

flow

between

s

and

t

using

only

the

edges

in

the

missing

subset

Ec

is

less

than

k.

We

call

such

a

set

sub-matching,

and

it

is

not

a

perfect

matching.

PROOF.

If

Ec

fails

to

match

some

vertex

v

V

the

maximal

flow

that

can

reach

the

vertices

in

the

V

layer

is

k,

so

this

is

also

the

maximal

flow

that

can

reach

t.

PROPOSITION

Let

Ec

E

be

a

subset

of

edges

that

is

a

perfect

matching

in

G.

Then

the

maximal

flow

between

s

and

t

using

only

the

edges

in

Ec

is

exactly

k.

PROOF.

A

flow

of

k

is

possible.

We

send

a

flow

of

from

s

to

each

of

the

vertices

in

U,

send

a

flow

of

from

each

vertex

u

U

to

its

match

v

V

and

send

a

flow

of

from

each

v

V

to

t

t

gets

a

total

flow

of

exactly

k,

and

sends

it

to

t.

A

flow

of

more

than

k

is

not

possible

since

there

are

exactly

k

edges

of

capacity

between

the

U

layer

and

the

V

layer,

and

the

maximal

flow

is

limited

by

the

total

capacity

of

the

edges

between

these

two

consecutive

layers.

PROPOSITION

Let

Ec

E

be

a

subset

of

edges

that

contains

a

perfect

matching

M

E

in

G

and

at

least

one

more

edge

ex

between

some

vertex

ua

U

and

va

V

Then

the

maximal

flow

between

s

and

t

using

only

the

edges

in

Ec

is

at

least

k+

We

call

such

a

set

a

super-matching,

and

it

is

not

a

perfect

matching.

PROOF.

A

flow

of

k

is

possible,

by

using

the

edges

of

the

perfect

match

as

in

Proposition

We

send

a

flow

of

from

s

to

each

of

the

vertices

in

U,

send

a

flow

of

from

each

vertex

u

U

to

its

match

v

V

and

send

a

flow

of

from

each

v

V

to

t

t

gets

a

total

flow

of

exactly

k,

and

sends

it

to

t.

After

using

the

edges

of

the

perfect

matching,

we

send

a

flow

of

from

s

to

ua

(this

is

possible

since

the

capacity

of

the

edge

(s,

ua)

is

and

we

have

only

used

up

We

then

send

a

flow

of

from

ua

to

va.

This

is

possible

since

we

have

not

used

this

edge

at

all-it

is

the

edge

which

is

not

a

part

of

the

perfect

matching.

We

then

send

a

flow

of

from

va

to

t

Again,

this

is

possible

since

we

have

used

out

of

the

total

capacity

of

which

that

edge

has.

Now

t

gets

a

total

flow

of

k

and

sends

it

all

to

t,

so

we

have

achieved

a

total

flow

of

k

Thus,

the

maximal

possible

flow

is

at

least

k

THEOREM

Consider

a

#MATCHING

instance

G

U,

V,

E

reduced

to

a

BANZHAF-NETWORK-FLOW

instance

G

as

explained

in

Section

Let

v(G

,k)

be

the

network

flow

game

defined

on

G

with

target

flow

k,

and

v(G

,k+

be

the

game

defined

with

a

target

flow

of

k+

Let

the

resulting

index

of

the

first

run

be

βef

(v(G

,k)),

and

βef

(v(G

,k+

be

the

resulting

index

of

the

second

run.

Then

the

number

of

perfect

matchings

in

G

is

the

difference

between

the

answers

in

the

two

runs,

βef

(v(G

,k))

βef

(v(G

,k+

PROOF.

Consider

the

game

v(G

,k).

According

to

Proposition

in

this

game,

the

Banzhaf

index

of

Ef

does

not

count

missing

subsets

Ec

E

since

they

are

losing

in

this

game.

According

to

Proposition

it

does

not

count

subsets

Ec

E

that

are

submatchings,

since

they

are

also

losing.

According

to

Proposition

it

adds

to

the

count

for

each

perfect

matching,

since

such

subsets

allow

a

flow

of

k

and

are

winning.

According

to

Proposition

it

adds

to

the

count

for

each

super-matching,

since

such

subsets

allow

a

flow

of

k

(and

more

than

k)

and

are

winning.

Consider

the

game

v(G

,k+

Again,

according

to

Proposition

in

this

game

the

Banzhaf

index

of

Ef

does

not

count

missing

subsets

Ec

E

since

they

are

losing

in

this

game.

According

to

Proposition

it

does

not

count

subsets

Ec

E

that

are

submatchings,

since

they

are

also

losing.

According

to

Proposition

it

adds

to

the

count

for

each

perfect

matching,

since

such

subsets

allow

a

flow

of

k

but

not

k

and

are

thus

losing.

According

to

Proposition

it

adds

to

the

count

for

each

super-matching,

since

such

subsets

allow

a

flow

of

k

and

are

winning.

Thus

the

difference

between

the

two

indices,

βef

(v(G

,k))

βef

(v(G

,k+

is

exactly

the

number

of

perfect

matchings

in

G.

We

have

reduced

a

#MATCHING

problem

to

a

NETWORKFLOW-BANZHAF

problem.

This

means

that

given

a

polynomial

The

Sixth

Intl.

Joint

Conf.

on

Autonomous

Agents

and

Multi-Agent

Systems

(AAMAS

algorithm

to

calculate

the

Banzhaf

index

of

an

agent

in

a

general

network

flow

game,

we

can

build

an

algorithm

to

solve

the

#MATCHING

problem.

Thus,

the

problem

of

calculating

the

Banzhaf

index

of

agents

in

general

network

flow

games

is

also

#P-complete.

CALCULATING

THE

BANZHAF

INDEX

IN

BOUNDED

LAYER

GRAPH

CONNECTIVITY

GAMES

We

here

present

a

polynomial

algorithm

to

calculate

the

Banzhaf

index

of

an

edge

in

a

connectivity

game,

where

the

network

is

a

bounded

layer

graph.

This

positive

result

indicates

that

for

some

restricted

domains

of

network

flow

games,

it

is

possible

to

calculate

the

Banzhaf

index

in

a

reasonable

amount

of

time.

DEFINITION

A

layer

graph

is

a

graph

G

V,

E

with

source

vertex

s

and

target

vertex

t,

where

the

vertices

of

the

graph

are

partitioned

into

n

layers,

{s},

Ln

{t}.

The

edges

run

only

between

consecutive

layers.

DEFINITION

A

c-bounded

layer

graph

is

a

layer

graph

where

the

number

of

vertices

in

each

layer

is

bounded

by

some

constant

number

c.

Although

there

is

no

limit

on

the

number

of

layers

in

a

bounded

layer

graph,

the

structure

of

such

graphs

makes

it

possible

to

calculate

the

Banzhaf

index

of

edges

in

connectivity

games

on

such

graphs.

The

algorithm

provided

below

is

indeed

polynomial

in

the

number

of

vertices

given

that

the

network

is

a

c-bounded

layer

graph.

However,

there

is

a

constant

factor

to

the

running

time,

which

is

exponential

in

c.

Therefore,

this

method

is

only

tractable

for

graphs

where

the

bound

c

is

small.

Bounded

layer

graphs

may

occur

in

networks

when

the

nodes

are

located

in

several

ordered

segments,

where

nodes

can

be

connected

only

between

consecutive

segments.

Let

v

be

a

vertex

in

layer

Li.

We

say

an

edge

e

occurs

before

v

if

it

connects

two

vertices

in

v"s

layer

or

a

previous

layer:

e

(u,

w)

connects

vertex

u

Lj

to

vertex

w

and

j

i.

Let

Predv

E

be

the

subset

of

edges

that

occur

before

v.

Consider

a

subset

of

these

edges,

E

Predv.

E

may

contain

a

path

from

s

to

v,

or

it

may

not.

We

define

Pv

as

the

number

of

subsets

E

Predv

that

contain

a

path

from

s

to

v.

Similarly,

let

Vi

V

be

the

subset

of

all

the

vertices

in

the

same

layer

Li.

Let

PredVi

E

be

the

subset

of

edges

that

occur

before

Vi

(all

the

vertices

in

Vi

are

in

the

same

layer,

so

any

edge

that

occurs

before

some

v

Vi

occurs

before

any

other

vertex

w

Vi).

Consider

a

subset

of

these

edges,

E

PredV

Let

Vi(E

be

the

subset

of

vertices

in

Vi

that

are

reachable

from

s

using

only

the

edges

in

E

Vi(E

{v

Vi|E

contains

a

path

from

s

to

v}.

We

say

E

PredV

connects

exactly

the

vertices

in

Si

Vi

if

all

the

vertices

in

Si

are

reachable

from

s

using

the

edges

in

E

but

no

other

vertices

in

Vi

are

reachable

from

s

using

E

so

Vi(E

Si.

Let

V

Vi

be

a

subset

of

the

vertices

in

layer

Li.

We

define

PV

as

the

number

of

subsets

E

PredV

that

connect

exactly

the

vertices

in

V

PV

|{E

PredV

|Vi(E

V

LEMMA

Let

Vi

where

be

two

different

subsets

of

vertices

in

the

same

layer.

Let

E

E

PredVi

be

two

sets

of

edge

subsets,

so

that

E

connects

exactly

the

vertices

in

and

E

connects

exactly

the

vertices

in

Vi(E

and

Vi(E

Then

E

and

E

do

not

contain

the

same

edges:

E

E

PROOF.

If

E

E

then

both

sets

of

edges

allow

the

same

paths

from

s,

so

Vi(E

Vi(E

Let

Si

Vi

be

a

subset

of

vertices

in

layer

Li.

Let

Ei

E

be

the

set

of

edges

between

the

vertices

in

layer

Li

and

layer

Let

E

Ei

be

some

subset

of

these

edges.

We

denote

by

Dests(Si,

E)

the

set

of

vertices

in

layer

that

are

connected

to

some

vertex

in

Si

by

an

edge

in

E:

Dests(Si,

E)

{v

exists

some

w

Si

and

some

e

E

that

e

(w,

v)}.

Let

Si

Vi

be

a

subset

of

vertices

in

Li

and

E

Ei

be

some

subset

of

the

edges

between

layer

Li

and

layer

PSi

counts

the

number

of

edge

subsets

in

PredVi

that

connect

exactly

the

vertices

in

Si.

Consider

such

a

subset

E

counted

in

PSi

E

E

is

a

subset

of

edges

in

that

connects

exactly

to

Dest(Si,

E).

According

to

Lemma

if

we

iterate

over

the

different

Si"s

in

layer

Li,

the

PSi

"s

count

different

subsets

of

edges,

and

thus

every

expansion

using

the

edges

in

E

is

also

different.

Algorithm

calculates

Pt.

It

iterates

through

the

layers,

and

updates

the

data

for

the

next

layer

given

the

data

for

the

current

layer.

For

each

layer

Li

and

every

subset

of

edges

in

that

layer

Si

Vi,

it

calculates

PSi

It

does

so

using

the

values

calculated

in

the

previous

layer.

The

algorithm

considers

every

subset

of

possible

vertices

in

the

current

layer,

and

every

possible

subset

of

expanding

edges

to

the

next

layer,

and

updates

the

value

of

the

appropriate

subset

in

the

next

layer.

Algorithm

procedure

CONNECTING-EXACTLY-SUBSETS(G,

v)

P{s}

Initialization

for

all

other

subsets

of

vertices

S

do

Initialization

PS

end

for

for

i

to

n

do

Iterate

through

layers

for

all

vertex

subsets

Si

in

Li

do

for

all

edge

subsets

E

between

Li,

do

D

Dests(Si,

E)

subset

in

PD

PD

PSi

end

for

end

for

end

for

end

procedure

A

c-bounded

layer

graph

contains

at

most

c

vertices

in

each

layer,

so

for

each

layer

there

are

at

most

different

subsets

of

vertices

in

that

layer.

There

are

also

at

most

edges

between

consecutive

layers,

and

thus

at

most

edge

subsets

between

two

layers.

If

the

graph

contains

k

layers,

the

running

time

of

the

algorithm

is

bounded

by

Since

c

is

a

constant,

this

is

a

polynomial

algorithm.

Consider

the

connectivity

game

on

a

layer

graph

G,

with

a

single

source

vertex

s

and

target

vertex

t.

The

Banzhaf

index

of

the

edge

e

is

the

number

of

subsets

of

edges

that

allow

a

path

between

s

and

t,

but

do

not

allow

such

a

path

when

e

is

removed

(divided

by

a

constant).

We

can

calculate

P{t}

P{t}(G)

for

G

using

the

algorithm

to

count

the

number

of

subsets

of

edges

that

allow

a

path

from

s

to

t.

We

can

then

remove

e

from

G

to

obtain

the

graph

G

V,

E

{e}

and

calculate

P{t}

P{t}(G

The

difference

P{t}(G)

P{t}(G

is

the

number

of

subsets

of

edges

that

contain

a

path

from

s

to

t

but

no

longer

contain

such

a

path

when

e

is

removed.

The

Banzhaf

index

for

e

is

P{t}(G)−P{t}(G

Thus,

this

algorithm

allows

us

to

calculate

the

Banzhaf

index

on

an

edge

in

the

connectivity

games

on

bounded

layer

graphs.

The

Sixth

Intl.

Joint

Conf.

on

Autonomous

Agents

and

Multi-Agent

Systems

(AAMAS

RELATED

WORK

Measuring

the

power

of

individual

players

in

coalitional

games

has

been

studied

for

many

years.

The

most

popular

indices

suggested

for

such

measurement

are

the

Banzhaf

index

and

the

Shapley-Shubik

index

In

his

seminal

paper,

Shapley

considered

coalitional

games

and

the

fair

allocation

of

the

utility

gained

by

the

grand

coalition

(the

coalition

of

all

agents)

to

its

members.

The

Shapley-Shubik

index

is

the

direct

application

of

the

Shapley

value

to

simple

coalitional

games.

The

Banzhaf

index

emerged

directly

from

the

study

of

voting

in

decision-making

bodies.

The

normalized

Banzhaf

index

measures

the

proportion

of

coalitions

in

which

a

player

is

a

swinger,

out

of

all

winning

coalitions.

This

index

is

similar

to

the

Banzhaf

index

discussed

in

Section

and

is

defined

as:

βi

βi(v)

k∈N

βk

The

Banzhaf

index

was

mathematically

analyzed

in

where

it

was

shown

that

this

normalization

lacks

certain

desirable

properties,

and

the

more

natural

Banzhaf

index

is

introduced.

Both

the

Shapley-Shubik

and

the

Banzhaf

indices

have

been

widely

studied,

and

Straffin

has

shown

that

each

index

reflects

specific

conditions

in

a

voting

body.

considers

these

two

indices

along

with

several

others,

and

describes

the

axioms

that

characterize

the

different

indices.

The

naive

implementation

of

an

algorithm

for

calculating

the

Banzhaf

index

of

an

agent

i

enumerates

all

coalitions

containing

i.

There

are

such

coalitions,

so

the

performance

is

exponential

in

the

number

of

agents.

contains

a

survey

of

algorithms

for

calculating

power

indices

of

weighted

majority

games.

Deng

and

Papadimitriou

show

that

computing

the

Shapley

value

in

weighted

majority

games

is

#P-complete,

using

a

reduction

from

KNAPSACK.

Since

the

Shapley

value

of

any

simple

game

has

the

same

value

as

its

Shapley-Shubik

index,

this

shows

that

calculating

the

Shapley-Shubik

index

in

weighted

majority

games

is

#Pcomplete.

Matsui

and

Matsui

have

shown

that

calculating

both

the

Banzhaf

and

Shapley-Shubik

indices

in

weighted

voting

games

is

NP-complete.

The

problem

of

computing

power

indices

in

simple

games

depends

on

the

chosen

representation

of

the

game.

Since

the

number

of

possible

coalitions

is

exponential

in

the

number

of

agents,

calculating

power

indices

in

time

polynomial

in

the

number

of

agents

can

only

be

achieved

in

specific

domains.

In

this

paper,

we

have

considered

the

network

flow

domain,

where

a

coalition

of

agents

must

achieve

a

flow

beyond

a

certain

value.

The

network

flow

game

we

have

defined

is

a

simple

game.

have

considered

a

similar

network

flow

domain,

where

each

agent

controls

an

edge

of

a

network

flow

graph.

However,

they

introduced

a

non-simple

game,

where

the

value

a

coalition

of

agents

achieves

is

the

maximal

total

flow.

They

have

shown

that

certain

families

of

network

flow

games

and

similar

games

have

nonempty

cores.

CONCLUSIONS

AND

FUTURE

DIRECTIONS

We

have

considered

network

flow

games,

where

a

coalition

of

agents

wins

if

it

manages

to

send

a

flow

of

more

than

some

value

k

between

two

vertices.

We

have

assessed

the

relative

power

of

each

agent

in

this

scenario

using

the

Banzhaf

index.

This

power

index

may

be

used

to

decide

how

to

allocate

maintenance

resources

in

real-world

networks,

in

order

to

maximize

our

ability

to

maintain

a

certain

flow

of

information

between

two

sites.

Although

the

Banzhaf

index

theoretically

allows

us

to

measure

the

power

of

the

agents

in

the

network

flow

game,

we

have

shown

that

the

problem

of

calculating

the

Banzhaf

index

in

this

domain

in

#P-complete.

Despite

this

discouraging

result

for

the

general

network

flow

domain,

we

have

also

provided

a

more

encouraging

result

for

a

restricted

domain.

In

the

case

of

connectivity

games

(where

it

is

only

required

for

a

coalition

to

contain

a

path

from

the

source

to

the

destination)

played

on

bounded

layer

graphs,

it

is

possible

to

calculate

the

Banzhaf

index

of

an

agent

in

polynomial

time.

It

remains

an

open

problem

to

find

ways

to

tractably

approximate

the

Banzhaf

index

in

the

general

network

flow

domain.

It

might

also

be

possible

to

find

other

useful

restricted

domains

where

it

is

possible

to

exactly

calculate

the

Banzhaf

index.

We

have

only

considered

the

complexity

of

calculating

the

Banzhaf

index;

it

remains

an

open

problem

to

find

the

complexity

of

calculating

the

Shapley-Shubik

or

other

indices

in

the

network

flow

domain.

Finally,

we

believe

that

there

are

many

additional

interesting

domains

other

than

weighted

voting

games

and

network

flow

games,

and

it

would

be

worthwhile

to

investigate

the

complexity

of

calculating

the

Banzhaf

index

or

other

power

indices

in

such

domains.

ACKNOWLEDGMENT

This

work

was

partially

supported

by

grant

from

the

Israel

Science

Foundation.

REFERENCES

J.

F.

Banzhaf.

Weighted

voting

doesn"t

work:

a

mathematical

analysis.

Rutgers

Law

Review,

X.

Deng

and

C.

H.

Papadimitriou.

On

the

complexity

of

cooperative

solution

concepts.

Math.

Oper.

Res.,

P.

Dubey

and

L.

Shapley.

Mathematical

properties

of

the

Banzhaf

power

index.

Mathematics

of

Operations

Research,

E.

Ephrati

and

J.

S.

Rosenschein.

The

Clarke

Tax

as

a

consensus

mechanism

among

automated

agents.

In

Proceedings

of

the

Ninth

National

Conference

on

Artificial

Intelligence,

pages

Anaheim,

California,

July

E.

Ephrati

and

J.

S.

Rosenschein.

A

heuristic

technique

for

multiagent

planning.

Annals

of

Mathematics

and

Artificial

Intelligence,

Spring

S.

Ghosh,

M.

Mundhe,

K.

Hernandez,

and

S.

Sen.

Voting

for

movies:

the

anatomy

of

a

recommender

system.

In

Proceedings

of

the

Third

Annual

Conference

on

Autonomous

Agents,

pages

T.

Haynes,

S.

Sen,

N.

Arora,

and

R.

Nadella.

An

automated

meeting

scheduling

system

that

utilizes

user

preferences.

In

Proceedings

of

the

First

International

Conference

on

Autonomous

Agents,

pages

E.

Hemaspaandra,

L.

Hemaspaandra,

and

J.

Rothe.

Anyone

but

him:

The

complexity

of

precluding

an

alternative.

In

Proceedings

of

the

National

Conference

on

Artificial

Intelligence,

Pittsburgh,

July

E.

Kalai

and

E.

Zemel.

On

totally

balanced

games

and

games

of

flow.

Discussion

Papers

Northwestern

University,

Center

for

Mathematical

Studies

in

Economics

and

Management

Science,

Jan.

available

at

The

Sixth

Intl.

Joint

Conf.

on

Autonomous

Agents

and

Multi-Agent

Systems

(AAMAS

E.

Kalai

and

E.

Zemel.

Generalized

network

problems

yielding

totally

balanced

games.

Operations

Research,

September

A.

Laruelle.

On

the

choice

of

a

power

index.

Papers

Valencia

Instituto

de

Investigaciones

Economicas,

Y.

Matsui

and

T.

Matsui.

A

survey

of

algorithms

for

calculating

power

indices

of

weighted

majority

games.

Journal

of

the

Operations

Research

Society

of

Japan,

Y.

Matsui

and

T.

Matsui.

NP-completeness

for

calculating

power

indices

of

weighted

majority

games.

Theoretical

Computer

Science,

N.

Nisan

and

A.

Ronen.

Algorithmic

mechanism

design.

Games

and

Economic

Behavior,

A.

D.

Procaccia

and

J.

S.

Rosenschein.

Junta

distributions

and

the

average-case

complexity

of

manipulating

elections.

In

The

Fifth

International

Joint

Conference

on

Autonomous

Agents

and

Multiagent

Systems,

pages

Hakodate,

Japan,

May

J.

S.

Rosenschein

and

M.

R.

Genesereth.

Deals

among

rational

agents.

In

Proceedings

of

the

Ninth

International

Joint

Conference

on

Artificial

Intelligence,

pages

Los

Angeles,

California,

August

T.

Sandholm

and

V.

Lesser.

Issues

in

automated

negotiation

and

electronic

commerce:

Extending

the

contract

net

framework.

In

Proceedings

of

the

First

International

Conference

on

Multiagent

Systems

pages

San

Francisco,

L.

S.

Shapley.

A

value

for

n-person

games.

Contributions

to

the

Theory

of

Games,

pages

L.

S.

Shapley

and

M.

Shubik.

A

method

for

evaluating

the

distribution

of

power

in

a

committee

system.

American

Political

Science

Review,

P.

Straffin.

Homogeneity,

independence

and

power

indices.

Public

Choice,

M.

Tennenholtz

and

A.

Altman.

On

the

axiomatic

The

Sixth

Intl.

Joint

Conf.

on

Autonomous

Agents

and

Multi-Agent

Systems

(AAMAS

O O B I I O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O B I O O O B I I O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O B I I O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O B I O O B I O O O O O O O O O O O O O O B I O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

analysis of algorithm and problem complexity

algorithm and problem complexity analysis

preference aggregation
voting theory
banzhaf power index
social choice theory
automated agent voting
network flow game
probabilistic model
connectivity game
computational complexity
vote
power index