algorithms for ad hoc networks roger wattenhofer medhocnet 2005 alg hoc net 2005

50
Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Post on 18-Dec-2015

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Algorithms for Ad Hoc Networks

Roger WattenhoferMedHocNet 2005

alghocnet2005

Page 2: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 2

Distributed Algorithms vs. Ad Hoc Networking

• Small community

• O(…), (…), (…)

• Everybody knows best paper

• New algorithm: Compare it with the best previous

• Sometimes study the wrong problem; propose protocols that are way too complicated

• Big community

• Milliseconds

• Everybody knows first* paper

• New protocol: Compare it with the first that was proposed

• Reinvent the wheel; many papers do not offer any progress

Page 3: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 3

Algorithmic Research in Ad Hoc and Sensor Networking

Link Layer

Network Layer

Services

Theory/Models

• Clustering (Dominating Sets, etc.)• MAC Layer and Coloring• Topology and Power Control • Interference and Signal-to-Noise-Ratio • Deployment (Unstructured Radio Networks) • New Routing Paradigms (e.g. Link Reversal)• Geo-Routing • Broadcast and Multicast • Data Gathering • Location Services and Positioning • Time Synchronization • Modeling and Mobility • Lower Bounds for Message Passing• Selfish Agents, Economic Aspects, Security

Page 4: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 4

Overview

• Introduction– Ad Hoc and Sensor Networks

– Routing / Broadcasting

• Clustering• Conclusions

Page 5: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 5

Routing in Ad Hoc Networks

• Multi-Hop Routing– Moving information through a network from a source to a

destination if source and destination are not within mutual transmission range

• Reliability– Nodes in an ad-hoc network are not 100% reliable– Algorithms need to find alternate routes when nodes are failing

• Mobile Ad-Hoc Network (MANET)– It is often assumed that the nodes are mobile

Page 6: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 6

Simple Classification of Ad hoc Routing Algorithms

• Proactive Routing

• Small topology changes trigger a lot of updates, even when there is no communication does not scale

Flooding:

when node received

message the first time,

forward it to all neighbors

Distance Vector Routing:

as in a fixnet nodes

maintain routing tables

using update messages

• Reactive Routing

• Flooding the whole network does not scale

no mobility mobility very highcritical mobility

Source Routing (DSR, AODV):

flooding, but re-use old routes

Page 7: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 7

Discussion

• Lecture “Mobile Computing”: 10 Tricks 210 routing algorithms• In reality there are almost that many!

• Q: How good are these routing algorithms?!? Any hard results?• A: Almost none! Method-of-choice is simulation…• Perkins: “if you simulate three times, you get three different results”

• Flooding is key component of (many) proposed algorithms• At least flooding should be efficient

Page 8: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 8

Overview

• Introduction

• Clustering– Flooding vs. Dominating Sets

– Algorithm Overview

– Phase A

– Phase B

– Lower Bounds

• Conclusions

Page 9: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 9

Finding a Destination by Flooding

Page 10: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 10

Finding a Destination Efficiently

Page 11: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 11

(Connected) Dominating Set

• A Dominating Set DS is a subset of nodes such that each node is either in DS or has a neighbor in DS.

• A Connected Dominating Set CDS is a connected DS, that is, there is a path between any two nodes in CDS that does not use nodes that are not in CDS.

• It might be favorable tohave few nodes in the (C)DS. This is known as theMinimum (C)DS problem.

Page 12: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 12

Formal Problem Definition: M(C)DS

• Input: We are given an (arbitrary) undirected graph.

• Output: Find a Minimum (Connected) Dominating Set,that is, a (C)DS with a minimum number of nodes.

• Problems– M(C)DS is NP-hard– Find a (C)DS that is “close” to minimum (approximation)– The solution must be local (global solutions are impractical for

mobile ad-hoc network) – topology of graph “far away” should not influence decision who belongs to (C)DS

Page 13: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 13

Overview

• Introduction

• Clustering– Flooding vs. Dominating Sets

– Algorithm Overview

– Phase A

– Phase B

– Lower Bounds

• Topology Control• Conclusions

Page 14: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 14

Algorithm Overview

0.20.5

