-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
387 lines (258 loc) · 15.7 KB
/
ChangeLog
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
:Title: TuGames.m
:History:
Version 1.0: without options
Version 1.1: with options
Version 1.3:
Minor code revision.
Some robustness problems with the function family ModifiedNucleolus[]
have been fixed, but it is not completely solved. For convex games or inessential games
the solution computed might still be wrong.
Some new functions to compute the pre-kernel, anti-pre-kernel
and some related functions were incorporated. The function names
are PreKernelSolution[] and AntiPreKernelSolution[].
These functions are based on an algorithm that relies on the indirect function
approach to compute pre-kernel solutions. In order to check if the solution is
an anti-pre-kernel, the functions MinExcessBalanced[], AntiPreKernelQ[]
and AllAntiSurpluses[] have been added.
Version 1.5:
Some code revision.
The functions DefineGame[], MaxExcessBalanced[], MinExcessBalanced[],
KernelImputationQ[], SuperAdditiveQ[] and AvConvex[] have been completely rewritten.
For this reason the functions
AvSumCheck[]
ContributionSum[]
have been deprecated.
The function AverageConvexQ[] is the same as AvConvexQ[], but it allows issuing an option.
The functions PreKernelQ[] and AntiPreKernelQ[] have been modified.
Some new functions related to unanimity coordinates have been added.
For instance
DetUCoord[] to get the unanimity coordinates from a set of positive coordinates.
HarsanyiDividends[] provides an alternative approach to compute the
unanimity coordinates (Harsanyi dividends) of the game.
CharacteristicValues[] computes the characteristic values of the game from
the unanimity coordinates.
The functions
UnanConvexQ[]
UnanAvConvexQ[]
provide alternative approaches to check convexity and average-convexity.
Version 1.6:
We added some new functions related to the prenucleolus, like BalancedSelectionQ[].
Bug fixes:
AverageConvexQ[] - Fix incorrect computation and a precision problem.
DetUCoord[] - Fix incorrect computation.
UnanAvConvexIffCondQ[] - Fix incorrect computation and a precision problem.
AdjustedWorthVectors[] - Fix incorrect computation.
Modification:
Some general code revision.
First code adjustment to use this package in parallel.
Furthermore, some basic functions can now be called within a running Matlab session while
using our Matlab toolbox MatTuGames, which is available from the following URL:
http://www.mathworks.cn/matlabcentral/fileexchange/35933?product=EL
Version 1.7:
Bug fixes:
PreKernelElement[] - Fix a precision problem.
KernelVertices[] - Fix a precision problem.
DirectionOfImprovement[] - Fix a precision problem.
MaxExcessBalanced[] - Fix a precision problem.
MinExcessBalanced[] - Fix a precision problem.
KernelImputationQ[] - Fix a precision problem.
KernelImputationListQ[] - Fix a precision problem.
ModifiedNucleolus[] - Fix incorrect computation with games having empty core.
ModifiedKernel[] - Fix incorrect computation with games having empty core.
LexiCenter[] - Fix incorrect computation with games having empty core.
PreNucleolus[] - Fix incorrect computation with games having empty core.
Modification:
The parallel mode has been optimized. For more details see the README file and/or
the notebook file TuGamesParallel.nb in the Documentation folder.
Tested up to 32 SubKernels. For running even the cddmathlink libraries in parallel see
the explanation in the README file and/or for an example the notebook file
TuGamesMovieParaModeV6.nb in the Documentation directory.
To keep track our package with the new graphic concept of Mathematica 6.x and higher,
the following functions have been added or modified to depict solutions for three-person games:
AnimationKernelProperty2d[] - new function, dedicated for Mathematica 6.x and higher only!
StrongEpsCore2d[] - new function, dedicated for Mathematica 6.x and higher only!
FilledCoreV6[] - is an upgrade of FilledCore[] for version 6.x and higher.
The graphical functions to plot game solutions for four-person games reside in the package
IOTuGamesV6.m. To use the old graphic concept one has to load the package IOTuGames.m
in connection with << Version5`Graphics`.
All graphical extensions require the cddmathlink libraries.
Version 1.8:
ModifiedNucleolus[] - Complete code revision to get rid of large round-off errors.
We use now a fast simplex method instead of an interior point
method to increase its reliability.
ModifiedKernel[] - See ModifiedNucleolus[].
LexiCenter[] - See ModifiedNucleolus[].
PreNucleolus[] - See ModifiedNucleolus[].
The behavior of these functions have changed. Options are obsolete now. ModifiedNucleolus[] does
not compute anymore the pre-nucleolus for inessential games, it returns the empty set instead.
Version 2.2:
Transcription of the old option rules to the new ones invented by Mathematica 8.x.
This package is now exclusively dedicated to Mathematica version 8.x and higher.
FilledCore[] is deprecated now. Using the old graphic concept Version 1.8 is required.
Version 2.3:
Modification:
Change protected command SubsetQ[] to SubSetQ[] from the VertexEnum package. Order is
reversed to SubsetQ[] which is new in Mathematica version 10.x.
Some minor code revision.
New Functions:
MLExtension[] - Computes the multilinear extension of the game.
ShapleyValueML[] - Computes the Shapley value from the multilinear extension of the game.
PreKernel[] - Computes a pre-kernel point by Algorithm 8.2.1 of Meinhardt (2013).
Bug fixes:
FindKernelSolution[] convergence process to the kernel should be now more robust.
Version 2.4:
Some minor code revision.
Version 2.5:
Adding the function ApproxNuc[] to compute the (p, k)-nucleolus which is an approximation of
the nucleolus by a non-linear optimization approach, i.e., minimizes a p-norm. The function
NonLinNuc[] is based on this function to compute the nucleolus. We extended this idea to the
pre-nucleolus through the commands ApproxPreNuc[] and NonLinPreNuc[]. In addition, we added
the least square computation of the (pre-)nucleolus by the functions LSNuc[] and LSPreNuc[].
Functions to compute the barycenter of the extreme points of the core, dual cover game,
dual extension, primal extension, modiclus, a proper modified pre-kernel element,
potential of a game, the Lorenz solution, and Dutta-Ray solution for convex games
have been added.
Bug fixes:
An insufficient coloring of the function FilledCoreV6[] caused by an incomplete delaunay
triangulation of the Mathematica built-in function DelaunayTriangulation[] has been fixed.
Version 2.5.1:
Installation procedure has changed. The package is now distributed as a Paclet. The documentation
was revised and extended. About 230 pages were added to the documentation. The error
handling of functions was improved.
The functions to compute the modiclus and related solutions have been parallelized, and are part
of the ParaTuGames package.
Some minor code revision and bug fixes.
Version 2.5.2:
We have revised the Installation procedure of the Cddmathlink library, which makes it not any more necessary
to explicitly formulate some conditions for all operating systems. Moreover, some default binaries for RHEL 7.5
and Mathematica 11.3 ship now with the package. Alternatively, we also added some for RHEL systems for
Mathematica 10 and later. These binaries must be copied into the pre-specified folder.
Some minor code revision and bug fixes.
Version 2.5.3:
Adding some binaries for Mathematica 10.0 or later on OS X 10.9 or later. We are very grateful
to Szabolcs Horvát for providing these to the community.
Change of the License to the MIT License terms.
Version 2.5.4:
Functions to compute and to verify the simplified modified pre-kernel/nucleolus are added. They are called
SMPrenucleolus[],IsSMPrenuceolusQ[],SMPreKernel[],IsSMPreKernelQ[]. For the last two commands we implemented
parallel counterparts called ParaSMPreKernel[], and ParaIsSMPreKernelQ[] respectively.
Adding the function BalancedCollectionQ[] that should replace in the future the function BalancedSelectionQ[].
For n=>4 the function returns incorrect results, probably caused by a bug of the DualLinearProgramming[] function.
Example of incorrect results:
Consider the collection of sets given by
cS4={{1}, {2}, {3}, {1, 2}, {1, 3}, {2, 4}, {3, 4}, {2, 3, 4}};
then the return value is false
In[29]:= First[BalancedSystemQ[cS4, Range[4]]]
Out[29]= False
However, the system is balanced, since the balancing weights are given by
whgs = {3,1,1,1,1,2,2,1}/5
Related to this context we provide the function BalancedInequalityQ[] to check whether a balanced system
satisfies a balanced inequality of a TU-game. Notice that if all balanced systems satisfying this property
non-emptiness of the core is guaranteed. Recall that for n=4 we need to check 9 equivalence classes, however,
for n=6 we have to check 158 classes.
Version 2.6.0:
Adding functions to compute the Chi-Value, EPSD-Value, Gately-Value, PD-Value, and the nucleolus by the Leng and Parlar (2010) formulae for three-person
zero-normalized and super-additive games. Changing the package extension from *.m to *.wl.
Performing some code maintenance and minor bug fixes.
Version 2.6.1:
Code revision and optimization. The (anti-)pre-kernel computation is now faster up to a factor 3 in serial as well as in parallel.
Version 2.6.2:
Adding functions:
- AlmostConvexQ[] to check if the game is almost convex.
- AlmostConcaveQ[] to check if the game is almost concave.
- ADMCGameQ[] to check the property if the game satisfies almost diminishing marginal contributions.
- AIMCGameQ[] to check the property if the game satisfies almost increasing marginal contributions.
- kConvexity[] to check if the game is k-convex.
- EANSCValue[] to compute the Equal Allocation of Non-Separable Contribution/Cost value.
Revised the functions:
ConvexQ[], ConcaveQ[], Nuc1convex[].
Minor Bug fixes and code revision.
Version 3.0.0:
Not any more backward compatible to Mathematica versions smaller than 12 due to the port
to the new collection of algorithms for solving convex problems introduced in version 12.
ConstrainedMax/ConstrainedMin and LinearProgramming/DualLinearProgramming are replaced by LinearOptimization.
This replacement has been conducted for the following functions:
Nucleolus -- Part of CooperativeGames. Function originally written by M. Carter.
LeastCoreAux -- Part of CooperativeGames. Function originally written by M. Carter.
ModifiedNucleolus -- Part of TuGames.
ModifiedKernel -- Part of TuGames.
PreNucleolus -- Part of TuGames.
LexiCenter -- Part of TuGames.
Modiclus -- Part of TuGames.
IsModiclusQ -- Part of TuGames.
Kernel -- Part of TuGames.
KernelCalculation -- Part of TuGames.
BalancedInequalityQ -- Part of TuGames.
BalancedCollectionQ -- Part of TuGames.
EpsCore -- Part of TuGames.
FirstCriticalVal -- Part of TuGames.
DeltaLP -- Part of TuGames.
FeasibleConstraints -- Part of TuGames.
KernelVertices -- Part of TuGames.
SolvePrimal -- Part of TuGamesAux.
SolveDual -- Part of TuGamesAux.
BalancedSystemQ -- Part of TuGamesAux.
ParaModiclus -- Part of ParaTuGames.
ParaIsModiclus -- Part of ParaTuGames.
New added functions are:
WeaklyBalancedCollectionQ -- Part of TuGames.
WeaklyBalancedSystemQ -- Part of TuGamesAux.
The function WeaklyBalancedCollectionQ replaces WeaklyBalancedSelectionQ, the latter will be deprecated in a future version.
Version 3.0.1:
Improved exception handling for functions using LinearOptimization. Performance improving of revised functions in Version 3.
Some minor bug fixes.
Version 3.0.2:
Adjusting the functions
ApproxPreNuc -- Part of TuGames,
ApproxNuc -- Part of TuGames,
DuttaRay -- Part of TuGames,
LorenzSolution -- Part of TuGames,
NonLinPreNuc -- Part of TuGames,
NonLinNuc -- Part of TuGames,
PreKernelSolution -- Part of TuGames
to the new set of optimization algorithms.
Adding options to the functions PreKernelQ, MaxExcessBalanced, AntiPreKernelQ, MinExcessBalanced, ParaPreKernelQ, ParaMaxExcessBalanced, ParaAntiPreKernelQ, ParaMinExcessBalanced.
Improving the performance of PreKernelSolution.
Some minor bug fixes and code revision.
Version 3.0.3:
1. Revision
Functions usage documentation.
2. Modification
2.1 Adding the new functions:
- VetoRichPlayers[] determining the set of veto players.
- DecomposeInPositiveGames[] decomposes a TU game into positive games, i.e., convex games.
- AvConcaveQ[] checking if the game is average-concave.
- AverageConcaveQ[] checking if the game is average-concave.
- AlmostAverageConvexQ[] checking if the game is almost average-convex.
- AlmostAverageConcaveQ[] checking if the game is almost average-concave.
- PositiveGameQ[] checking if the game is positive, i.e., convex.
- SemiConvexQ[] checking if the game is semi-convex.
3. Bug Fixes
Fixing Bug in AnimationKernelProperty2d with the FigureSize option in Manipulate.
Fixing an issue in ModifiedNucleolus and ModifiedKernel w.r.t. the boundary Infinity, which was replaced by 1000*v[T].
Some minor bug fixes and code revision.
Version 3.1.0:
1. Revision
Update of the Documentation references pages and adjustment to the paclet system of Mathematica Version 13.0.
Version 3.1.1:
1. Modification
Adding the new functions:
ProductGame, ProbabilityGame, HarsanyiValue, ShapAirProb, TauValAirProb, NucAirProb.
Version 3.1.2:
1. Revision
Update of the Documentation references pages.
2. Modification
Adding the new functions:
AirportProblem.
3. Bug Fixes
Fixing Bug related to the Harsanyi dividends in ProductGame and KernelCalculation related to missing output.
Some minor bug fixes and code revision.
Version 3.1.4:
1. Revision
Update of the Documentation references pages.
Code Revision for FilledCoreV6 to avoid overlapping labeling.
2. Modification
Adding the new functions:
FilledWeberSetV6, PlotWeberSet3dV6, CddGmpPlotWeberSet, EqDistDividends, CostLocationGame, DualProbabilityGame, PQNorm.
3. Bug Fixes
Some minor bug fixes and code revision.