-
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.
-
Some code revision.
-
The functions
DefineGame[], MaxExcessBalanced[], MinExcessBalanced[], KernelImputationQ[], SuperAdditiveQ[]
andAvConvex[]
have been completely rewritten. For this reason the functions:AvSumCheck[], ContributionSum[]
have been deprecated. -
The function
AverageConvexQ[]
is the same asAvConvexQ[]
, but it allows issuing an option. -
The functions
PreKernelQ[]
andAntiPreKernelQ[]
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.
AverageConvexQ[]
- Fix incorrect computation and a precision problem.DetUCoord[]
- Fix incorrect computation.UnanAvConvexIffCondQ[]
- Fix incorrect computation and a precision problem.AdjustedWorthVectors[]
- Fix incorrect computation.
-
Some general code revision.
-
We added some new functions related to the prenucleolus, like
BalancedSelectionQ[]
. -
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:
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.
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 << Version5Graphics
. All graphical extensions require the Cddmathlink libraries.
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[]
- SeeModifiedNucleolus[]
.LexiCenter[]
- SeeModifiedNucleolus[]
.PreNucleolus[]
- SeeModifiedNucleolus[]
.
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.
-
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.
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.
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).
FindKernelSolution[]
convergence process to the kernel should be now more robust.
Some minor code revision.
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.
An insufficient coloring of the function FilledCoreV6[] caused by an incomplete delaunay triangulation of the Mathematica built-in function DelaunayTriangulation[] has been fixed.
- 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 the
ParaTuGames
package.
Some minor code revision and bug fixes.
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.
- 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.
- 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 calledParaSMPreKernel[]
, andParaIsSMPreKernelQ[]
respectively. - Adding the function
BalancedCollectionQ[]
that should replace in the future the functionBalancedSelectionQ[]
. For n=>4 the function returns incorrect results, probably caused by a bug of theDualLinearProgramming[]
function.
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.
- 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.
- Code revision and optimization. The (anti-)pre-kernel computation is now faster up to a factor 3 in serial as well as in parallel.
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.
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.
Improved exception handling for functions using LinearOptimization
. Performance improving of revised functions in Version 3.
Some minor bug fixes.
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 -- Part of TuGames,
MaxExcessBalanced -- Part of TuGames,
AntiPreKernelQ -- Part of TuGames,
MinExcessBalanced -- Part of TuGames,
ParaPreKernelQ -- Part of ParaTuGames,
ParaMaxExcessBalanced -- Part of ParaTuGames,
ParaAntiPreKernelQ -- Part of ParaTuGames,
ParaMinExcessBalanced -- Part of ParaTuGames.
Improving the performance of PreKernelSolution
.
Some minor bug fixes and code revision.
Functions usage documentation.
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.
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.
Update of the Documentation references pages and adjustment to the paclet system of Mathematica Version 13.0.
Adding the new functions:
ProductGame[]
computes from a weight vector the product game and Harsanyi dividends.ProbabilityGame[]
computes from a weight vector the probability game.HarsanyiValue[]
the Harsanyi value of the game.ShapAirProb[]
calculates the Shapley value from an airport cost allocation problem.TauValAirProb[]
calculates the Tau value from an airport cost allocation problem.NucAirProb[]
calculates the nucleolus from an airport cost allocation problem.
Update of the Documentation references pages.
Adding the new functions:
AirportProblem[]
computes from an airport cost allocation problem the associated cost game.
Fixing Bug related to the Harsanyi dividends in ProductGame[]
, and KernelCalculation[]
related to missing output.
Some minor bug fixes and code revision.
Update of the Documentation references pages. Code Revision for FilledCoreV6 to avoid overlapping labeling.
Adding the new functions:
CddGmpPlotWeberSet[]
calculates while using Cddmathlink2gmp via Mathlink all relevant data to plot the Weber set.CostLocationGame[]
computes from a facility location situation the associated cost location game.EqDistDividends[]
computes the equally distributed dividends of the game, that is, the Shapley value.DualProbabilityGame[]
computes from weights vector the characteristic values of a dual probability game.FilledWeberSetV6[]
plots the Weber set of a three-person game.PlotWeberSet3dV6[]
plots the Weber set of a four-person game.PQNorm[]
computes the PQ-norm from two vectors.
Some minor bug fixes and code revision.