0.2

0.80

0.2

0.3

0.1

0.3

0

Input:

Local Graph

Fractional

Dominating Set

Dominating

Set

Connected

Dominating Set

0.5

Phase C:

Connect DS

by “tree” of

“bridges”

Phase B:

Probabilistic

algorithm

Phase A:

Distributed

linear programrel. high degree

gives high value

Page 15: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 15

Overview

• Introduction

• Clustering– Flooding vs. Dominating Sets

– Algorithm Overview

– Phase A

– Phase B

– Lower Bounds

• Topology Control• Conclusions

Page 16: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 16

Phase A is a Distributed Linear Program

• Nodes 1, …, n: Each node u has variable xu with xu ¸ 0

• Sum of x-values in each neighborhood at least 1 (local)• Minimize sum of all x-values (global)

0.5+0.3+0.3+0.2+0.2+0 = 1.5 ¸ 1

• Linear Programs can be solved optimally in polynomial time• But not in a distributed fashion! That’s what we do here…

0.20.5

0.2

0.80

0.2

0.3

0.1

0.3

0

0.5

Linear Program

Adjacency matrix

with 1’s in diagonal

Page 17: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 17

Phase A Algorithm

Page 18: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 18

Result after Phase A

• Distributed Approximation for Linear Program

• Instead of the optimal values xi* at nodes, nodes have xi

(), with

• The value of depends on the number of rounds k (the locality)

Page 19: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 19

Overview

• Introduction

• Clustering– Flooding vs. Dominating Sets

– Algorithm Overview

– Phase A

– Phase B

– Lower Bounds

• Topology Control• Conclusions

Page 20: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 20

Dominating Set as Integer Program

• What we have after phase A

• What we want after phase B

Page 21: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 21

Phase B Algorithm

Each node applies the following algorithm:

1. Calculate (= maximum degree of neighbors in distance 2)

2. Become a dominator (i.e. go to the dominating set) with probability

3. Send status (dominator or not) to all neighbors

4. If no neighbor is a dominator, become a dominator yourself

From phase A Highest degree in distance 2

Page 22: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 22

Result after Phase B

• Randomized rounding technique

• Expected number of nodes joining the dominating set in step 2 is bounded by log(+1) ¢ |DSOPT|.

• Expected number of nodes joining the dominating set in step 4 is bounded by |DSOPT|.

Theorem: E[|DS|] · O( ln ¢ |DSOPT|)

Page 23: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 23

Related Work on (Connected) Dominating Sets

• Global algorithms – Johnson (1974), Lovasz (1975), Slavik (1996): Greedy is optimal– Guha, Kuller (1996): An optimal algorithm for CDS– Feige (1998): ln lower bound unless NP 2 nO(log log n)

• Local (distributed) algorithms– “Handbook of Wireless Networks and Mobile Computing”: All

algorithms presented have no guarantees– Gao, Guibas, Hershberger, Zhang, Zhu (2001): “Discrete Mobile

Centers” O(loglog n) time, but nodes know coordinates– MIS-based algorithms (e.g. Alzoubi, Wan, Frieder, 2002) that

only work on unit disk graphs.– Kuhn, Wattenhofer (2003): Tradeoff time vs. approximation

Page 24: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 24

Recent Improvements

• Improved algorithms (in submission):– O(log2 / 4) time for a (1+)-approximation of phase A with

logarithmic sized messages.– If messages can be of unbounded size there is a constant

approximation of phase A in O(log n) time, using the graph decomposition by Linial and Saks.

– An improved and generalized distributed randomized rounding technique for phase B.

– Works for quite general linear programs.

• Is it any good…?

Page 25: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 25

Overview

• Introduction

• Clustering– Flooding vs. Dominating Sets

– Algorithm Overview

– Phase A

– Phase B

– Lower Bounds

• Topology Control• Conclusions

Page 26: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 26

Lower Bound for Dominating Sets: Intuition…

m

n-1

complete

n

m m

n n n

• Two graphs (m << n). Optimal dominating sets are marked red.

|DSOPT| = 2.|DSOPT| = m+1.

Page 27: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 27

Lower Bound for Dominating Sets: Intuition…

