7 maart 1997

es.ele.tue.nl

7 maart 1997

Faculteit Elektrotechniek — Vakgroep ICS

Uitwerking Netwerkmodellen (5J070) 7 maart 1997

OPGAVE 1. basisprogrammeervaardigheden

a. Geef een goede typedefinitie voor knooppunten van de lijst. Noem dit type node.

typedef struct node {

int value;

struct node *next;

} node;

b.

#define N 1000

node *bsort(node *list)

{

int count[N + 1], i;

node *result, *tmp;

}

c.

d.

/* initialize count to 0 */

for(i = 0; i < N + 1; i++)

count[i] = 0;

/* fill count */

for(; list != NULL; list = list–>next)

count[list–>value]++;

/* create result list */

result = NULL;

for(i = 0; i < N + 1; i++)

while(count[i] > 0) {

tmp = malloc(sizeof(node));

tmp–>value = i;

tmp–>next = result;

result = tmp;

count[i]––;

}

return(result);

n£ ¤ ¥

¢

n¡ ¡

¢

e. Bsort heeft een betere tijdscomplexiteit. Hij kan onder de theoretisch limiet voor de tijdscomplexiteit

van sorteren, zoals bereikt door heapsort en mergesort, uit omdat er gege-

(n¡ , met n de lengte van de lijst.

1


tentamen netwerkmodellen van 7 maart 1997

vens bekend zijn over de te sorteren data die het probleem eenvoudiger maken. In dit

geval is dat het feit dat alle waarden uit een eindige verzameling komen. Bsort staat in

de literatuur bekend als bucket sort.

OPGAVE 2. Kortste paden

a. Zie diktaat blz.65.

b. Voor het algoritme van Dijkstra zie het diktaat blz. 66 tot en met 68.

Voor afleiding van de tijdcomplexiteit zie paragraaf 4.4.2.2. op blz. 69 en 70 van het diktaat.

c.

0 ¦

s t u

7

2

2

4

1

3

5

v w x

¦ ¦ ¦

s t u

0

7

7

2

2

4

1

¦ ¦

2

3

5

v w x

s t u

0

7

6

2

2

4

1

¦

2

3

5

5

v w x

2

2

2

¦

2

¦

2

¦

2

2


s t u

0

7

6

2

7

2

4

1

2

3

5

5

10

v w x

s t u

0

7

6

2

7

2

4

1

2

3

5

5

10

v w x

s t u

0

7

6

2

7

2

4

1

2

3

5

5

9

v w x

s t u

0

7

6

2

7

2

4

1

2

3

5

5

9

v w x

2

2

2

2

tentamen netwerkmodellen van 7 maart 1997

2

2

2

2

d. Aangezien de takgewichten allemaal 5 zijn, komt de aangepaste graaf G overeen met een

ongewogen graaf. De kortste paden vanuit source s zijn dus te bepalen met behulp van

BFS. Natuurlijk moet je de afstanden niet telkens met 1, maar met 5 ophogen.

De tijdcomplexiteit van BFS is § (|V| ¨ |E|). Bij het uitvoeren van BFS gebruiken we een

FIFO queue (tijdcomplexiteit § (1)) en geen priority queue (tijdcomplexiteit § (log(V))),

3


tentamen netwerkmodellen van 7 maart 1997

zoals bij Dijkstra, voor het opslaan van de reeds ontdekte, maar nog niet afgewerkte (grijze)

knooppunten.

s t u

0

5 5

5

©

5

5

©

5 5 5

v w x

5

© ©

s t u

0

5

5

5

5

5

5

5

5 5 5

v w x

5

© ©

s t u

0

5

5

5

10

5

5

5

5

5 5 5

v w x

5

© ©

s t u

0

5

5

5

10

5

5

5

5

5 5 5

10

v w x

5

©

©

©

queue : s

queue : t v

queue : v u

queue : u w

4


s t u

0

5

5

5

10

5

5

5

5

5 5 5

v w x

tentamen netwerkmodellen van 7 maart 1997

5

10 15

s t u

0

5

5

5

10

5

5

5

5

5 5 5

5

10 15

v w x

s t u

0

5

5

5

10

5

5

5

5

5 5 5

5

10 15

v w x

OPGAVE 3.

a.

queue : w x

queue : x

queue empty

dorp a b c d e f g h

a 0 6 6 9

b 6 0 7 7

c 6 7 0 6 5 7 8

d 7 6 0 5 5

e 5 0 6

f 5 5 6 0 6

g 7 6 0 7

h 9 8 7 0

5


a

h

9

tentamen netwerkmodellen van 7 maart 1997

6

6

7

8

b

c

g

7

7

b. Dit kun je oplossen met een minimal spanning tree algoritme. In het diktaat wordt daarvoor

het algoritme van Kruskal behandeld.

c. Kies achtereenvolgens takken (d, e), (d, f), (f, c), (f, g), (c, a), (a, b), (g, h), en je hebt een

oplossing met verbindingen zoals door de takken aangegeven, met totale kosten van 40.

Zie dikke takken in plaatje.

OPGAVE 4. netwerkstroommodellen

a. Zie diktaat paragraaf 6.1

b. Zie diktaat paragraaf 6.2.1

c.

5

5

3

3

3

2

3

2

2

2

2

3

2

3

4

1

1

3

2

1

1

1

3

3

1

1

1

17

10

3

14

10

6

10

20

+3

+3

+2

8

6

6

5

7

6

3/3

5

3/5

3/3

5/5

3/3

d

f

2

2

2

5

2

3

1

3/4

2

3/3

1

3/4

2/2

3/3

1

3/4

6

5

1

1

1

10

3/20

10

6/20

2/10

6/20

e


tentamen netwerkmodellen van 7 maart 1997

d. De minimale snede in de graaf (met capaciteit 8 natuurlijk):













5

source 2

1

sink

3

3

1

2

4

e. Het probleem met meerdere bronnen en putten laat zich oplossen door een ”superbron”

toe te voegen, van waaruit takken met oneindige capaciteit naar de oorspronkelijke bronnen

vertrekken. Op dezelfde manier voegen we een ”superput” toe, waarnaartoe van alle

putten een tak met oneidige capaciteit leidt. Nu lossen we het probleem op als eenvoudig

netwerkstroomprobleem met de superbron als bron en de superput als put.

7

10

20

More magazines by this user
Similar magazines