-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsolver.c
More file actions
76 lines (66 loc) · 1.58 KB
/
solver.c
File metadata and controls
76 lines (66 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
* solver.c - Hauptprogramm.
*
* (C) 2004 Ulrich Staerk
*
* Startet die Funktionen zum Einlesen des Graphen,
* zur Berrechnung der Basisloesung und zur Optimierung
* dieser.
*/
#include "solver.h"
int main(void)
{
int i=0;
problem *p = readparameters(&nodes,&edges);
if(!p) {
printf("readparameters failed.");
exit(1);
}
printf("Knoten:\t\t%4d\n Angebot:\t%4d\n Nachfrage:\t%4d\nKanten:\t\t%4d\n\n",nodes,p->angebot,p->nachfrage,edges);
readgraph(p);
printf("Kosten auf Kanten nach dem Einlesen:\n\n");
printgraph(p);
matrix *x = newmatrix(p->angebot,p->nachfrage);
/* Solange noch Spalten oder Zeilen vorhanden, Kante waehlen,
* in die Basisloesung aufnehmen und Vogel-Werte neu berechnen. */
/*
for(i=0; i < p->angebot+p->nachfrage-1; i++)
{
waehlekante_vogel(p,x);
vogel(p);
}
printf("\n\nBasislösung nach Vogel:\n\n");
printmatrix(x);
p = readparameters(&nodes,&edges);
readgraph(p);
x = newmatrix(p->angebot,p->nachfrage);
*/
for(i=0; i < p->angebot+p->nachfrage-1; i++)
{
waehlekante_nwe(p,x);
}
printf("\n\nBasislösung nach Nordwest-Ecken-Regel:\n\n");
printmatrix(x);
/*
p = readparameters(&nodes,&edges);
readgraph(p);
x = newmatrix(p->angebot,p->nachfrage);
for(i=0; i < p->angebot+p->nachfrage-1; i++)
{
waehlekante_mkk(p,x);
}
printf("\n\nBasislösung nach Methode der kleinsten Kosten:\n\n");
printmatrix(x);
*/
/* Stepping stone */
/*
stepstone(x,p);
printf("\n\nBasislösung nach Stepping Stone:\n\n");
printmatrix(x);
*/
/* Modi */
modi(p,x);
printf("\n\nBasislösung nach Modi:\n\n");
printmatrix(x);
return 0;
}