• In local algorithms, nodes must decide only using local knowledge.• In the example green nodes see exactly the same neighborhood.

• So these green nodes must decide the same way!

m

n-1

n

m

Page 28: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 28

Lower Bound for Dominating Sets: Intuition…

m

n-1

complete

n

m m

n n n

• But however they decide, one way will be devastating (with n = m2)!

|DSOPT| = 2.

|DSOPT without green| ¸ m.|DSOPT| = m+1.

|DSOPT with green| > n

Page 29: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 29

The Lower Bound

• Lower bounds (Kuhn, Moscibroda, Wattenhofer @ PODC 2004):– Model: In a network/graph G (nodes = processors), each node

can exchange a message with all its neighbors for k rounds. After k rounds, node needs to decide.

– We construct the graph such that there are nodes that see the same neighborhood up to distance k. We show that node ID’s do not help, and using Yao’s principle also randomization does not.

– Results: Many problems (vertex cover, dominating set, matching, etc.) can only be approximated (nc/k2 / k) and/or (1/k / k).

– It follows that a polylogarithmic dominating set approximation (or maximal independent set, etc.) needs at least (log / loglog ) and/or ((log n / loglog n)1/2) time.

Page 30: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 30

Graph Used in Dominating Set Lower Bound

• The example is for k = 3.• All edges are in fact special bipartite graphs

with large enough girth.

Page 31: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 31

A Theory of “Locality”?

• Ad hoc and sensor networks

• The largest network in the world?!?

• Managing organizations? Society?!?

• Matrix multiplication, etc.

Page 32: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 32

A better and faster algorithm

• Assume that nodes know their position (GPS)

• Assume that nodes are in the plane; two nodes are within their transmission radius if and only if their Euclidean distance is at most 1 (UDG, unit disk graph)

1

u

v

Page 33: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 33

Then…

half o

f tx r

adius

Page 34: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 34

Algorithm

1. Beacon your position

2. If, in your virtual grid cell, you are the node closest to the center of the cell, then join the CDS, else do not join.

3. That’s it.

• 1 transmission per node, O(1) approximation, even for CDS

• If you have mobility, then simply “loop” through algorithm, as fast as your application/mobility wants you to.

Page 35: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 35

Comparison

• First algorithm (distributed linear program)

• Algorithm computes CDS

• k2+O(1) transmissions/node• O(O(1)/k log ) approximation

• General graph• No position information

• Second algorithm (virtual grid)

• Algorithm computes CDS

• 1 transmission/node• O(1) approximation

• Unit disk graph (UDG)• Position information (GPS)

Page 36: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 36

Let’s talk about models…

• General Graph

• Captures obstacles• Captures directional radios• Often too pessimistic

• UDG & GPS

• UDG is not realistic• GPS not always available

– Indoors

• 2D 3D?• Often too optimistic

too pessimistic too optimistic

Are there any models in

between these extremes?

Page 37: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 37

Models

too pessimistic too optimistic

General

Graph

UDG

GPS

UDG

No GPS

Quasi

UDG

d

1

Bounded

Growth

Unit Ball

Graph

In a doubling

metric:Number of

independent

neighbors

is bounded

(UDG: 5)

Page 38: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 38

Another Algorithm 1: MIS

• Build maximal independent set (MIS), then connect MIS for CDS– Proposed by many, patented(!) by Alzoubi et al.

– A MIS is by definition also a DS

– Connecting with independent 1- and 2-hop bridges

– Slow! Works well only on UDGs; robust for general graphs

Page 39: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 39

Another Algorithm 2: Election

• Every node elects a leader; every elected node goes into DS– First analyzed by Jie Gao et al.

– 1 round of communication for DS only; lots of practical appeal

– In the worst case very bad, even for UDGs only a √n approximation

5

6

1

9

4

7

2

3

8

Page 40: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 40

Another Algorithm 3: Non-neighboring neighbors

• If a node has neighbors who are not neighbors, join CDS– Proposed by Jie Wu et al.

– Renders a CDS directly

– Almost as bad as choosing all nodes, even for random UDGs

– Only DS algorithm reviewed in several books

