-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmatrix_question.g
More file actions
121 lines (113 loc) · 4.1 KB
/
matrix_question.g
File metadata and controls
121 lines (113 loc) · 4.1 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
gens := [
Matrix(IsMaxPlusMatrix,
[
[0, -infinity, -infinity, -infinity, 1],
[-infinity, 0, -infinity, -infinity, 1],
[-infinity, -infinity, 0, -infinity, 1],
[-infinity, -infinity, -infinity, -infinity, 1],
[-infinity, -infinity, -infinity, -infinity, 0]]),
Matrix(IsMaxPlusMatrix,
[
[0, -infinity, -infinity, 1, 1],
[-infinity, 0, -infinity, 1, 1],
[-infinity, -infinity, 0, 1, 1],
[-infinity, -infinity, -infinity, 0, -infinity],
[-infinity, -infinity, -infinity, -infinity, 0]]),
Matrix(IsMaxPlusMatrix,
[
[0, -infinity, 1, 1, 1],
[-infinity, 0, 1, 1, 1],
[-infinity, -infinity, 0, -infinity, -infinity],
[-infinity, -infinity, -infinity, 0, -infinity],
[-infinity, -infinity, -infinity, -infinity, 0]]),
Matrix(IsMaxPlusMatrix,
[
[0, 1, 1, 1, 1],
[-infinity, 0, -infinity, -infinity, -infinity],
[-infinity, -infinity, 0, -infinity, -infinity],
[-infinity, -infinity, -infinity, 0, -infinity],
[-infinity, -infinity, -infinity, -infinity, 0]])
];
gens = [
Matrix(MatrixKind.MaxPlus,
[
[0, NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 1],
[NEGATIVE_INFINITY, 0, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 1],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0, NEGATIVE_INFINITY, 1],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 1],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0]]),
Matrix(MatrixKind.MaxPlus,
[
[0, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 1, 1],
[NEGATIVE_INFINITY, 0, NEGATIVE_INFINITY, 1, 1],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0, 1, 1],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0, NEGATIVE_INFINITY],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0]]),
Matrix(MatrixKind.MaxPlus,
[
[0, NEGATIVE_INFINITY, 1, 1, 1],
[NEGATIVE_INFINITY, 0, 1, 1, 1],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0, NEGATIVE_INFINITY, NEGATIVE_INFINITY],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0, NEGATIVE_INFINITY],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0]]),
Matrix(MatrixKind.MaxPlus,
[
[0, 1, 1, 1, 1],
[NEGATIVE_INFINITY, 0, NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0, NEGATIVE_INFINITY, NEGATIVE_INFINITY],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0, NEGATIVE_INFINITY],
[NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, NEGATIVE_INFINITY, 0]])
]
# gap> Display(gens);
# 0 -∞ -∞ -∞ 1
# -∞ 0 -∞ -∞ 1
# -∞ -∞ 0 -∞ 1
# -∞ -∞ -∞ -∞ 1
# -∞ -∞ -∞ -∞ 0
# 0 -∞ -∞ 1 1
# -∞ 0 -∞ 1 1
# -∞ -∞ 0 1 1
# -∞ -∞ -∞ 0 -∞
# -∞ -∞ -∞ -∞ 0
# 0 -∞ 1 1 1
# -∞ 0 1 1 1
# -∞ -∞ 0 -∞ -∞
# -∞ -∞ -∞ 0 -∞
# -∞ -∞ -∞ -∞ 0
# 0 1 1 1 1
# -∞ 0 -∞ -∞ -∞
# -∞ -∞ 0 -∞ -∞
# -∞ -∞ -∞ 0 -∞
# -∞ -∞ -∞ -∞ 0
S := Semigroup(gens);
F := FreeMonoid("a", "b", "c", "d");
AssignGeneratorVariables(F);;
R := [
[b * a * c, b * c * a],
[a * c * b, c * a * b],
[b * a * d, b * d * a],
[a * d * b, d * a * b],
[c * a * d, c * d * a],
[a * d * c, d * a * c],
[c * b * d, c * d * b],
[b * d * c, d * b * c],
[b * a * a, a * b * a],
[b * b * a, b * a * b],
[c * a * a, a * c * a],
[c * c * a, c * a * c],
[c * b * b, b * c * b],
[c * c * b, c * b * c],
[d * a * a, a * d * a],
[d * d * a, d * a * d],
[d * b * b, b * d * b],
[d * d * b, d * b * d],
[d * c * c, c * d * c],
[d * d * c, d * c * d],
[a * a, a],
[b * b, b],
[c * c, c],
[d * d, d]
];
Sty4 := F / R;
Size(S);
Size(Sty4);