– Lots of improvements, also proposed by Jie Wu et al.

?

Page 41: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 41

Another Algorithm 4: Covering connected neighbors

• If higher priority neighbors are connected and cover all other neighbors, then don’t join CDS, else join CDS– This talk, inspired by an improvement of Jie Wu

– 2 rounds of communication for CDS only; lots of practical appeal

– In the worst case very bad, even for UDGs only a √n approximation

– However, on random UDGs, this gives a O(1) approximation

5

6

1

9

4

7

2

3

8

Page 42: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 42

Result Overview

tx / node

qua

lity

O(1)

log

√n

1 2 O(log*) O(log)

General Graph 2

UDG67

UDG4

UDG5

UDG/GPS1

GBG8

UDG = Unit Disk Graph

UBG = Unit Ball Graph

GBG = Growth Bounded G.

/GPS = With Position Info

/D = With Distance InfoLower Bound for General Graphs 9

bet

ter

better

UBG/D3

loglog ?

Page 43: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 43

References

1. Folk theorem, e.g. Kuhn, Wattenhofer, Zhang, Zollinger, PODC 2003

2. Kuhn, Wattenhofer, PODC 2003; improvement submitted• CDS improvement by Dubhashi et al, SODA 2003

3. Kuhn, Moscibroda, Wattenhofer, PODC 2005

4. Alzoubi, Wan, Frieder, MobiHoc 2002

5. Wu and Li, DIALM 1999

6. Gao, Guibas, Hershberger, Zhang, Zhu, SCG 2001

7. This Talk, improving on Wu and Li

8. Kuhn, Moscibroda,Nieberg, Wattenhofer, submitted

9. Kuhn, Moscibroda, Wattenhofer, PODC 2004

Page 44: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 44

More Models

• Random Distribution– for all geometric models

– “Infocom vs. PODC”

• Related Problems– e.g. (Connected) Domatic Partition Moscibroda et al., WMAN 2005

– Facility Location Moscibroda et al., PODC 2005

• Weighted Graph Models– Signal-to-Interference-and-Noise-Ratio (SINR)

• Communication Models– Message Size

– Unstructured Radio Network (no established MAC layer)

Page 45: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 45

Clustering for Unstructured Radio Networks

• “Big Bang” (deployment) of a sensor and/or ad-hoc network:– Nodes wake up asynchronously (very late, maybe)– Neighbors unknown– Hidden terminal problem– No global clock– No established MAC protocol– No reliable collision detection – Limited knowledge of the number of nodes or degree of network.

• We have randomized algorithms that compute DS (or MIS) in polylog(n) time even under these harsh circumstances, where n is an upper bound on the number of nodes in the system.

• [Kuhn, Moscibroda, Wattenhofer @ MobiCom 2004]• [Moscibroda, Wattenhofer @ PODC 2005]

Page 46: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 46

Overview

• Introduction• Clustering

• Conclusions

Page 47: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 47

Big Research Opportunities

Link Layer

Network Layer

Services

Theory/Models

• Clustering (Dominating Sets, etc.)• MAC Layer and Coloring• Topology and Power Control • Interference and Signal-to-Noise-Ratio • Deployment (Unstructured Radio Networks) • New Routing Paradigms (e.g. Link Reversal)• Geo-Routing • Broadcast and Multicast • Data Gathering • Location Services and Positioning • Time Synchronization • Modeling and Mobility • Lower Bounds for Message Passing• Selfish Agents, Economic Aspects, Security

Page 48: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 48

Check yourself: www.dcg.ethz.ch Reading List

Page 49: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005 49

Conclusions & Open Problems

• You don’t have to do algorithms and proofs…– … but it would be good to be aware of them.

• Open Problems and Research Directions– Fast good algorithm (for standard UDG) or new lower bound

– Study problems for models in-between UDG and general graph

– Mobility and dynamics

– Study new models: e.g. SINR

– Real implementations

Page 50: Algorithms for Ad Hoc Networks Roger Wattenhofer MedHocNet 2005 alg hoc net 2005

Roger Wattenhofer, ETH Zurich @ MedHocNet 2005

Questions?Comments?

Thank you for your attention