From 4473686ea6d91c4ee732faaae43ecaf893669a16 Mon Sep 17 00:00:00 2001 From: Holger Ingmar Meinhardt Date: Wed, 6 May 2020 18:25:00 +0200 Subject: [PATCH] v2.6.1 --- ChangeLog | 7 +- ChangeLog.md | 273 ++++---- LICENSE.md | 2 +- LICENSE.txt | 4 +- PacletInfo.m | 2 +- ParaTuGames.nb | 768 ++++++++++++++--------- ParaTuGames.wl | 104 +++- README | 20 +- README.md | 24 +- TuGames.nb | 1610 +++++++++++++++++++++++++++--------------------- TuGames.wl | 164 +++-- 11 files changed, 1725 insertions(+), 1253 deletions(-) diff --git a/ChangeLog b/ChangeLog index c370d8e..747215a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -217,8 +217,13 @@ for n=6 we have to check 158 classes. - Version 2.6.0: + 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 parallel. diff --git a/ChangeLog.md b/ChangeLog.md index 254e2cb..b073c26 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,228 +1,249 @@ +[![GitHub (pre-)release](https://img.shields.io/github/release/himeinhardt/TuGames/all.svg)](https://github.com/himeinhardt/TuGames/releases) # :Title: TuGames -## :History: +## :Version History: ### Version 1.0: without options ### Version 1.1: with options ### Version 1.3: - Minor code revision. +1. Code Revision: +* Minor code revision. - Some robustness problems with the function family ModifiedNucleolus[] +* 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 +2. Modification: + + Some new functions to compute the pre-kernel, anti-pre-kernel and some related functions were incorporated. The function names - are PreKernelSolution[] and AntiPreKernelSolution[]. + 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. + an anti-pre-kernel, the functions `MinExcessBalanced[], AntiPreKernelQ[]` + and `AllAntiSurpluses[]` have been added. ### Version 1.5: - Some code revision. +1. Code Revision: +* 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 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 to issue an option. +* The function `AverageConvexQ[]` is the same as `AvConvexQ[]`, but it allows to issue an option. - The functions PreKernelQ[] and AntiPreKernelQ[] have been modified. +* 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 +2. Modification: + + 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. +* 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: +1. 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. + +2. Modification: + +* Some general code revision. - Some general code revision. +* We added some new functions related to the prenucleolus, like `BalancedSelectionQ[]`. - First code adjustment to use this package in parallel. +* 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: - [MatTuGames](http://www.mathworks.cn/matlabcentral/fileexchange/35933?product=EL) +* 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: + + [MatTuGames](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: +1. 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. + +2. 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. + 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. -``` + + * `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 + `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. + All graphical extensions require the *Cddmathlink* libraries. ### Version 1.8: -``` - ModifiedNucleolus[] - Complete code revision to get rid of large round-off errors. +1. Revision: + * `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 + * `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. +1. Modification: + + * 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. -``` + * `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. +1. Modification: - Some minor code revision. -``` - New Functions: - MLExtension[] - Computes the multi-linear extension of the game. - ShapleyValueML[] - Computes the Shapley value from the multi-linear extension of the game. - PreKernel[] - Computes a pre-kernel point by Algorithm 8.2.1 of Meinhardt (2013). + Change protected command `SubsetQ[]` to `SubSetQ[]` from the VertexEnum package. Order is + reversed to `SubsetQ[]` which is new in Mathematica version 10.x. + +2. Revision: + + Some minor code revision. + +3. New Functions: + * `MLExtension[]` - Computes the multi-linear extension of the game. + * `ShapleyValueML[]` - Computes the Shapley value from the multi-linear extension of the game. + * `PreKernel[]` - Computes a pre-kernel point by Algorithm 8.2.1 of Meinhardt (2013). + +4. Bug fixes: + + * `FindKernelSolution[]` convergence process to the kernel should be now more robust. - Bug fixes: - FindKernelSolution[] convergence process to the kernel should be now more robust. -``` ### Version 2.4: +1. Revision: - Some minor code revision. + Some minor code revision. ### Version 2.5 +1. Modification: - Adding the function ApproxNuc[] to compute the (p,k)-nucleolus which is an approximation of + 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[]. + `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, + 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 +2. 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 +1. Modification: - Installation procedure has changed. The package is now distributed as a Paclet. The documentation + * 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. - The functions to compute the modiclus and related solutions have been parallelized, and are part - of the ParaTuGames package. +2. Bug fixes: - Some minor code revision and bug fixes. + Some minor code revision and bug fixes. ### Version 2.5.2 +1. Modification: - We have revised the Install procedure of the Cddmathlink library, which makes it not anymore 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. + We have revised the Install procedure of the *Cddmathlink* library, which makes it not anymore 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. +2. Bug fixes: - Some minor code revision and bug fixes. + Some minor code revision and bug fixes. ### Version 2.5.3 +1. Modification: - Adding some binaries for Mathematica 10.0 or later on OS X 10.9 or later. We are very grateful + * 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. + * Change of the License to the MIT License terms. ### Version 2.5.4 +1. Modification: +* 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. - 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: +2. Example of incorrect results: - Consider the collection of sets given by + 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 + 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 + 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 + + 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 +### Version 2.6.0 +1. Modification: + + * 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. +2. Bug fixes and Revision: + + * Performing some code maintenance and minor bug fixes. + +### Version 2.6.1 + +1. Revision: + + * Code revision and optimization. The (anti-)pre-kernel computation is now faster up to a factor 3 in serial as well as parallel. diff --git a/LICENSE.md b/LICENSE.md index 01dd9c0..dc62597 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ # MIT License -## Copyright (c) 2019, Holger I. Meinhardt +## Copyright (c) 2019-20, Holger I. Meinhardt Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/LICENSE.txt b/LICENSE.txt index fc7a816..31693fe 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,9 +1,9 @@ MIT License -Copyright (c) 2019, Holger I. Meinhardt +Copyright (c) 2019-20, Holger I. Meinhardt Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/PacletInfo.m b/PacletInfo.m index 92b1dfb..467b8e2 100644 --- a/PacletInfo.m +++ b/PacletInfo.m @@ -1,6 +1,6 @@ Paclet[ Name -> "TUG", - Version -> "2.6.0", + Version -> "2.6.1", MathematicaVersion -> "10+", Description -> "A Mathematica Package for Cooperative Game Theory", Creator -> "Holger Ingmar Meinhardt ", diff --git a/ParaTuGames.nb b/ParaTuGames.nb index ec7f379..339e48d 100644 --- a/ParaTuGames.nb +++ b/ParaTuGames.nb @@ -10,10 +10,10 @@ NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 158, 7] -NotebookDataLength[ 174671, 4412] -NotebookOptionsPosition[ 169804, 4351] -NotebookOutlinePosition[ 170196, 4367] -CellTagsIndexPosition[ 170153, 4364] +NotebookDataLength[ 181250, 4588] +NotebookOptionsPosition[ 176190, 4525] +NotebookOutlinePosition[ 176582, 4541] +CellTagsIndexPosition[ 176539, 4538] WindowFrame->Normal*) (* Beginning of Notebook Content *) @@ -25,7 +25,7 @@ Cell[BoxData[ RowBox[{"ParaTuGames", ".", RowBox[{"m", "\n", " ", ":", " ", RowBox[{"Release", " ", "Date"}], " ", ":", " ", - RowBox[{"21.04", ".2020"}], "\n", " ", ":", " ", + RowBox[{"05.05", ".2020"}], "\n", " ", ":", " ", RowBox[{"Preliminary", " ", "version"}], ":", "\n", " ", RowBox[{"For", " ", "testing", " ", RowBox[{"only", "."}]}]}]}]}], "\n", "*)"}], "\n", @@ -59,7 +59,7 @@ Cell[BoxData[ RowBox[{"karlsruhe", ".", "de"}]}]}], "\n", "*)"}], "\n", "\n", RowBox[{"(*", " ", RowBox[{":", - RowBox[{"Package", " ", "Version"}], ":", " ", "0.5"}], " ", "*)"}], + RowBox[{"Package", " ", "Version"}], ":", " ", "0.6"}], " ", "*)"}], "\n", "\n", RowBox[{"(*", " ", "\n", " ", RowBox[{ @@ -198,8 +198,8 @@ Cell[BoxData[ RowBox[{"Ed", "."}], ")"}], ".", " ", "Economics"}], " ", "and", " ", "Financial", " ", "Modeling", " ", "with", " ", "Mathematica"}], ",", " ", "\n", " ", "Springer", ",", " ", "1992."}], " ", "\n", - "*)"}]}]}]], "Code",ExpressionUUID->"a4c41654-76f8-40ed-9398-\ -df345e77e1de"], + "*)"}]}]}]], "Code",ExpressionUUID->"1087828b-fc99-4b35-828e-\ +6b08b9c46110"], Cell[BoxData[ RowBox[{ @@ -268,7 +268,7 @@ Algorithm 8.2.1 of Meinhardt (2013))\>\""}], ";"}], "\n", "\n", "\"\\""}], - ";"}]}]}]], "Code",ExpressionUUID->"a5c357a7-4f2e-4219-a69b-f9e7d946b870"], + ";"}]}]}]], "Code",ExpressionUUID->"bdba1060-b347-4b5a-add6-258b4531de51"], Cell[BoxData[{ RowBox[{ @@ -289,16 +289,16 @@ original game. Do not confound this command\n with the function \ ModfiedNucleolus[]. The algorithm is based on a method by Peleg to translate\n\ the definition of the Nucleolus into a sequence of linear programs on the \ pre-imputation set.\n A simplex method is now used to increase its \ -computational reliability.\>\""}], ";"}]}], "Code",ExpressionUUID->"4eb1c92a-\ -da3c-4811-a12d-a47d817f65cb"], +computational reliability.\>\""}], ";"}]}], "Code",ExpressionUUID->"1201d36a-\ +047b-44fb-a128-b3a7abc18f46"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ParaIsModiclusQ", "::", "usage"}], " ", "=", " ", "\n", "\"\\""}], ";"}]], "Code",ExpressionUUID->"a901925c-\ -481d-4bb1-82d0-45bf77da92f6"], +the modiclus of the game.\>\""}], ";"}]], "Code",ExpressionUUID->"3a1e03a4-\ +5092-4423-94a0-8ae8f5fe8bd3"], Cell[BoxData[{ RowBox[{ @@ -342,7 +342,7 @@ the game.\>\""}], ";"}], "\n"}], "\n", RowBox[{"ParaIsSMPreKernelQ", "::", "usage"}], " ", "=", " ", "\n", "\"\\""}], ";"}], "\n"}], "Code",ExpressionUUID->\ -"e89cb5d4-6f5a-4383-8b2c-174b0529ea11"], +"8888320a-afa5-407b-95c2-5a6706199240"], Cell[BoxData[ RowBox[{ @@ -351,7 +351,7 @@ Cell[BoxData[ "\"\\""}], ";"}]], "Code",ExpressionUUID->\ -"0741bdc8-9faa-4eb8-aa21-18f563b8b076"], +"9a199b9a-60fe-48a7-a199-72a12ce805dd"], Cell[BoxData[ RowBox[{ @@ -364,7 +364,7 @@ reflects how the best arguments are distributed between a\n bargaining pair \ favor\n of the player i, zero means that the arguments are balanced, and a \ minus sign indicates that the\n arguments are skewed in favor of the player \ j. See also Meinhardt (2013).\>\""}], ";"}]], "Code",ExpressionUUID->\ -"849bc064-002a-42d4-9314-f84d2deee6b9"], +"b23cf027-fd5d-4d2c-bb0c-9da5570af393"], Cell[BoxData[{ RowBox[{ @@ -393,7 +393,7 @@ parallel.\>\""}], ";"}], "\n"}], "\n", RowBox[{"ParaCharacteristicValues", "::", "usage"}], " ", "=", "\n", "\"\\ -\""}], ";"}]}], "Code",ExpressionUUID->"5261b491-2d6b-465a-b889-b8037e68a920"], +\""}], ";"}]}], "Code",ExpressionUUID->"5eb10982-a4f5-4fda-989f-696d77f6d933"], Cell[BoxData[{ RowBox[{ @@ -526,7 +526,7 @@ Cell[BoxData[{ RowBox[{"SetSharedFunction", "[", "ParaTIJsets", "]"}], ";"}], "\n", RowBox[{ RowBox[{"SetSharedFunction", "[", "ParaW", "]"}], ";"}]}], "Code",Expression\ -UUID->"420e451a-e524-433a-988b-f650f2e395b4"], +UUID->"df595de5-8bc8-4d39-9c8f-670af4c8f7dc"], Cell[BoxData[ RowBox[{ @@ -581,7 +581,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"ParaSuperAdditiveQ", "::", "argerr"}], "=", "\"\\""}], ";"}]}]}]], "Code",ExpressionUUID\ -->"12b46d3a-f63b-4a53-9ef9-89706bbf6d50"], +->"6b53b2b6-f295-4ab3-b498-32ae6466cfa5"], Cell[BoxData[ RowBox[{ @@ -641,7 +641,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"ParaSetsToVec", "::", "argerr"}], "=", "\"\\""}], ";"}]}]}]], "Code",ExpressionUU\ -ID->"b0708904-2b36-40f7-b499-1312565f3780"], +ID->"3edc3091-2dc1-4003-b9d1-646feb7d64e4"], Cell[BoxData[ RowBox[{ @@ -652,8 +652,12 @@ Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ParaMaxSurplus", "::", "argerr"}], "=", - "\"\\""}], ";"}], "\n", "\n"}]}]], "Code",\ -ExpressionUUID->"62d206eb-1151-4c32-881e-8dd14ce56861"], + "\"\\""}], ";"}], "\n", + RowBox[{ + RowBox[{ + RowBox[{"ParaAntiSurplus", "::", "argerr"}], "=", + "\"\\""}], ";"}], "\n"}]}]], "Code",Expre\ +ssionUUID->"cd2d406c-1305-4b09-8770-d8093584327a"], Cell[BoxData[ RowBox[{ @@ -699,8 +703,8 @@ Cell[BoxData[ RowBox[{"Length", "[", "T", "]"}]}]}], ";", "\n", " ", RowBox[{"ParaPreKernel", "[", RowBox[{"game", ",", "pay", ",", "opts"}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"9840ed6c-cf93-46bf-9b09-\ -1927903b403a"], + "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"239c8834-9ca3-4b2b-b137-\ +1f4598f40cd5"], Cell[BoxData[{ RowBox[{ @@ -724,7 +728,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"Length", "[", "T", "]"}], " ", ">", " ", "11"}], ",", - "256", ",", "156"}], "]"}]}], ";", "\n", " ", + "1024", ",", "256"}], "]"}]}], ";", "\n", " ", RowBox[{"Which", "[", RowBox[{ RowBox[{ @@ -864,8 +868,8 @@ Cell[BoxData[{ ";", "\n", " ", RowBox[{"ParaPreKernelAlg2", "[", RowBox[{"game", ",", "xvec", ",", "opts"}], "]"}]}]}], "]"}]}]}], - " ", "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->"16b3684d-\ -77fe-4461-b895-2f8192fbf2db"], + " ", "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->"9088010e-\ +ff2a-4351-bda9-72d47a907fe7"], Cell[BoxData[ RowBox[{ @@ -932,7 +936,7 @@ Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"Length", "[", "T", "]"}], " ", ">", " ", "11"}], ",", - "256", ",", "156"}], "]"}]}], ";", "\n", " ", + "1024", ",", "256"}], "]"}]}], ";", "\n", " ", RowBox[{"Which", "[", RowBox[{ RowBox[{ @@ -1087,7 +1091,7 @@ Cell[BoxData[ RowBox[{"Silent", " ", "->", " ", "sil"}], ",", " ", RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}]}], "]"}]}]}], " ", "\n", "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->\ -"75b66010-f974-4f48-9d84-6eda86d2212d"], +"837c57ae-2f0d-4cd3-b24d-4409858a4db5"], Cell[BoxData[{ RowBox[{ @@ -1100,123 +1104,125 @@ Cell[BoxData[{ "$Failed"}], ")"}]}], ";"}], "\n", RowBox[{ RowBox[{ - RowBox[{ - RowBox[{"ParaDirectionOfImprovement", "[", - RowBox[{"game_", ",", " ", "payoff_List", ",", " ", - RowBox[{"opts", ":", - RowBox[{"OptionsPattern", "[", "ParaDirectionOfImprovement", "]"}]}]}], - "]"}], " ", ":=", " ", "\n", - RowBox[{"Block", "[", + RowBox[{"ParaDirectionOfImprovement", "[", + RowBox[{"game_", ",", " ", "payoff_List", ",", " ", + RowBox[{"opts", ":", + RowBox[{"OptionsPattern", "[", "ParaDirectionOfImprovement", "]"}]}]}], + "]"}], " ", ":=", " ", "\n", + RowBox[{"Module", "[", + RowBox[{ + RowBox[{"{", + RowBox[{ + "sil", ",", " ", "smc", ",", " ", "optst", ",", " ", "meff", ",", " ", + "matE", ",", " ", "mopt", ",", "matQ", ",", " ", "matP", ",", " ", + "varpay", ",", " ", "mex", ",", " ", "submex", ",", " ", "setpay", ",", + " ", "grmex", ",", " ", "doi", ",", " ", "optstep", ",", "pinv"}], + "}"}], ",", "\n", " ", RowBox[{ - RowBox[{"{", - RowBox[{ - "sil", ",", " ", "smc", ",", " ", "optst", ",", " ", "meff", ",", " ", - "matE", ",", " ", "mopt", ",", "matQ", ",", " ", "matP", ",", " ", - "varpay", ",", " ", "mex", ",", " ", "submex", ",", " ", "setpay", - ",", " ", "grmex", ",", " ", "doi", ",", " ", "optstep", ",", - "pinv"}], "}"}], ",", "\n", " ", + RowBox[{"sil", " ", "=", " ", + RowBox[{"OptionValue", "[", "Silent", "]"}]}], ";", "\n", " ", + RowBox[{"smc", " ", "=", " ", + RowBox[{"OptionValue", "[", "SmallestCardinality", "]"}]}], ";", "\n", + " ", + RowBox[{"optst", " ", "=", " ", + RowBox[{"OptionValue", "[", "CalcStepSize", "]"}]}], ";", "\n", " ", + RowBox[{"pinv", " ", "=", " ", + RowBox[{"OptionValue", "[", "PseudoInv", "]"}]}], ";", "\n", " ", + RowBox[{"mopt", "=", " ", + RowBox[{"OptionValue", "[", "MaximumSurpluses", "]"}]}], ";", "\n", + " ", RowBox[{ - RowBox[{"sil", " ", "=", " ", - RowBox[{"OptionValue", "[", "Silent", "]"}]}], ";", "\n", " ", - RowBox[{"smc", " ", "=", " ", - RowBox[{"OptionValue", "[", "SmallestCardinality", "]"}]}], ";", "\n", - " ", - RowBox[{"optst", " ", "=", " ", - RowBox[{"OptionValue", "[", "CalcStepSize", "]"}]}], ";", "\n", " ", - - RowBox[{"pinv", " ", "=", " ", - RowBox[{"OptionValue", "[", "PseudoInv", "]"}]}], ";", "\n", " ", - RowBox[{"mopt", "=", " ", - RowBox[{"OptionValue", "[", "MaximumSurpluses", "]"}]}], ";", "\n", - " ", - RowBox[{ - RowBox[{"{", - RowBox[{"meff", ",", " ", "mex"}], "}"}], " ", "=", " ", - RowBox[{"ParaBestCoalitions", "[", - RowBox[{"game", ",", " ", "payoff", ",", " ", - RowBox[{"MaximumSurpluses", " ", "->", " ", "True"}], ",", " ", - RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}]}], - ";", " ", "\n", " ", - RowBox[{"matE", " ", "=", " ", - RowBox[{"-", - RowBox[{"ParaSetsToVec", "[", - RowBox[{"meff", ",", " ", "T", ",", " ", - RowBox[{"EffVector", " ", "->", " ", "True"}]}], "]"}]}]}], ";", - "\n", " ", - RowBox[{"submex", " ", "=", " ", - RowBox[{"ParallelMap", "[", + RowBox[{"{", + RowBox[{"meff", ",", " ", "mex"}], "}"}], " ", "=", " ", + RowBox[{"ParaBestCoalitions", "[", + RowBox[{"game", ",", " ", "payoff", ",", " ", + RowBox[{"AntiPreKernel", " ", "->", " ", "False"}], ",", " ", + RowBox[{"MaximumSurpluses", " ", "->", " ", "True"}], ",", " ", + RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}]}], + ";", "\n", " ", + RowBox[{"matE", " ", "=", " ", + RowBox[{"-", + RowBox[{"ParaSetsToVec", "[", + RowBox[{"meff", ",", " ", "T", ",", " ", + RowBox[{"EffVector", " ", "->", " ", "True"}]}], "]"}]}]}], ";", + "\n", " ", + RowBox[{"submex", " ", "=", " ", + RowBox[{"ParallelMap", "[", + RowBox[{ RowBox[{ RowBox[{ - RowBox[{ - RowBox[{"{", - RowBox[{"1", ",", " ", - RowBox[{"-", "1"}]}], "}"}], ".", "#"}], " ", "&"}], ",", " ", - "mex"}], "]"}]}], ";", " ", "\n", " ", - RowBox[{"varpay", " ", "=", " ", + RowBox[{"{", + RowBox[{"1", ",", " ", + RowBox[{"-", "1"}]}], "}"}], ".", "#"}], " ", "&"}], ",", " ", + "mex"}], "]"}]}], ";", " ", "\n", " ", + RowBox[{"varpay", " ", "=", " ", + RowBox[{ RowBox[{ - RowBox[{ - RowBox[{"x", "[", "#", "]"}], " ", "&"}], " ", "/@", " ", "T"}]}], - ";", "\n", " ", - RowBox[{"setpay", " ", "=", " ", - RowBox[{"MapThread", "[", - RowBox[{"Rule", ",", " ", - RowBox[{"{", - RowBox[{"varpay", ",", " ", "payoff"}], "}"}]}], "]"}]}], ";", - "\n", " ", - RowBox[{"grmex", " ", "=", " ", + RowBox[{"x", "[", "#", "]"}], " ", "&"}], " ", "/@", " ", "T"}]}], + ";", "\n", " ", + RowBox[{"setpay", " ", "=", " ", + RowBox[{"MapThread", "[", + RowBox[{"Rule", ",", " ", + RowBox[{"{", + RowBox[{"varpay", ",", " ", "payoff"}], "}"}]}], "]"}]}], ";", "\n", + " ", + RowBox[{"grmex", " ", "=", " ", + RowBox[{ RowBox[{ - RowBox[{ - RowBox[{"v", "[", "T", "]"}], " ", "-", " ", - RowBox[{"Total", "[", + RowBox[{"v", "[", "T", "]"}], " ", "-", " ", + RowBox[{"Total", "[", + RowBox[{ RowBox[{ - RowBox[{ - RowBox[{"x", "[", "#", "]"}], " ", "&"}], " ", "/@", " ", "T"}], - "]"}]}], " ", "/.", " ", "setpay"}]}], ";", "\n", " ", - RowBox[{"PrependTo", "[", - RowBox[{"submex", ",", " ", "grmex"}], "]"}], ";", "\n", " ", - RowBox[{"If", "[", - RowBox[{ - RowBox[{"SameQ", "[", - RowBox[{"sil", ",", "False"}], "]"}], ",", " ", - RowBox[{"Print", "[", - RowBox[{"\"\\"", ",", " ", "submex"}], "]"}], ",", - "True"}], "]"}], ";", "\n", " ", - RowBox[{"If", "[", + RowBox[{"x", "[", "#", "]"}], " ", "&"}], " ", "/@", " ", "T"}], + "]"}]}], " ", "/.", " ", "setpay"}]}], ";", "\n", " ", + RowBox[{"PrependTo", "[", + RowBox[{"submex", ",", " ", "grmex"}], "]"}], ";", "\n", " ", + RowBox[{"If", "[", + RowBox[{ + RowBox[{"SameQ", "[", + RowBox[{"sil", ",", "False"}], "]"}], ",", " ", + RowBox[{"Print", "[", + RowBox[{"\"\\"", ",", " ", "submex"}], "]"}], ",", + "True"}], "]"}], ";", "\n", " ", + RowBox[{"If", "[", + RowBox[{ + RowBox[{"SameQ", "[", + RowBox[{"pinv", ",", "False"}], "]"}], ",", "\n", " ", RowBox[{ - RowBox[{"SameQ", "[", - RowBox[{"pinv", ",", "False"}], "]"}], ",", "\n", " ", - RowBox[{ - RowBox[{"doi", " ", "=", " ", - RowBox[{"LeastSquares", "[", - RowBox[{"matE", ",", - RowBox[{"-", "submex"}], ",", - RowBox[{"Tolerance", " ", "->", " ", - RowBox[{"10", "^", - RowBox[{"(", - RowBox[{"-", "10"}], ")"}]}]}]}], "]"}]}], ";"}], ",", "\n", - " ", RowBox[{"doi", " ", "=", " ", - RowBox[{"-", - RowBox[{ - RowBox[{"PseudoInverse", "[", "matE", "]"}], ".", - "submex"}]}]}]}], "]"}], ";", "\n", " ", - RowBox[{"optstep", " ", "=", " ", - RowBox[{"If", "[", - RowBox[{ - RowBox[{"SameQ", "[", - RowBox[{"optst", ",", "True"}], "]"}], ",", " ", - RowBox[{"ParaDelStar", "[", - RowBox[{"doi", ",", " ", "matE", ",", " ", "submex"}], "]"}], ",", - " ", "1"}], "]"}]}], ";", "\n", " ", + RowBox[{"LeastSquares", "[", + RowBox[{"matE", ",", + RowBox[{"-", "submex"}], ",", + RowBox[{"Tolerance", " ", "->", " ", + RowBox[{"10", "^", + RowBox[{"(", + RowBox[{"-", "10"}], ")"}]}]}]}], "]"}]}], ";"}], ",", "\n", + " ", + RowBox[{"doi", " ", "=", " ", + RowBox[{"-", + RowBox[{ + RowBox[{"PseudoInverse", "[", "matE", "]"}], ".", "submex"}]}]}]}], + "]"}], ";", "\n", " ", + RowBox[{"optstep", " ", "=", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"SameQ", "[", - RowBox[{"mopt", ",", "False"}], "]"}], ",", - RowBox[{"{", - RowBox[{"optstep", ",", "doi"}], "}"}], ",", - RowBox[{"{", - RowBox[{"optstep", ",", "doi", ",", "mex"}], "}"}]}], "]"}]}]}], - "\n", " ", "]"}]}], ";"}], "\n"}], "\n", + RowBox[{"optst", ",", "True"}], "]"}], ",", " ", + RowBox[{"ParaDelStar", "[", + RowBox[{"doi", ",", " ", "matE", ",", " ", "submex"}], "]"}], ",", + " ", "1"}], "]"}]}], ";", "\n", " ", + RowBox[{"If", "[", + RowBox[{ + RowBox[{"SameQ", "[", + RowBox[{"mopt", ",", "False"}], "]"}], ",", + RowBox[{"{", + RowBox[{"optstep", ",", "doi"}], "}"}], ",", + RowBox[{"{", + RowBox[{"optstep", ",", "doi", ",", "mex"}], "}"}]}], "]"}]}]}], + "\n", " ", "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->"972b5fd0-51c1-\ +4f25-9e4e-e39de9c95c1d"], + +Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{ @@ -1281,8 +1287,8 @@ Cell[BoxData[{ RowBox[{"Length", "[", "T", "]"}]}]}], ";", "\n", " ", RowBox[{"ParaAntiPreKernel", "[", RowBox[{"game", ",", "pay", ",", "opts"}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"837af7f5-9115-460d-bd67-\ -616469ec9de2"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"b3944f3b-2b4b-475c-9530-\ +ae8e4f4b2a7a"], Cell[BoxData[ RowBox[{ @@ -1304,7 +1310,7 @@ Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"Length", "[", "T", "]"}], " ", ">", " ", "11"}], ",", - "256", ",", "156"}], "]"}]}], ";", "\n", " ", + "1024", ",", "256"}], "]"}]}], ";", "\n", " ", RowBox[{"Which", "[", RowBox[{ RowBox[{ @@ -1360,8 +1366,8 @@ Cell[BoxData[ " ", "True", ",", " ", RowBox[{"ParaPrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", - "]"}]}], ";"}]], "Code",ExpressionUUID->"e02caab1-a38b-44eb-8a02-\ -2753b4400032"], + "]"}]}], ";"}]], "Code",ExpressionUUID->"574e27db-a854-41fc-931b-\ +77e9755bce18"], Cell[BoxData[ RowBox[{ @@ -1445,8 +1451,8 @@ Cell[BoxData[ ";", "\n", " ", RowBox[{"ParaAntiPreKernelAlg2", "[", RowBox[{"game", ",", "xvec", ",", "opts"}], "]"}]}]}], "]"}]}]}], - " ", "\n", " ", "]"}]}], ";"}]], "Code",ExpressionUUID->"d9792476-c39d-\ -45f2-aac0-bfec0e3b56e9"], + " ", "\n", " ", "]"}]}], ";"}]], "Code",ExpressionUUID->"3957d3c8-6aae-\ +44a8-b201-6eae5bb4ffb2"], Cell[BoxData[ RowBox[{ @@ -1469,7 +1475,7 @@ Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ParaModiclus", "[", "game_", "]"}], " ", ":=", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -1519,7 +1525,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"ParaIsModiclusQ", "[", RowBox[{"game_", ",", "payoff_List"}], "]"}], " ", ":=", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -1564,8 +1570,8 @@ Cell[BoxData[ RowBox[{"Redefine", " ", "the", " ", "original", " ", RowBox[{"game", "."}]}], " ", "*)"}], "\n", " ", RowBox[{"Return", "[", "bcQ", "]"}]}]}], "\n", " ", - "]"}]}]}]}]], "Code",ExpressionUUID->"43287316-9609-4890-b1c9-\ -dcf81a1351a5"], + "]"}]}]}]}]], "Code",ExpressionUUID->"0431dc53-18fc-45dd-a20b-\ +f25d3b4c69fe"], Cell[BoxData[{ RowBox[{ @@ -1801,7 +1807,7 @@ Cell[BoxData[{ RowBox[{"Silent", " ", "->", " ", "sil"}], ",", " ", RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}]}], "]"}]}]}], "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->\ -"fb13b87b-0d34-4853-a4d2-8f801303f7c0"], +"99931ec6-fe26-4d93-a037-a111d3f0be22"], Cell[BoxData[ RowBox[{ @@ -1884,8 +1890,8 @@ Cell[BoxData[ RowBox[{"{", RowBox[{"vals", ",", " ", RowBox[{"v", "[", "T", "]"}]}], "}"}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}]], "Code",ExpressionUUID->"2f0b2290-9069-4861-9420-\ -1fcf629fbe9d"], + "]"}]}], ";"}]], "Code",ExpressionUUID->"dca1b891-d440-47d1-a7d6-\ +19a5fae468a6"], Cell[BoxData[{ RowBox[{ @@ -1903,7 +1909,7 @@ Cell[BoxData[{ RowBox[{"opts", ":", RowBox[{"OptionsPattern", "[", "ParaProperModPreKernel", "]"}]}]}], "]"}], " ", ":=", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -1947,7 +1953,7 @@ Cell[BoxData[{ RowBox[{"game", "."}]}], " ", "*)"}], "\n", " ", RowBox[{"Take", "[", RowBox[{"mdnc", ",", " ", "lt"}], "]"}]}]}], "\n", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"d1098ab9-dc1e-46cd-b272-68dcfd4ea6be"], + ";"}]}], "Code",ExpressionUUID->"3e6870ed-c5de-4a65-b4cd-7c75cc4b989f"], Cell[BoxData[ RowBox[{ @@ -1957,7 +1963,7 @@ Cell[BoxData[ RowBox[{"opts", ":", RowBox[{"OptionsPattern", "[", "ParaProperModPreKernel", "]"}]}]}], "]"}], " ", ":=", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -2007,7 +2013,7 @@ Cell[BoxData[ RowBox[{"game", "."}]}], " ", "*)"}], "\n", " ", RowBox[{"Take", "[", RowBox[{"mdnc", ",", " ", "lt"}], "]"}]}]}], "\n", "]"}]}], - ";"}]], "Code",ExpressionUUID->"483b0c1c-41a5-41c9-b028-388390ff3633"], + ";"}]], "Code",ExpressionUUID->"ce8e3ea8-0e23-4c7e-9d07-1942bf39d20a"], Cell[BoxData[{ RowBox[{ @@ -2024,7 +2030,7 @@ Cell[BoxData[{ RowBox[{"ParaIsModPreKernelQ", "[", RowBox[{"game_", ",", " ", "payoff_List"}], "]"}], " ", ":=", "\n", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -2073,7 +2079,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"ParaIsProperModPreKernelQ", "[", RowBox[{"game_", ",", "payoff_List"}], "]"}], " ", ":=", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -2125,7 +2131,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"ParaDualExtension", "[", "game_", "]"}], " ", ":=", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -2209,7 +2215,7 @@ Cell[BoxData[{ "dlext"}]}], ";", "\n", " ", RowBox[{"{", RowBox[{"vals", ",", " ", "dlext"}], "}"}]}]}], "\n", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"c1cb2cb0-affe-4481-8bba-466bdffd6830"], + ";"}]}], "Code",ExpressionUUID->"4f3985f1-50e0-4062-b87c-fa78f9b8e616"], Cell[BoxData[ RowBox[{ @@ -2221,7 +2227,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"ParaPrimalExtension", "[", "game_", "]"}], " ", ":=", "\n", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -2305,13 +2311,13 @@ Cell[BoxData[ "plext"}]}], ";", "\n", " ", RowBox[{"{", RowBox[{"vals", ",", " ", "plext"}], "}"}]}]}], "\n", " ", "]"}]}], - ";"}]}]], "Code",ExpressionUUID->"06ddd9bf-8fc4-4d0b-9d6c-f963fe342eeb"], + ";"}]}]], "Code",ExpressionUUID->"353e656a-db3e-4385-8724-404249e0a198"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ParaDualCover", "[", "game_", "]"}], " ", ":=", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -2333,8 +2339,8 @@ Cell[BoxData[ RowBox[{"#1", ",", " ", "#2"}], "]"}], " ", "&"}], ",", " ", RowBox[{"{", RowBox[{"dvals", ",", " ", "pvals"}], "}"}]}], "]"}]}]}], "\n", - "]"}]}], ";"}]], "Code",ExpressionUUID->"fa8d75b9-fdac-4d2b-816e-\ -3fdcfd73c062"], + "]"}]}], ";"}]], "Code",ExpressionUUID->"2dd7983c-845d-4ac8-a39c-\ +c03c33ca437f"], Cell[BoxData[ RowBox[{"(*", " ", @@ -2344,8 +2350,8 @@ Cell[BoxData[ " ", "the", " ", "simplified", " ", "modified", " ", "pre"}], "-", RowBox[{ RowBox[{"kernel", "/", "nucleolus"}], " ", "of", " ", "a", " ", - RowBox[{"game", "."}]}]}], " ", "*)"}]], "Code",ExpressionUUID->"fb70a0d0-\ -4fc4-4774-b981-bad53e023c05"], + RowBox[{"game", "."}]}]}], " ", "*)"}]], "Code",ExpressionUUID->"4a099889-\ +38b7-4d12-a5ef-0390fe973581"], Cell[BoxData[{ RowBox[{ @@ -2360,7 +2366,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"ParaSMPreKernel", "[", "game_", "]"}], " ", ":=", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -2407,7 +2413,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"ParaIsSMPreKernelQ", "[", RowBox[{"game_", ",", " ", "payoff_"}], "]"}], " ", ":=", " ", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ @@ -2441,8 +2447,8 @@ Cell[BoxData[{ RowBox[{"Redefine", " ", "the", " ", "original", " ", RowBox[{"game", "."}]}], "*)"}], "\n", " ", RowBox[{"Return", "[", "smpkQ", "]"}], ";"}]}], "\n", " ", "]"}]}], - ";"}], "\n"}], "Code",ExpressionUUID->"6f6e49b5-afea-42b4-b2f6-\ -4509894b14e7"], + ";"}], "\n"}], "Code",ExpressionUUID->"4fe9e872-544f-44c3-8584-\ +df2453a40ea0"], Cell[BoxData[ RowBox[{ @@ -2542,7 +2548,7 @@ Cell[BoxData[ RowBox[{"{", RowBox[{"i", ",", " ", "1", ",", " ", RowBox[{"Length", "[", "T", "]"}]}], "}"}]}], "]"}], "]"}]}], ";"}], - "\n"}]}]], "Code",ExpressionUUID->"994a8927-d933-4131-b778-8f90520dbb6a"], + "\n"}]}]], "Code",ExpressionUUID->"96c3a7e3-8cd9-4f59-bded-3d8251903642"], Cell[BoxData[ RowBox[{ @@ -2558,9 +2564,9 @@ Cell[BoxData[ RowBox[{"{", RowBox[{ "anti", ",", " ", "maxsurp", ",", " ", "allc", ",", " ", "plvec", ",", - "sijcol", ",", "sjicol", ",", "amax", ",", "ramax", ",", "exc", ",", - "exvec", ",", "intcoal", ",", "selcij", ",", "selcji", ",", - "sigcoal"}], "}"}], ",", "\n", " ", + "sij", ",", "sji", ",", "plj", ",", "pli", ",", "payass", ",", "amax", + ",", "ramax", ",", "exc", ",", "exvec", ",", "intcoal", ",", + "selcij", ",", "selcji", ",", "sigcoal"}], "}"}], ",", "\n", " ", RowBox[{ RowBox[{"anti", " ", "=", " ", RowBox[{"OptionValue", "[", "AntiPreKernel", "]"}]}], ";", "\n", @@ -2576,21 +2582,85 @@ Cell[BoxData[ RowBox[{ RowBox[{"paralistIJ", "[", "T", "]"}], ",", "2"}], "]"}]}], ";", "\n", " ", - RowBox[{"sijcol", " ", "=", " ", + RowBox[{"Parallelize", "[", RowBox[{ RowBox[{ - RowBox[{"Partition", "[", - RowBox[{"#", ",", "1"}], "]"}], " ", "&"}], "/@", " ", "plvec"}]}], - ";", "\n", " ", - RowBox[{"amax", " ", "=", " ", - RowBox[{"If", "[", - RowBox[{ - RowBox[{"anti", "===", "False"}], ",", - RowBox[{"ParaMaxSurpluses", "[", - RowBox[{"game", ",", " ", "payoff", ",", "plvec"}], "]"}], ",", - RowBox[{"ParaAntiSurpluses", "[", - RowBox[{"game", ",", " ", "payoff", ",", "plvec"}], "]"}]}], - "]"}]}], ";", "\t", "\n", " ", + RowBox[{"pli", " ", "=", " ", + RowBox[{"Map", "[", + RowBox[{ + RowBox[{ + RowBox[{"First", "[", "#", "]"}], " ", "&"}], ",", " ", + "plvec"}], "]"}]}], ";", "\n", " ", + RowBox[{"plj", " ", "=", " ", + RowBox[{"Map", "[", + RowBox[{ + RowBox[{ + RowBox[{"#", "[", + RowBox[{"[", "2", "]"}], "]"}], " ", "&"}], ",", "plvec"}], + "]"}]}], ";", "\n", " ", + RowBox[{"sij", "=", + RowBox[{"MapThread", "[", + RowBox[{ + RowBox[{ + RowBox[{"ParaTIJsets", "[", + RowBox[{"#1", ",", "#2"}], "]"}], " ", "&"}], ",", + RowBox[{"{", + RowBox[{"pli", ",", "plj"}], "}"}]}], "]"}]}], ";", "\n", + " ", + RowBox[{"sji", "=", + RowBox[{"MapThread", "[", + RowBox[{ + RowBox[{ + RowBox[{"ParaTIJsets", "[", + RowBox[{"#1", ",", "#2"}], "]"}], " ", "&"}], ",", + RowBox[{"{", + RowBox[{"plj", ",", "pli"}], "}"}]}], "]"}]}], ";", "\n", + " ", + RowBox[{"payass", " ", "=", " ", + RowBox[{"MapThread", "[", + RowBox[{"Rule", ",", + RowBox[{"{", + RowBox[{ + RowBox[{"x", " ", "/@", " ", "T"}], ",", "payoff"}], "}"}]}], + "]"}]}]}], ",", + RowBox[{"Method", " ", "->", " ", "\"\\""}], ",", + RowBox[{"DistributedContexts", " ", "->", " ", "True"}]}], "]"}], + ";", "\n", " ", + RowBox[{"If", "[", + RowBox[{ + RowBox[{"anti", "===", "False"}], ",", "\n", " ", + RowBox[{"amax", " ", "=", " ", + RowBox[{"ParallelTable", "[", + RowBox[{ + RowBox[{"ParaMaxSijSurpluses", "[", + RowBox[{"game", ",", + RowBox[{"sij", "[", + RowBox[{"[", "i", "]"}], "]"}], ",", + RowBox[{"sji", "[", + RowBox[{"[", "i", "]"}], "]"}], ",", "payass"}], "]"}], ",", + RowBox[{"{", + RowBox[{"i", ",", + RowBox[{"Length", "[", "sij", "]"}]}], "}"}], ",", + RowBox[{"Method", " ", "->", " ", "\"\\""}], + ",", + RowBox[{"DistributedContexts", " ", "->", " ", "True"}]}], + "]"}]}], ",", "\n", " ", + RowBox[{"amax", " ", "=", " ", + RowBox[{"ParallelTable", "[", + RowBox[{ + RowBox[{"ParaAntiSijSurpluses", "[", + RowBox[{"game", ",", + RowBox[{"sij", "[", + RowBox[{"[", "i", "]"}], "]"}], ",", + RowBox[{"sji", "[", + RowBox[{"[", "i", "]"}], "]"}], ",", "payass"}], "]"}], ",", + RowBox[{"{", + RowBox[{"i", ",", + RowBox[{"Length", "[", "sij", "]"}]}], "}"}], ",", + RowBox[{"Method", " ", "->", " ", "\"\\""}], + ",", + RowBox[{"DistributedContexts", " ", "->", " ", "True"}]}], + "]"}]}]}], "\n", " ", "]"}], ";", "\n", " ", RowBox[{"exc", " ", "=", " ", RowBox[{ RowBox[{"ParaExcessPayoff", "[", @@ -2610,12 +2680,6 @@ Cell[BoxData[ RowBox[{"Subsets", "[", "T", "]"}], ",", " ", "1"}], "]"}], ",", " ", RowBox[{"-", "1"}]}], "]"}]}], ";", "\n", " ", - RowBox[{"sjicol", " ", "=", " ", - RowBox[{"Map", "[", - RowBox[{ - RowBox[{ - RowBox[{"Reverse", "[", "#", "]"}], " ", "&"}], ",", " ", - "sijcol"}], "]"}]}], ";", "\n", " ", RowBox[{"ramax", " ", "=", " ", RowBox[{"Map", "[", RowBox[{ @@ -2627,7 +2691,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"ParaSelCoal", "[", RowBox[{ - RowBox[{"sijcol", "[", + RowBox[{"sij", "[", RowBox[{"[", "i", "]"}], "]"}], ",", " ", "intcoal", ",", " ", "exvec", ",", " ", RowBox[{"amax", "[", @@ -2642,7 +2706,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"ParaSelCoal", "[", RowBox[{ - RowBox[{"sjicol", "[", + RowBox[{"sji", "[", RowBox[{"[", "i", "]"}], "]"}], ",", " ", "intcoal", ",", " ", "exvec", ",", " ", RowBox[{"ramax", "[", @@ -2669,15 +2733,15 @@ Cell[BoxData[ ",", RowBox[{"{", RowBox[{"sigcoal", ",", "amax"}], "}"}]}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}], "\n"}]], "Code",ExpressionUUID->"59962d10-2b71-4b6c-95d8-\ -bd30c8869539"], + "]"}]}], ";"}], "\n", " ", "\n"}]], "Code",ExpressionUUID->"318b41c5-\ +c128-49c7-9480-e1bc3c3a9971"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ParaSelCoal", "[", RowBox[{ - "sij_List", ",", " ", "coal_List", ",", " ", "redexc_List", ",", " ", + "setsij_List", ",", " ", "coal_List", ",", " ", "redexc_List", ",", " ", "maxexc_List", ",", " ", RowBox[{"opts", ":", RowBox[{"OptionsPattern", "[", "ParaBestCoalitions", "]"}]}]}], "]"}], @@ -2686,9 +2750,8 @@ Cell[BoxData[ RowBox[{ RowBox[{"{", RowBox[{ - "allc", ",", " ", "smc", ",", " ", "setsij", ",", " ", "detpos", ",", - " ", "extval", ",", " ", "poscoal", ",", " ", "extcoal"}], "}"}], ",", - "\n", " ", + "allc", ",", " ", "smc", ",", " ", "detpos", ",", " ", "extval", ",", + " ", "poscoal", ",", " ", "extcoal"}], "}"}], ",", "\n", " ", RowBox[{ RowBox[{"allc", " ", "=", " ", RowBox[{"OptionValue", "[", "AllCoalitions", "]"}]}], ";", "\n", @@ -2696,28 +2759,24 @@ Cell[BoxData[ RowBox[{"smc", " ", "=", " ", RowBox[{"OptionValue", "[", "SmallestCardinality", "]"}]}], ";", "\n", " ", - RowBox[{"setsij", " ", "=", " ", + RowBox[{"detpos", "=", + RowBox[{"MapThread", "[", + RowBox[{"List", ",", + RowBox[{"{", + RowBox[{"coal", ",", "redexc"}], "}"}]}], "]"}]}], ";", "\n", + " ", + RowBox[{"extval", " ", "=", " ", RowBox[{ - RowBox[{"MapThread", "[", - RowBox[{ - RowBox[{ - RowBox[{"ParaTIJsets", "[", - RowBox[{"#1", ",", " ", "#2"}], "]"}], " ", "&"}], ",", " ", - "sij"}], "]"}], "[", - RowBox[{"[", "1", "]"}], "]"}]}], ";", "\n", " ", - RowBox[{"detpos", " ", "=", " ", - RowBox[{"Outer", "[", - RowBox[{"List", ",", " ", + RowBox[{ RowBox[{ RowBox[{ RowBox[{ - RowBox[{"Position", "[", - RowBox[{"coal", ",", " ", "#"}], "]"}], " ", "&"}], " ", "/@", - " ", "setsij"}], " ", "//", " ", "Flatten"}]}], "]"}]}], ";", "\n", - " ", - RowBox[{"extval", " ", "=", " ", - RowBox[{"Extract", "[", - RowBox[{"redexc", ",", " ", "detpos"}], "]"}]}], ";", "\n", " ", + RowBox[{"Last", "[", "#", "]"}], " ", "&"}], "/@", " ", + RowBox[{"Cases", "[", + RowBox[{"detpos", ",", + RowBox[{"{", + RowBox[{"#", ",", "___"}], "}"}]}], "]"}]}], " ", "&"}], "/@", + " ", "setsij"}], " ", "//", " ", "Flatten"}]}], ";", "\n", " ", RowBox[{"poscoal", " ", "=", " ", RowBox[{"Position", "[", RowBox[{"extval", ",", " ", @@ -2753,7 +2812,7 @@ Cell[BoxData[ " ", "True", ",", " ", RowBox[{"First", "[", "extcoal", "]"}]}], "]"}]}], "]"}]}], "]"}]}]}], "\n", " ", "]"}]}], ";"}]], "Code",ExpressionUUID->\ -"9e6dfd80-e01e-4491-a780-57b7606f37ff"], +"659b0c85-c5d6-4fa9-99de-806a75efed3b"], Cell[BoxData[{ RowBox[{ @@ -2788,7 +2847,7 @@ Cell[BoxData[{ RowBox[{"Length", "[", "T", "]"}]}], "}"}]}], "]"}]}], ";", "\n", " ", RowBox[{"pscoal", " ", "=", " ", - RowBox[{"ParallelMap", "[", + RowBox[{"Map", "[", RowBox[{ RowBox[{ RowBox[{"Outer", "[", @@ -2828,8 +2887,8 @@ Cell[BoxData[{ RowBox[{"effvec", "==", "True"}], ",", " ", RowBox[{"Prepend", "[", RowBox[{"coasts", ",", "onesoft"}], "]"}], ",", " ", "coasts"}], - "]"}]}]}], "\n", "]"}]}], ";"}]}], "Code",ExpressionUUID->"ebc6f6d7-\ -5315-45ac-8522-68e617b887ee"], + "]"}]}]}], "\n", "]"}]}], ";"}]}], "Code",ExpressionUUID->"0e89e0da-\ +ee11-4d24-83d1-6e26b1c83dce"], Cell[BoxData[{ RowBox[{ @@ -2883,7 +2942,42 @@ Cell[BoxData[{ RowBox[{"maxpi", ",", "maxpj"}], "}"}]}], "]"}]}], ",", RowBox[{"Method", " ", "->", " ", "\"\\""}], ",", RowBox[{"DistributedContexts", " ", "->", " ", "None"}]}], "]"}]}], - "\n", " ", "]"}]}], ";"}], "\n"}], "\n", + "\n", " ", "]"}]}], ";"}], "\n", "\n", " ", "\n", + RowBox[{"(*", " ", + RowBox[{ + RowBox[{ + "We", " ", "refrain", " ", "from", " ", "overloading", " ", "due", " ", + "to", " ", "its", " ", "negative", " ", "effect", " ", "on", " ", "the", + " ", "performance", " ", "of", " ", "the", " ", + RowBox[{"(", + RowBox[{"Anti", "-"}], ")"}], "Pre"}], "-", + RowBox[{"Kernel", " ", + RowBox[{ + RowBox[{"computation", "!!"}], "!"}]}]}], " ", "*)"}]}], "\n", + RowBox[{ + RowBox[{ + RowBox[{ + RowBox[{"ParaMaxSijSurpluses", "[", + RowBox[{ + "game_", ",", " ", "sij_List", ",", " ", "sji_List", ",", + "payoff_List"}], "]"}], " ", ":=", " ", "\n", "\t", + RowBox[{"Block", "[", + RowBox[{ + RowBox[{"{", + RowBox[{"maxpi", ",", "maxpj"}], "}"}], ",", "\n", " ", + RowBox[{ + RowBox[{"maxpi", " ", "=", " ", + RowBox[{"ParaMaxSijSurplus", "[", + RowBox[{"game", ",", "sij", ",", "payoff"}], "]"}]}], ";", "\n", + " ", + RowBox[{"maxpj", " ", "=", " ", + RowBox[{"ParaMaxSijSurplus", "[", + RowBox[{"game", ",", "sji", ",", "payoff"}], "]"}]}], ";", "\n", + " ", + RowBox[{"Return", "[", + RowBox[{"{", + RowBox[{"maxpi", ",", "maxpj"}], "}"}], "]"}]}]}], "\n", "\t", + "]"}]}], ";"}], "\n"}], "\n", RowBox[{ RowBox[{ RowBox[{"ParaAntiSurpluses", "[", @@ -2934,7 +3028,35 @@ Cell[BoxData[{ RowBox[{"minpi", ",", "minpj"}], "}"}]}], "]"}]}], ",", RowBox[{"Method", " ", "->", " ", "\"\\""}], ",", RowBox[{"DistributedContexts", " ", "->", " ", "None"}]}], "]"}]}], - "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->"ef373b17-04c9-4c99-8cd6-2b889080a060"], + "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->"a49f5d6a-de6b-\ +4485-9baa-608f8a4492db"], + +Cell[BoxData[ + RowBox[{ + RowBox[{ + RowBox[{ + RowBox[{"ParaAntiSijSurpluses", "[", + RowBox[{ + "game_", ",", " ", "sij_List", ",", " ", "sji_List", ",", + "payoff_List"}], "]"}], " ", ":=", " ", "\n", "\t", + RowBox[{"Block", "[", + RowBox[{ + RowBox[{"{", + RowBox[{"minpi", ",", "minpj"}], "}"}], ",", "\n", " ", + RowBox[{ + RowBox[{"minpi", " ", "=", " ", + RowBox[{"ParaAntiSijSurplus", "[", + RowBox[{"game", ",", "sij", ",", "payoff"}], "]"}]}], ";", "\n", + " ", + RowBox[{"minpj", " ", "=", " ", + RowBox[{"ParaAntiSijSurplus", "[", + RowBox[{"game", ",", "sji", ",", "payoff"}], "]"}]}], ";", "\n", + " ", + RowBox[{"Return", "[", + RowBox[{"{", + RowBox[{"minpi", ",", "minpj"}], "}"}], "]"}]}]}], "\n", "\t", + "]"}]}], ";"}], "\n"}]], "Code",ExpressionUUID->"0ea8590b-e43c-469f-857e-\ +8d871e56a54f"], Cell[BoxData[{ RowBox[{ @@ -3019,9 +3141,39 @@ Cell[BoxData[{ RowBox[{ RowBox[{"Print", "[", "\"\\"", "]"}], ";", RowBox[{"Return", "[", "]"}]}]}], "]"}]}]}], "\n", " ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"e7354b84-3b40-44a6-911e-2976550f4f08"], + ";"}], "\n", + RowBox[{" "}]}], "Code",ExpressionUUID->"e6720c17-361a-417b-8ce1-\ +bed937cd989e"], Cell[BoxData[{ + RowBox[{ + RowBox[{ + RowBox[{ + RowBox[{"ParaMaxSijSurplus", "[", + RowBox[{"game_", ",", "sij_List", ",", " ", "payass_List"}], "]"}], " ", + ":=", " ", "\n", "\t", + RowBox[{"Block", "[", + RowBox[{ + RowBox[{"{", "}"}], ",", "\n", " ", + RowBox[{"Max", "[", + RowBox[{"ReplaceAll", "[", + RowBox[{ + RowBox[{"Map", "[", + RowBox[{ + RowBox[{ + RowBox[{ + RowBox[{"v", "[", "#", "]"}], " ", "-", " ", + RowBox[{"x", "[", "#", "]"}]}], " ", "&"}], ",", " ", "sij"}], + "]"}], ",", "payass"}], "]"}], "]"}]}], "\n", " ", "]"}]}], + ";"}], "\n"}], "\n", + RowBox[{ + RowBox[{ + RowBox[{"ParaAntiSurplus", "[", "args___", "]"}], ":=", + RowBox[{"(", + RowBox[{ + RowBox[{"Message", "[", + RowBox[{"ParaMaxSurplus", "::", "argerr"}], "]"}], ";", "$Failed"}], + ")"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{ @@ -3098,6 +3250,26 @@ Cell[BoxData[{ RowBox[{"Print", "[", "\"\\"", "]"}], ";", RowBox[{"Return", "[", "]"}]}]}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n"}], "\n", + RowBox[{ + RowBox[{ + RowBox[{ + RowBox[{"ParaAntiSijSurplus", "[", + RowBox[{"game_", ",", "sij_List", ",", " ", "payass_List"}], "]"}], " ", + ":=", " ", "\n", "\t", + RowBox[{"Block", "[", + RowBox[{ + RowBox[{"{", "}"}], ",", "\n", " ", + RowBox[{"Min", "[", + RowBox[{"ReplaceAll", "[", + RowBox[{ + RowBox[{"Map", "[", + RowBox[{ + RowBox[{ + RowBox[{ + RowBox[{"v", "[", "#", "]"}], " ", "-", " ", + RowBox[{"x", "[", "#", "]"}]}], " ", "&"}], ",", " ", "sij"}], + "]"}], ",", "payass"}], "]"}], "]"}]}], "\n", " ", "]"}]}], + ";"}], "\n"}], "\n", RowBox[{ RowBox[{ RowBox[{"ParaTIJsets", "[", @@ -3110,7 +3282,7 @@ Cell[BoxData[{ RowBox[{"___", ",", "i", ",", "___"}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"___", ",", "j", ",", "___"}], "}"}]}], "]"}]}], ";"}]}], "Code",\ -ExpressionUUID->"796e0d42-0be9-4844-8841-a4c2eb5c1469"], +ExpressionUUID->"3668eeb2-5316-49f3-bd1d-f0b1c31679f8"], Cell[BoxData[{ RowBox[{ @@ -3214,7 +3386,7 @@ Cell[BoxData[{ RowBox[{"MatrixForm", "[", RowBox[{"PrependTo", "[", RowBox[{"exc", ",", "mpc"}], "]"}], "]"}]}]}], "\n", " ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"5e4f0512-15d6-4794-adc1-783deb0e3360"], + ";"}]}], "Code",ExpressionUUID->"9b5de972-c2c6-4384-8ca4-d2c50bfe7099"], Cell[BoxData[ RowBox[{ @@ -3321,7 +3493,7 @@ Cell[BoxData[ "\n", " ", "True", ",", " ", RowBox[{"ParaPrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", "]"}]}], ";"}]}]}]], "Code",Exp\ -ressionUUID->"c449cad0-cf0a-4ea4-b797-34b1e1e38309"], +ressionUUID->"bec96dab-c7e1-445d-b7de-6cb9330c402b"], Cell[BoxData[{ RowBox[{ @@ -3417,7 +3589,7 @@ Cell[BoxData[{ " ", "True", ",", " ", RowBox[{"ParaPrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", "]"}]}], ";"}]}], "Code",Expressi\ -onUUID->"b25f5bae-1d29-46b4-8c4f-1989e748c4a2"], +onUUID->"773581b8-0a54-433f-88e0-10a33e68a2cd"], Cell[BoxData[{ RowBox[{ @@ -3501,10 +3673,11 @@ Cell[BoxData[{ RowBox[{"paralistIJ", "[", "T", "]"}], ",", "2"}], "]"}]}], ";", "\n", " ", RowBox[{"rvpr", " ", "=", " ", - RowBox[{ + RowBox[{"Map", "[", RowBox[{ - RowBox[{"Reverse", "[", "#", "]"}], " ", "&"}], " ", "/@", " ", - "plpr"}]}], ";", "\n", " ", + RowBox[{ + RowBox[{"Reverse", "[", "#", "]"}], " ", "&"}], ",", " ", "plpr"}], + "]"}]}], ";", "\n", " ", RowBox[{"asspay", " ", "=", " ", RowBox[{"ParaAssgPay", "[", "payoff", "]"}]}], ";", "\n", " ", RowBox[{"Parallelize", "[", "\n", " ", @@ -3590,7 +3763,7 @@ Cell[BoxData[{ " ", RowBox[{"Apply", "[", RowBox[{"And", ",", " ", "eqQ"}], "]"}]}]}], "\n", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"919a12a0-f34b-4002-bddb-d83358607b30"], + ";"}]}], "Code",ExpressionUUID->"93959476-938d-48e8-a3ca-260a601be476"], Cell[BoxData[{ RowBox[{ @@ -3674,10 +3847,11 @@ Cell[BoxData[{ RowBox[{"paralistIJ", "[", "T", "]"}], ",", "2"}], "]"}]}], ";", "\n", " ", RowBox[{"rvpr", " ", "=", " ", - RowBox[{ + RowBox[{"Map", "[", RowBox[{ - RowBox[{"Reverse", "[", "#", "]"}], " ", "&"}], " ", "/@", " ", - "plpr"}]}], ";", "\n", " ", + RowBox[{ + RowBox[{"Reverse", "[", "#", "]"}], " ", "&"}], ",", "plpr"}], + "]"}]}], ";", "\n", " ", RowBox[{"asspay", " ", "=", " ", RowBox[{"ParaAssgPay", "[", "payoff", "]"}]}], ";", "\n", " ", RowBox[{"Parallelize", "[", "\n", " ", @@ -3763,7 +3937,7 @@ Cell[BoxData[{ " ", RowBox[{"Apply", "[", RowBox[{"And", ",", " ", "eqQ"}], "]"}]}]}], "\n", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"7686d718-2ffe-46a8-aaba-8387ee63643d"], + ";"}]}], "Code",ExpressionUUID->"5d33f83e-11e3-4d08-a570-7b469b0c1b0e"], Cell[BoxData[{ RowBox[{ @@ -3839,7 +4013,7 @@ Cell[BoxData[{ RowBox[{"v", "[", "#", "]"}], " ", "-", " ", RowBox[{"x", "[", "#", "]"}]}], ")"}], " ", "&"}], " ", "/@", " ", "mg"}], ",", " ", "asspay"}], "]"}], "]"}]}], ";"}]}], "Code",Expressio\ -nUUID->"9ebd7f77-193c-4c30-8005-7b337b600b91"], +nUUID->"de1086c3-0aef-4ed4-ad15-f4fe87a437ef"], Cell[BoxData[ RowBox[{ @@ -3876,8 +4050,8 @@ Cell[BoxData[ " ", "True", ",", " ", RowBox[{"ParaWrongCoordDimension", "[", RowBox[{"coord", ",", " ", "T"}], "]"}]}], "]"}]}], "\n", "]"}]}], - ";"}], "\n"}]}]], "Code",ExpressionUUID->"45cdda2c-28a2-4e6d-8a09-\ -f694d415e8ee"], + ";"}], "\n"}]}]], "Code",ExpressionUUID->"1bf7dcee-f7aa-4caf-b083-\ +396beea95ed1"], Cell[BoxData[{ RowBox[{ @@ -4100,7 +4274,7 @@ Cell[BoxData[{ RowBox[{"Apply", "[", RowBox[{"And", ",", " ", RowBox[{"Union", "[", "smarg", "]"}]}], "]"}]}]}], "\n", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"f313541b-9fb1-4614-abb5-b6a176de29e3"], + ";"}]}], "Code",ExpressionUUID->"69ff13db-f5f8-4d69-93a2-9616d78db631"], Cell[BoxData[{ RowBox[{ @@ -4171,7 +4345,7 @@ Cell[BoxData[{ RowBox[{"Total", "[", "sumtmg", "]"}], " ", "//", " ", "Simplify"}]}], ";", "\n", " ", RowBox[{"NonNegative", "[", "add", "]"}]}]}], "\n", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"365460df-6ace-4e08-85e6-0f16e77106f9"], + ";"}]}], "Code",ExpressionUUID->"fc75852d-562e-4252-8723-d525ed34342a"], Cell[BoxData[ RowBox[{ @@ -4222,7 +4396,7 @@ Cell[BoxData[ "coal"}], "]"}]}], ";", "\n", " ", RowBox[{"Apply", "[", RowBox[{"And", ",", " ", "clsup"}], "]"}]}]}], "\n", "]"}]}], - ";"}]}]}]], "Code",ExpressionUUID->"b7b8f60d-103e-4a24-8689-c945f06daf28"], + ";"}]}]}]], "Code",ExpressionUUID->"e574b74a-08db-4636-ae41-16139c3d3ed1"], Cell[BoxData[ RowBox[{ @@ -4270,7 +4444,7 @@ Cell[BoxData[ "\n", " ", RowBox[{"Apply", "[", RowBox[{"And", ",", " ", "leq"}], "]"}]}]}], "\n", " ", "]"}]}], - ";"}]}]], "Code",ExpressionUUID->"e6f4c21f-4473-4479-97f6-79fffb5ee2ab"], + ";"}]}]], "Code",ExpressionUUID->"c8d6fc5a-7303-44ab-b1d1-55e328f431f6"], Cell[BoxData[{ RowBox[{ @@ -4342,18 +4516,18 @@ ExcessPayoff[game,payoff]\>\"", "]"}], ";", "\n", " ", "Print", "[", "\"\\"", "]"}]}], "\n", ")"}]}], ";"}]}], "Code",ExpressionUUID->\ -"4d05ebe2-889a-4d50-8838-eededf924b3e"], +"e2626b9c-e617-4b63-b7fd-a54fdc948aef"], Cell[BoxData[ RowBox[{ RowBox[{"SetSharedVariable", "[", "T", "]"}], ";"}]], "Code",ExpressionUUID->\ -"4560d50d-4400-46a9-ba3b-aa3aa315a2e6"] +"3a82b3a1-c9b8-428f-b1ef-9c7f6390fa24"] }, -WindowSize->{808, 869}, -WindowMargins->{{144, Automatic}, {91, Automatic}}, -FrontEndVersion->"12.1 for Linux x86 (64-bit) (March 18, 2020)", +WindowSize->{808, 823}, +WindowMargins->{{144, Automatic}, {Automatic, 86}}, +FrontEndVersion->"12.1 for Linux x86 (64-bit) (March 14, 2020)", StyleDefinitions->"Default.nb", -ExpressionUUID->"309d67a4-479d-40e6-b3a4-028812535ba3" +ExpressionUUID->"317528aa-6208-471c-bd89-3181e918f6fd" ] (* End of Notebook Content *) @@ -4366,54 +4540,56 @@ CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ -Cell[558, 20, 8181, 181, 1512, "Code",ExpressionUUID->"a4c41654-76f8-40ed-9398-df345e77e1de"], -Cell[8742, 203, 3140, 67, 896, "Code",ExpressionUUID->"a5c357a7-4f2e-4219-a69b-f9e7d946b870"], -Cell[11885, 272, 1086, 20, 70, "Code",ExpressionUUID->"4eb1c92a-da3c-4811-a12d-a47d817f65cb"], -Cell[12974, 294, 290, 6, 70, "Code",ExpressionUUID->"a901925c-481d-4bb1-82d0-45bf77da92f6"], -Cell[13267, 302, 1865, 42, 70, "Code",ExpressionUUID->"e89cb5d4-6f5a-4383-8b2c-174b0529ea11"], -Cell[15135, 346, 378, 7, 70, "Code",ExpressionUUID->"0741bdc8-9faa-4eb8-aa21-18f563b8b076"], -Cell[15516, 355, 672, 11, 70, "Code",ExpressionUUID->"849bc064-002a-42d4-9314-f84d2deee6b9"], -Cell[16191, 368, 1192, 27, 70, "Code",ExpressionUUID->"5261b491-2d6b-465a-b889-b8037e68a920"], -Cell[17386, 397, 4710, 131, 70, "Code",ExpressionUUID->"420e451a-e524-433a-988b-f650f2e395b4"], -Cell[22099, 530, 1854, 53, 70, "Code",ExpressionUUID->"12b46d3a-f63b-4a53-9ef9-89706bbf6d50"], -Cell[23956, 585, 2101, 58, 70, "Code",ExpressionUUID->"b0708904-2b36-40f7-b499-1312565f3780"], -Cell[26060, 645, 357, 10, 70, "Code",ExpressionUUID->"62d206eb-1151-4c32-881e-8dd14ce56861"], -Cell[26420, 657, 1573, 45, 70, "Code",ExpressionUUID->"9840ed6c-cf93-46bf-9b09-1927903b403a"], -Cell[27996, 704, 6665, 163, 70, "Code",ExpressionUUID->"16b3684d-77fe-4461-b895-2f8192fbf2db"], -Cell[34664, 869, 9172, 220, 70, "Code",ExpressionUUID->"75b66010-f974-4f48-9d84-6eda86d2212d"], -Cell[43839, 1091, 7501, 193, 70, "Code",ExpressionUUID->"837af7f5-9115-460d-bd67-616469ec9de2"], -Cell[51343, 1286, 3192, 77, 70, "Code",ExpressionUUID->"e02caab1-a38b-44eb-8a02-2753b4400032"], -Cell[54538, 1365, 3358, 83, 70, "Code",ExpressionUUID->"d9792476-c39d-45f2-aac0-bfec0e3b56e9"], -Cell[57899, 1450, 4884, 117, 70, "Code",ExpressionUUID->"43287316-9609-4890-b1c9-dcf81a1351a5"], -Cell[62786, 1569, 9511, 234, 70, "Code",ExpressionUUID->"fb13b87b-0d34-4853-a4d2-8f801303f7c0"], -Cell[72300, 1805, 3240, 82, 70, "Code",ExpressionUUID->"2f0b2290-9069-4861-9420-1fcf629fbe9d"], -Cell[75543, 1889, 2458, 60, 70, "Code",ExpressionUUID->"d1098ab9-dc1e-46cd-b272-68dcfd4ea6be"], -Cell[78004, 1951, 2427, 58, 70, "Code",ExpressionUUID->"483b0c1c-41a5-41c9-b028-388390ff3633"], -Cell[80434, 2011, 8055, 200, 70, "Code",ExpressionUUID->"c1cb2cb0-affe-4481-8bba-466bdffd6830"], -Cell[88492, 2213, 3850, 94, 70, "Code",ExpressionUUID->"06ddd9bf-8fc4-4d0b-9d6c-f963fe342eeb"], -Cell[92345, 2309, 1008, 27, 70, "Code",ExpressionUUID->"fa8d75b9-fdac-4d2b-816e-3fdcfd73c062"], -Cell[93356, 2338, 399, 9, 70, "Code",ExpressionUUID->"fb70a0d0-4fc4-4774-b981-bad53e023c05"], -Cell[93758, 2349, 3618, 95, 70, "Code",ExpressionUUID->"6f6e49b5-afea-42b4-b2f6-4509894b14e7"], -Cell[97379, 2446, 3997, 98, 70, "Code",ExpressionUUID->"994a8927-d933-4131-b778-8f90520dbb6a"], -Cell[101379, 2546, 5086, 126, 70, "Code",ExpressionUUID->"59962d10-2b71-4b6c-95d8-bd30c8869539"], -Cell[106468, 2674, 3349, 81, 70, "Code",ExpressionUUID->"9e6dfd80-e01e-4491-a780-57b7606f37ff"], -Cell[109820, 2757, 2731, 74, 70, "Code",ExpressionUUID->"ebc6f6d7-5315-45ac-8522-68e617b887ee"], -Cell[112554, 2833, 4054, 103, 70, "Code",ExpressionUUID->"ef373b17-04c9-4c99-8cd6-2b889080a060"], -Cell[116611, 2938, 3201, 83, 70, "Code",ExpressionUUID->"e7354b84-3b40-44a6-911e-2976550f4f08"], -Cell[119815, 3023, 3473, 89, 70, "Code",ExpressionUUID->"796e0d42-0be9-4844-8841-a4c2eb5c1469"], -Cell[123291, 3114, 4009, 102, 70, "Code",ExpressionUUID->"5e4f0512-15d6-4794-adc1-783deb0e3360"], -Cell[127303, 3218, 4292, 105, 70, "Code",ExpressionUUID->"c449cad0-cf0a-4ea4-b797-34b1e1e38309"], -Cell[131598, 3325, 3815, 94, 70, "Code",ExpressionUUID->"b25f5bae-1d29-46b4-8c4f-1989e748c4a2"], -Cell[135416, 3421, 6712, 171, 70, "Code",ExpressionUUID->"919a12a0-f34b-4002-bddb-d83358607b30"], -Cell[142131, 3594, 6747, 171, 70, "Code",ExpressionUUID->"7686d718-2ffe-46a8-aaba-8387ee63643d"], -Cell[148881, 3767, 2613, 74, 70, "Code",ExpressionUUID->"9ebd7f77-193c-4c30-8005-7b337b600b91"], -Cell[151497, 3843, 1393, 36, 70, "Code",ExpressionUUID->"45cdda2c-28a2-4e6d-8a09-f694d415e8ee"], -Cell[152893, 3881, 7857, 221, 70, "Code",ExpressionUUID->"f313541b-9fb1-4614-abb5-b6a176de29e3"], -Cell[160753, 4104, 2639, 69, 70, "Code",ExpressionUUID->"365460df-6ace-4e08-85e6-0f16e77106f9"], -Cell[163395, 4175, 1926, 49, 70, "Code",ExpressionUUID->"b7b8f60d-103e-4a24-8689-c945f06daf28"], -Cell[165324, 4226, 1731, 46, 70, "Code",ExpressionUUID->"e6f4c21f-4473-4479-97f6-79fffb5ee2ab"], -Cell[167058, 4274, 2595, 70, 70, "Code",ExpressionUUID->"4d05ebe2-889a-4d50-8838-eededf924b3e"], -Cell[169656, 4346, 144, 3, 70, "Code",ExpressionUUID->"4560d50d-4400-46a9-ba3b-aa3aa315a2e6"] +Cell[558, 20, 8181, 181, 1512, "Code",ExpressionUUID->"1087828b-fc99-4b35-828e-6b08b9c46110"], +Cell[8742, 203, 3140, 67, 896, "Code",ExpressionUUID->"bdba1060-b347-4b5a-add6-258b4531de51"], +Cell[11885, 272, 1086, 20, 70, "Code",ExpressionUUID->"1201d36a-047b-44fb-a128-b3a7abc18f46"], +Cell[12974, 294, 290, 6, 70, "Code",ExpressionUUID->"3a1e03a4-5092-4423-94a0-8ae8f5fe8bd3"], +Cell[13267, 302, 1865, 42, 70, "Code",ExpressionUUID->"8888320a-afa5-407b-95c2-5a6706199240"], +Cell[15135, 346, 378, 7, 70, "Code",ExpressionUUID->"9a199b9a-60fe-48a7-a199-72a12ce805dd"], +Cell[15516, 355, 672, 11, 70, "Code",ExpressionUUID->"b23cf027-fd5d-4d2c-bb0c-9da5570af393"], +Cell[16191, 368, 1192, 27, 70, "Code",ExpressionUUID->"5eb10982-a4f5-4fda-989f-696d77f6d933"], +Cell[17386, 397, 4710, 131, 70, "Code",ExpressionUUID->"df595de5-8bc8-4d39-9c8f-670af4c8f7dc"], +Cell[22099, 530, 1854, 53, 70, "Code",ExpressionUUID->"6b53b2b6-f295-4ab3-b498-32ae6466cfa5"], +Cell[23956, 585, 2101, 58, 70, "Code",ExpressionUUID->"3edc3091-2dc1-4003-b9d1-646feb7d64e4"], +Cell[26060, 645, 494, 14, 70, "Code",ExpressionUUID->"cd2d406c-1305-4b09-8770-d8093584327a"], +Cell[26557, 661, 1573, 45, 70, "Code",ExpressionUUID->"239c8834-9ca3-4b2b-b137-1f4598f40cd5"], +Cell[28133, 708, 6666, 163, 70, "Code",ExpressionUUID->"9088010e-ff2a-4351-bda9-72d47a907fe7"], +Cell[34802, 873, 9173, 220, 70, "Code",ExpressionUUID->"837c57ae-2f0d-4cd3-b24d-4409858a4db5"], +Cell[43978, 1095, 5159, 127, 70, "Code",ExpressionUUID->"972b5fd0-51c1-4f25-9e4e-e39de9c95c1d"], +Cell[49140, 1224, 2342, 66, 70, "Code",ExpressionUUID->"b3944f3b-2b4b-475c-9530-ae8e4f4b2a7a"], +Cell[51485, 1292, 3193, 77, 70, "Code",ExpressionUUID->"574e27db-a854-41fc-931b-77e9755bce18"], +Cell[54681, 1371, 3358, 83, 70, "Code",ExpressionUUID->"3957d3c8-6aae-44a8-b201-6eae5bb4ffb2"], +Cell[58042, 1456, 4882, 117, 70, "Code",ExpressionUUID->"0431dc53-18fc-45dd-a20b-f25d3b4c69fe"], +Cell[62927, 1575, 9511, 234, 70, "Code",ExpressionUUID->"99931ec6-fe26-4d93-a037-a111d3f0be22"], +Cell[72441, 1811, 3240, 82, 70, "Code",ExpressionUUID->"dca1b891-d440-47d1-a7d6-19a5fae468a6"], +Cell[75684, 1895, 2457, 60, 70, "Code",ExpressionUUID->"3e6870ed-c5de-4a65-b4cd-7c75cc4b989f"], +Cell[78144, 1957, 2426, 58, 70, "Code",ExpressionUUID->"ce8e3ea8-0e23-4c7e-9d07-1942bf39d20a"], +Cell[80573, 2017, 8052, 200, 70, "Code",ExpressionUUID->"4f3985f1-50e0-4062-b87c-fa78f9b8e616"], +Cell[88628, 2219, 3849, 94, 70, "Code",ExpressionUUID->"353e656a-db3e-4385-8724-404249e0a198"], +Cell[92480, 2315, 1007, 27, 70, "Code",ExpressionUUID->"2dd7983c-845d-4ac8-a39c-c03c33ca437f"], +Cell[93490, 2344, 399, 9, 70, "Code",ExpressionUUID->"4a099889-38b7-4d12-a5ef-0390fe973581"], +Cell[93892, 2355, 3616, 95, 70, "Code",ExpressionUUID->"4fe9e872-544f-44c3-8584-df2453a40ea0"], +Cell[97511, 2452, 3997, 98, 70, "Code",ExpressionUUID->"96c3a7e3-8cd9-4f59-bded-3d8251903642"], +Cell[101511, 2552, 7589, 184, 70, "Code",ExpressionUUID->"318b41c5-c128-49c7-9480-e1bc3c3a9971"], +Cell[109103, 2738, 3125, 76, 70, "Code",ExpressionUUID->"659b0c85-c5d6-4fa9-99de-806a75efed3b"], +Cell[112231, 2816, 2723, 74, 70, "Code",ExpressionUUID->"0e89e0da-ee11-4d24-83d1-6e26b1c83dce"], +Cell[114957, 2892, 5390, 139, 70, "Code",ExpressionUUID->"a49f5d6a-de6b-4485-9baa-608f8a4492db"], +Cell[120350, 3033, 959, 25, 70, "Code",ExpressionUUID->"0ea8590b-e43c-469f-857e-8d871e56a54f"], +Cell[121312, 3060, 3226, 85, 70, "Code",ExpressionUUID->"e6720c17-361a-417b-8ce1-bed937cd989e"], +Cell[124541, 3147, 5074, 137, 70, "Code",ExpressionUUID->"3668eeb2-5316-49f3-bd1d-f0b1c31679f8"], +Cell[129618, 3286, 4009, 102, 70, "Code",ExpressionUUID->"9b5de972-c2c6-4384-8ca4-d2c50bfe7099"], +Cell[133630, 3390, 4292, 105, 70, "Code",ExpressionUUID->"bec96dab-c7e1-445d-b7de-6cb9330c402b"], +Cell[137925, 3497, 3815, 94, 70, "Code",ExpressionUUID->"773581b8-0a54-433f-88e0-10a33e68a2cd"], +Cell[141743, 3593, 6744, 172, 70, "Code",ExpressionUUID->"93959476-938d-48e8-a3ca-260a601be476"], +Cell[148490, 3767, 6774, 172, 70, "Code",ExpressionUUID->"5d33f83e-11e3-4d08-a570-7b469b0c1b0e"], +Cell[155267, 3941, 2613, 74, 70, "Code",ExpressionUUID->"de1086c3-0aef-4ed4-ad15-f4fe87a437ef"], +Cell[157883, 4017, 1393, 36, 70, "Code",ExpressionUUID->"1bf7dcee-f7aa-4caf-b083-396beea95ed1"], +Cell[159279, 4055, 7857, 221, 70, "Code",ExpressionUUID->"69ff13db-f5f8-4d69-93a2-9616d78db631"], +Cell[167139, 4278, 2639, 69, 70, "Code",ExpressionUUID->"fc75852d-562e-4252-8723-d525ed34342a"], +Cell[169781, 4349, 1926, 49, 70, "Code",ExpressionUUID->"e574b74a-08db-4636-ae41-16139c3d3ed1"], +Cell[171710, 4400, 1731, 46, 70, "Code",ExpressionUUID->"c8d6fc5a-7303-44ab-b1d1-55e328f431f6"], +Cell[173444, 4448, 2595, 70, 70, "Code",ExpressionUUID->"e2626b9c-e617-4b63-b7fd-a54fdc948aef"], +Cell[176042, 4520, 144, 3, 70, "Code",ExpressionUUID->"3a82b3a1-c9b8-428f-b1ef-9c7f6390fa24"] } ] *) diff --git a/ParaTuGames.wl b/ParaTuGames.wl index 8b99e39..1b685d7 100644 --- a/ParaTuGames.wl +++ b/ParaTuGames.wl @@ -1,7 +1,7 @@ (* ::Package:: *) (* :Title: ParaTuGames.m - : Release Date : 21.04.2020 + : Release Date : 05.05.2020 : Preliminary version: For testing only. *) @@ -21,7 +21,7 @@ Off[Needs::nocont] holger.meinhardt@wiwi.uni-karlsruhe.de *) -(* :Package Version: 0.5 *) +(* :Package Version: 0.6 *) (* :Mathematica Version: 8.x, 9.x, 10.x, 11.x, 12.x @@ -245,7 +245,7 @@ ParaSetsToVec::argerr="Two arguments were expected."; (* :Four Arguments: *) ParaMaxSurplus::argerr="Four arguments were expected."; - +ParaAntiSurplus::argerr="Four arguments were expected."; @@ -262,7 +262,7 @@ ParaPreKernel[game_,opts:OptionsPattern[ParaPreKernel]] := ParaPreKernel[game_, payoff_List, opts:OptionsPattern[ParaPreKernel]] := Block[{dimpay,rclim}, dimpay = Dimensions[payoff]; - rclim=If[Length[T] > 11,256,156]; + rclim=If[Length[T] > 11,1024,256]; Which[Length[dimpay]===2, Which[(Last[dimpay]===Length[T] && Depth[payoff] ===3), Block[{$RecursionLimit = rclim}, ParaPreKernelAlg2[game,#, opts]&/@ payoff //Union], True, ParaPrintRemark[payoff]], @@ -302,7 +302,7 @@ ParaPreKernelElement[game_,opts:OptionsPattern[ParaPreKernelElement]] := ParaPreKernelElement[game_, payoff_List, opts:OptionsPattern[ParaPreKernelElement]] := Block[{dimpay,rclim}, dimpay = Dimensions[payoff]; - rclim=If[Length[T] > 11,256,156]; + rclim=If[Length[T] > 11,1024,256]; Which[Length[dimpay]===2, Which[(Last[dimpay]===Length[T] && Depth[payoff] ===3), Block[{$RecursionLimit = rclim}, ParaPreKernelAlg3[game,#, opts]&/@ payoff //Union], True, ParaPrintRemark[payoff]], @@ -335,13 +335,13 @@ Block[{sil, smc, optst, doi, optstep, itpay,tol,brc,pinv}, ParaDirectionOfImprovement[args___]:=(Message[ParaDirectionOfImprovement::argerr];$Failed); ParaDirectionOfImprovement[game_, payoff_List, opts:OptionsPattern[ParaDirectionOfImprovement]] := -Block[{sil, smc, optst, meff, matE, mopt,matQ, matP, varpay, mex, submex, setpay, grmex, doi, optstep,pinv}, +Module[{sil, smc, optst, meff, matE, mopt,matQ, matP, varpay, mex, submex, setpay, grmex, doi, optstep,pinv}, sil = OptionValue[Silent]; smc = OptionValue[SmallestCardinality]; optst = OptionValue[CalcStepSize]; pinv = OptionValue[PseudoInv]; mopt= OptionValue[MaximumSurpluses]; - {meff, mex} = ParaBestCoalitions[game, payoff, MaximumSurpluses -> True, SmallestCardinality -> smc]; + {meff, mex} = ParaBestCoalitions[game, payoff, AntiPreKernel -> False, MaximumSurpluses -> True, SmallestCardinality -> smc]; matE = -ParaSetsToVec[meff, T, EffVector -> True]; submex = ParallelMap[{1, -1}.# &, mex]; varpay = x[#] & /@ T; @@ -356,6 +356,8 @@ Block[{sil, smc, optst, meff, matE, mopt,matQ, matP, varpay, mex, submex, setpay If[SameQ[mopt,False],{optstep,doi},{optstep,doi,mex}] ]; + + ParaDelStar[doi_List, matE_List, smex_List]:= Block[{edvec,nrsq,tol}, edvec = matE.doi; @@ -376,7 +378,7 @@ ParaAntiPreKernel[game_,opts:OptionsPattern[ParaPreKernel]] := ParaAntiPreKernel[game_, payoff_List, opts:OptionsPattern[ParaPreKernel]] := Block[{dimpay,rclim}, dimpay = Dimensions[payoff]; - rclim=If[Length[T] > 11,256,156]; + rclim=If[Length[T] > 11,1024,256]; Which[Length[dimpay]===2, Which[(Last[dimpay]===Length[T] && Depth[payoff] ===3), Block[{$RecursionLimit = rclim}, ParaAntiPreKernelAlg2[game,#, opts]&/@ payoff //Union], True, ParaPrintRemark[payoff]], @@ -407,7 +409,7 @@ Block[{sil, smc, meff, matE, vlis, alpv,err}, (* Section Modiclus, Modified and Proper Modified Pre-Kernel *) ParaModiclus[args___]:=(Message[ParaModiclus::argerr];$Failed); -ParaModiclus[game_] := Module[{ovls, dcvals, lt, t0, t1, DCGame, mdnc}, +ParaModiclus[game_] := Block[{ovls, dcvals, lt, t0, t1, DCGame, mdnc}, ovls = v[#] & /@ Coalitions; (* Storing original game values. *) t0 = T; (* Storing original game values. *) dcvals = ParaDualCover[game]; @@ -421,7 +423,7 @@ ParaModiclus[game_] := Module[{ovls, dcvals, lt, t0, t1, DCGame, mdnc}, ParaIsModiclusQ[args___]:=(Message[ParaIsModiclusQ::argerr];$Failed); -ParaIsModiclusQ[game_,payoff_List] := Module[{ovls, dcvals, lt, t0, t1, dpay, DCGame, bcQ}, +ParaIsModiclusQ[game_,payoff_List] := Block[{ovls, dcvals, lt, t0, t1, dpay, DCGame, bcQ}, ovls = v[#] & /@ Coalitions; (* Storing original game values. *) t0 = T; (* Storing original game values. *) dcvals = ParaDualCover[game]; @@ -499,7 +501,7 @@ ParaECCoverGame[game_, payoff_] := ParaProperModPreKernel[args___]:=(Message[ParaProperModPreKernel::argerr];$Failed); -ParaProperModPreKernel[game_,opts:OptionsPattern[ParaProperModPreKernel]] := Module[{ovls, dcvals, lt, t0, t1, DCGame, mdnc}, +ParaProperModPreKernel[game_,opts:OptionsPattern[ParaProperModPreKernel]] := Block[{ovls, dcvals, lt, t0, t1, DCGame, mdnc}, ovls = v[#] & /@ Coalitions; (* Storing original game values. *) t0 = T; (* Storing original game values. *) dcvals = DualCover[game]; @@ -513,7 +515,7 @@ ParaProperModPreKernel[game_,opts:OptionsPattern[ParaProperModPreKernel]] := Mod ]; -ParaProperModPreKernel[game_,payoff_List,opts:OptionsPattern[ParaProperModPreKernel]] := Module[{ovls, dcvals, lt, t0, t1, DCGame, mdnc,dcpay}, +ParaProperModPreKernel[game_,payoff_List,opts:OptionsPattern[ParaProperModPreKernel]] := Block[{ovls, dcvals, lt, t0, t1, DCGame, mdnc,dcpay}, ovls = v[#] & /@ Coalitions; (* Storing original game values. *) t0 = T; (* Storing original game values. *) dcvals = ParaDualCover[game]; @@ -530,7 +532,7 @@ ParaProperModPreKernel[game_,payoff_List,opts:OptionsPattern[ParaProperModPreKer ParaIsModPreKernelQ[args___]:=(Message[ParaIsModPreKernelQ::argerr];$Failed); ParaIsModPreKernelQ[game_, payoff_List] := - Module[{ovls, dcvals, lt, t0, t1, DCGame, pmpkQ}, + Block[{ovls, dcvals, lt, t0, t1, DCGame, pmpkQ}, ovls = v[#] & /@ Coalitions;(*Storing original game values.*) t0 = T;(*Storing original game values.*) dcvals = ParaECCoverGame[game, payoff]; @@ -540,7 +542,7 @@ ParaIsModPreKernelQ[game_, payoff_List] := Return[pmpkQ]]; ParaIsProperModPreKernelQ[args___]:=(Message[ParaIsProperModPreKernelQ::argerr];$Failed); -ParaIsProperModPreKernelQ[game_,payoff_List] := Module[{ovls, dcvals, lt, t0, t1, dpay, DCGame, pmpkQ}, +ParaIsProperModPreKernelQ[game_,payoff_List] := Block[{ovls, dcvals, lt, t0, t1, dpay, DCGame, pmpkQ}, ovls = v[#] & /@ Coalitions; (* Storing original game values. *) t0 = T; (* Storing original game values. *) dcvals = ParaDualCover[game]; @@ -554,7 +556,7 @@ ParaIsProperModPreKernelQ[game_,payoff_List] := Module[{ovls, dcvals, lt, t0, t1 ]; (* Dual Extension of the primal game *) -ParaDualExtension[game_] := Module[{lt, T1, cls, cl1, clset, vlset, dlext,vals}, +ParaDualExtension[game_] := Block[{lt, T1, cls, cl1, clset, vlset, dlext,vals}, lt = Length[T]; cls=Subsets[T]; T1 = Range[lt + 1, 2*lt]; @@ -571,7 +573,7 @@ ParaDualExtension[game_] := Module[{lt, T1, cls, cl1, clset, vlset, dlext,vals}, (* Primal Extension of the dual game *) ParaPrimalExtension[game_] := - Module[{lt, T1, cl1, cls,clset, vlset, plext,vals}, + Block[{lt, T1, cl1, cls,clset, vlset, plext,vals}, cls=Subsets[T]; lt = Length[T]; T1 = Range[lt + 1, 2*lt]; @@ -586,7 +588,7 @@ ParaPrimalExtension[game_] := ]; -ParaDualCover[game_] := Module[{dvals, dexts, pvals, pexts}, +ParaDualCover[game_] := Block[{dvals, dexts, pvals, pexts}, {dvals, dexts} = ParaDualExtension[game]; {pvals, pexts} = ParaPrimalExtension[game]; MapThread[Max[#1, #2] &, {dvals, pvals}] @@ -597,7 +599,7 @@ ParaDualCover[game_] := Module[{dvals, dexts, pvals, pexts}, ParaSMPreKernel[args___]:=(Message[ParaSMPreKernel::argerr];$Failed); -ParaSMPreKernel[game_] := Module[{ovls, dv, av, AVGame, smpk}, +ParaSMPreKernel[game_] := Block[{ovls, dv, av, AVGame, smpk}, ovls = v[#] & /@ Coalitions;(*Storing original game values.*) dv = DualGame[game]; av = (ovls + dv)/2; @@ -608,7 +610,7 @@ ParaSMPreKernel[game_] := Module[{ovls, dv, av, AVGame, smpk}, ]; ParaIsSMPreKernelQ[args___]:=(Message[ParaIsSMPreKernelQ::argerr];$Failed); -ParaIsSMPreKernelQ[game_, payoff_] := Module[{ovls, dv, av, AVGame, smpkQ}, +ParaIsSMPreKernelQ[game_, payoff_] := Block[{ovls, dv, av, AVGame, smpkQ}, ovls = v[#] & /@ Coalitions;(*Storing original game values.*) dv = DualGame[game]; av = (ovls + dv)/2; @@ -643,33 +645,39 @@ paralistIJ[T_List]:=Flatten[ParallelTable[Table[{i, j}, {j, i + 1, Length[T]}], ParaBestcoalij01[game_, payoff_List,opts:OptionsPattern[ParaBestCoalitions]] := - Block[{anti, maxsurp, allc, plvec,sijcol,sjicol,amax,ramax,exc,exvec,intcoal,selcij,selcji,sigcoal}, + Block[{anti, maxsurp, allc, plvec,sij,sji,plj,pli,payass,amax,ramax,exc,exvec,intcoal,selcij,selcji,sigcoal}, anti = OptionValue[AntiPreKernel]; allc = OptionValue[AllCoalitions]; maxsurp = OptionValue[MaximumSurpluses]; plvec = Partition[paralistIJ[T],2]; - sijcol = Partition[#,1] &/@ plvec; - amax = If[anti===False,ParaMaxSurpluses[game, payoff,plvec],ParaAntiSurpluses[game, payoff,plvec]]; + Parallelize[pli = Map[First[#] &, plvec]; + plj = Map[#[[2]] &,plvec]; + sij=MapThread[ParaTIJsets[#1,#2] &,{pli,plj}]; + sji=MapThread[ParaTIJsets[#1,#2] &,{plj,pli}]; + payass = MapThread[Rule,{x /@ T,payoff}],Method -> "CoarsestGrained",DistributedContexts -> True]; + If[anti===False, + amax = ParallelTable[ParaMaxSijSurpluses[game,sij[[i]],sji[[i]],payass],{i,Length[sij]},Method -> "CoarsestGrained",DistributedContexts -> True], + amax = ParallelTable[ParaAntiSijSurpluses[game,sij[[i]],sji[[i]],payass],{i,Length[sij]},Method -> "CoarsestGrained",DistributedContexts -> True] + ]; exc = ParaExcessPayoff[game, payoff][[1]]; exvec = Drop[Drop[exc, 1], -1]; intcoal = Drop[Drop[Subsets[T], 1], -1]; - sjicol = Map[Reverse[#] &, sijcol]; ramax = Map[Reverse[#] &, amax]; - selcij = ParallelTable[ParaSelCoal[sijcol[[i]], intcoal, exvec, amax[[i]]],{i,Length[amax]},Method -> "CoarsestGrained"]; - selcji = ParallelTable[ParaSelCoal[sjicol[[i]], intcoal, exvec, ramax[[i]]],{i,Length[ramax]},Method -> "CoarsestGrained"]; + selcij = ParallelTable[ParaSelCoal[sij[[i]], intcoal, exvec, amax[[i]]],{i,Length[amax]},Method -> "CoarsestGrained"]; + selcji = ParallelTable[ParaSelCoal[sji[[i]], intcoal, exvec, ramax[[i]]],{i,Length[ramax]},Method -> "CoarsestGrained"]; sigcoal = MapThread[{Flatten[#1], Flatten[#2]} &,{selcij, selcji}]; If[maxsurp === False, sigcoal,{sigcoal,amax}] ]; + -ParaSelCoal[sij_List, coal_List, redexc_List, maxexc_List, opts:OptionsPattern[ParaBestCoalitions]] := - Block[{allc, smc, setsij, detpos, extval, poscoal, extcoal}, +ParaSelCoal[setsij_List, coal_List, redexc_List, maxexc_List, opts:OptionsPattern[ParaBestCoalitions]] := + Block[{allc, smc, detpos, extval, poscoal, extcoal}, allc = OptionValue[AllCoalitions]; smc = OptionValue[SmallestCardinality]; - setsij = MapThread[ParaTIJsets[#1, #2] &, sij][[1]]; - detpos = Outer[List, Position[coal, #] & /@ setsij // Flatten]; - extval = Extract[redexc, detpos]; + detpos=MapThread[List,{coal,redexc}]; + extval = Last[#] &/@ Cases[detpos,{#,___}] &/@ setsij // Flatten; poscoal = Position[extval, First[maxexc]]; extcoal = Extract[setsij, poscoal]; (* Taking the coalition with smallest/largest (First/Last) cardinality if extcoal > 1 *) @@ -686,7 +694,7 @@ ParaSetsToVec[mg_List, T_List, opts:OptionsPattern[ParaSetsToVec]] := Block[{effvec, zrv, pscoal, replzr,coasts, onesoft}, effvec = OptionValue[EffVector]; zrv = Table[0, {i, Length[T]}]; - pscoal = ParallelMap[Outer[List, #] &, mg]; + pscoal = Map[Outer[List, #] &, mg]; replzr = Parallelize[Map[ReplacePart[zrv, 1, #] &, #] &/@ pscoal]; coasts = Parallelize[MapThread[Subtract[#1, #2] &, #] &/@ replzr]; onesoft = Table[1,{i,Length[T]}]; @@ -703,6 +711,15 @@ ParaMaxSurpluses[game_, payoff_List,dir_List] := MapThread[List,{maxpi,maxpj}],Method -> "CoarsestGrained",DistributedContexts -> None] ]; + +(* We refrain from overloading due to its negative effect on the performance of the (Anti-)Pre-Kernel computation!!! *) +ParaMaxSijSurpluses[game_, sij_List, sji_List,payoff_List] := + Block[{maxpi,maxpj}, + maxpi = ParaMaxSijSurplus[game,sij,payoff]; + maxpj = ParaMaxSijSurplus[game,sji,payoff]; + Return[{maxpi,maxpj}] + ]; + ParaAntiSurpluses[game_, payoff_List,dir_List] := Block[{pli,plj,minpi,minpj,res}, Parallelize[pli = First[#] &/@ dir; @@ -713,6 +730,15 @@ ParaAntiSurpluses[game_, payoff_List,dir_List] := ]; +ParaAntiSijSurpluses[game_, sij_List, sji_List,payoff_List] := + Block[{minpi,minpj}, + minpi = ParaAntiSijSurplus[game,sij,payoff]; + minpj = ParaAntiSijSurplus[game,sji,payoff]; + Return[{minpi,minpj}] + ]; + + + ParaMaxSurplus[args___]:=(Message[ParaMaxSurplus::argerr];$Failed); ParaMaxSurplus[game_, pi_, pj_, payoff_List] := Block[{payass}, @@ -723,8 +749,15 @@ ParaMaxSurplus[game_, pi_, pj_, payoff_List] := Depth[payass] == 4,Max[ReplaceAll[(v[#] - x[#]) & /@ ParaTIJsets[pi,pj],payass]], True, Print["Wrong data format."];Return[]] ]; + +ParaMaxSijSurplus[game_,sij_List, payass_List] := + Block[{}, + Max[ReplaceAll[Map[v[#] - x[#] &, sij],payass]] + ]; + +ParaAntiSurplus[args___]:=(Message[ParaMaxSurplus::argerr];$Failed); ParaAntiSurplus[game_, pi_, pj_, payoff_List] := Block[{payass}, payass = Which[Depth[payoff]==3, MapThread[Rule,{x /@ T,#}]& /@ payoff, @@ -735,6 +768,11 @@ ParaAntiSurplus[game_, pi_, pj_, payoff_List] := True, Print["Wrong data format."];Return[]] ]; +ParaAntiSijSurplus[game_,sij_List, payass_List] := + Block[{}, + Min[ReplaceAll[Map[v[#] - x[#] &, sij],payass]] + ]; + ParaTIJsets[i_Integer, j_Integer]:=DeleteCases[Cases[ProperCoalitions,{___,i,___}],{___,j,___}]; @@ -808,7 +846,7 @@ ParaMaxExcessBalanced[game_, payoff_List]:= Block[{dimpay}, ParaMaxExcessBalCheck[game_,payoff_List]:= Block[{plpr,rvpr,asspay,sij,sji,msrplij,msrplji,msrij,msrji,lthij,tolvec,sysij,sysji,eqQ}, plpr = Partition[paralistIJ[T],2]; - rvpr = Reverse[#] & /@ plpr; + rvpr = Map[Reverse[#] &, plpr]; asspay = ParaAssgPay[payoff]; Parallelize[ sij = ParaTIJsets[#[[1]], #[[2]]] & /@ plpr; @@ -840,7 +878,7 @@ ParaMinExcessBalanced[game_, payoff_List]:= Block[{dimpay}, ParaMinExcessBalCheck[game_,payoff_List]:= Block[{plpr, rvpr, asspay,sij,sji,msrplij,msrplji,msrij, msrji,lthij,tolvec,sysij,sysji,eqQ}, plpr = Partition[paralistIJ[T],2]; - rvpr = Reverse[#] & /@ plpr; + rvpr = Map[Reverse[#] &,plpr]; asspay = ParaAssgPay[payoff]; Parallelize[ sij = ParaTIJsets[#[[1]], #[[2]]] & /@ plpr; diff --git a/README b/README index 3428461..2c07b4e 100644 --- a/README +++ b/README @@ -110,10 +110,10 @@ the command In[1]:= PacletInformation["TUG"] -Out[1]= {Name -> TUG, Version -> 2.6.0, BuildNumber -> , Qualifier -> , WolframVersion -> 10+, +Out[1]= {Name -> TUG, Version -> 2.6.1, BuildNumber -> , Qualifier -> , WolframVersion -> 10+, SystemID -> All, Description -> A Mathematica Package for Cooperative Game Theory, Category -> , Creator -> Holger Ingmar Meinhardt , - Publisher -> , Support -> , Internal -> False, Location -> /home/kit/xxx/xxxx/.Mathematica/Paclets/Repository/TUG-2.6.0 + Publisher -> , Support -> , Internal -> False, Location -> /home/kit/xxx/xxxx/.Mathematica/Paclets/Repository/TUG-2.6.1 Context -> {TUG`coop`, TUG`vertex`, TUG`}, Enabled -> True, Loading -> Manual} @@ -123,7 +123,7 @@ To get the same information and beyond that under Mathematica version 12.1, it i In[1]:= PacletObject["TUG"][All] -Out[1]= {"Name" -> "TUG", "Version" -> "2.6.0", "WolframVersion" -> "10+", +Out[1]= {"Name" -> "TUG", "Version" -> "2.6.1", "WolframVersion" -> "10+", "Qualifier" -> "", "SystemID" -> All, "Description" -> "A Mathematica Package for Cooperative Game Theory", "Category" -> Missing["NotAvailable"], "Keywords" -> Missing["NotAvailable"], "UUID" -> Missing["NotAvailable"], @@ -133,7 +133,7 @@ Out[1]= {"Name" -> "TUG", "Version" -> "2.6.0", "WolframVersion" -> "10+", "Internal" -> False, "Context" -> {"TUG`coop`", "TUG`vertex`", "TUG`"}, "Loading" -> Manual, "AutoUpdating" -> False, "Enabled" -> True, - "Location" -> "/home/kit/xxx/xxxx/.Mathematica/Paclets/Repository/TUG-2.6.0"} + "Location" -> "/home/kit/xxx/xxxx/.Mathematica/Paclets/Repository/TUG-2.6.1"} or alternatively @@ -170,17 +170,17 @@ operating system that can be found from the Mathematica documentation. Start Mathematica, open a notebook, and execute therein -PacletInstall["/full/Path/to/TUG-2.6.0.paclet"] +PacletInstall["/full/Path/to/TUG-2.6.1.paclet"] that should return the value -Paclet[TUG, 2.6.0, <>] +Paclet[TUG, 2.6.1, <>] to indicate a successful installation. Notice that -"/full/Path/to/TUG-2.6.0.paclet" +"/full/Path/to/TUG-2.6.1.paclet" -indicates the directory where the TUG-2.6.0.paclet is located at your hard-disk. +indicates the directory where the TUG-2.6.1.paclet is located at your hard-disk. Alternatively, one can directly install the package from GitHub with the help of the Mathematica-Tools from @@ -243,8 +243,8 @@ In[2]:= Needs["TUG`"] =================================================== Loading Package 'TuGames' for Unix =================================================== -TuGames V2.6.0 by Holger I. Meinhardt -Release Date: 26.05.2019 +TuGames V2.6.1 by Holger I. Meinhardt +Release Date: 05.05.2020 Program runs under Mathematica Version 8.0 or later Version 8.x or higher is recommended =================================================== diff --git a/README.md b/README.md index 08c0989..b549e58 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# *Mathematica* Package: *TuGames* Version 2.6.0 +[![GitHub (pre-)release](https://img.shields.io/github/release/himeinhardt/TuGames/all.svg)](https://github.com/himeinhardt/TuGames/releases) + +# *Mathematica* Package: *TuGames* Version 2.6.1 ``` Contents: @@ -122,10 +124,10 @@ the command ``` In[1]:= PacletInformation["TUG"] -Out[1]= {Name -> TUG, Version -> 2.6.0, BuildNumber -> , Qualifier -> , WolframVersion -> 10+, +Out[1]= {Name -> TUG, Version -> 2.6.1, BuildNumber -> , Qualifier -> , WolframVersion -> 10+, SystemID -> All, Description -> A Mathematica Package for Cooperative Game Theory, Category -> , Creator -> Holger Ingmar Meinhardt , - Publisher -> , Support -> , Internal -> False, Location -> /home/kit/xxx/xxxx/.Mathematica/Paclets/Repository/TUG-2.6.0 + Publisher -> , Support -> , Internal -> False, Location -> /home/kit/xxx/xxxx/.Mathematica/Paclets/Repository/TUG-2.6.1 Context -> {TUG`coop`, TUG`vertex`, TUG`}, Enabled -> True, Loading -> Manual} ``` @@ -135,7 +137,7 @@ To get the same information and beyond that under *Mathematica* version 12.1, it In[1]:= PacletObject["TUG"][All] ``` ``` -Out[1]= {"Name" -> "TUG", "Version" -> "2.6.0", "WolframVersion" -> "10+", +Out[1]= {"Name" -> "TUG", "Version" -> "2.6.1", "WolframVersion" -> "10+", "Qualifier" -> "", "SystemID" -> All, "Description" -> "A Mathematica Package for Cooperative Game Theory", "Category" -> Missing["NotAvailable"], "Keywords" -> Missing["NotAvailable"], "UUID" -> Missing["NotAvailable"], @@ -145,7 +147,7 @@ Out[1]= {"Name" -> "TUG", "Version" -> "2.6.0", "WolframVersion" -> "10+", "Internal" -> False, "Context" -> {"TUG`coop`", "TUG`vertex`", "TUG`"}, "Loading" -> Manual, "AutoUpdating" -> False, "Enabled" -> True, - "Location" -> "/home/kit/xxx/xxxx/.Mathematica/Paclets/Repository/TUG-2.6.0"} + "Location" -> "/home/kit/xxx/xxxx/.Mathematica/Paclets/Repository/TUG-2.6.1"} ``` or alternatively @@ -188,22 +190,22 @@ operating system that can be found from the Mathematica documentation. Start Mathematica, open a notebook, and execute therein ``` -PacletInstall["/full/Path/to/TUG-2.6.0.paclet"] +PacletInstall["/full/Path/to/TUG-2.6.1.paclet"] ``` that should return the value ``` -Paclet[TUG, 2.6.0, <>] +Paclet[TUG, 2.6.1, <>] ``` to indicate a successful installation. Notice that ``` -"/full/Path/to/TUG-2.6.0.paclet" +"/full/Path/to/TUG-2.6.1.paclet" ``` -indicates the directory where the `TUG-2.6.0.paclet` is located at your hard-disk. +indicates the directory where the `TUG-2.6.1.paclet` is located at your hard-disk. Alternatively, one can directly install the package from GitHub with the help of the *Mathematica-Tools* from @@ -271,8 +273,8 @@ In[2]:= Needs["TUG`"] =================================================== Loading Package 'TuGames' for Unix =================================================== -TuGames V2.6.0 by Holger I. Meinhardt -Release Date: 22.04.2020 +TuGames V2.6.1 by Holger I. Meinhardt +Release Date: 05.05.2020 Program runs under Mathematica Version 8.0 or later Version 8.x or higher is recommended =================================================== diff --git a/TuGames.nb b/TuGames.nb index fd3ee2e..a52e86a 100644 --- a/TuGames.nb +++ b/TuGames.nb @@ -10,10 +10,10 @@ NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 158, 7] -NotebookDataLength[ 1101267, 27654] -NotebookOptionsPosition[ 1081403, 27441] -NotebookOutlinePosition[ 1081795, 27457] -CellTagsIndexPosition[ 1081752, 27454] +NotebookDataLength[ 1108775, 27844] +NotebookOptionsPosition[ 1088711, 27629] +NotebookOutlinePosition[ 1089103, 27645] +CellTagsIndexPosition[ 1089060, 27642] WindowFrame->Normal*) (* Beginning of Notebook Content *) @@ -56,7 +56,7 @@ Cell[BoxData[ RowBox[{"(*", " ", RowBox[{":", RowBox[{"Package", " ", "Version"}], ":", " ", - RowBox[{"2.6", ".0"}]}], " ", "*)"}], "\n", "\n", + RowBox[{"2.6", ".1"}]}], " ", "*)"}], "\n", "\n", RowBox[{"(*", " ", "\n", " ", RowBox[{ RowBox[{":", @@ -547,8 +547,8 @@ Cell[BoxData[ RowBox[{"Ed", "."}], ")"}], ".", " ", "Economics"}], " ", "and", " ", "Financial", " ", "Modeling", " ", "with", " ", "Mathematica"}]}], ",", " ", "\n", " ", "Springer", ",", " ", "1992."}], " ", "\n", - "*)"}]}]}]], "Code",ExpressionUUID->"9a8aeddf-de48-46c5-8fd3-\ -783ac9b2ee66"], + "*)"}]}]}]], "Code",ExpressionUUID->"6e90713c-1023-4c94-8452-\ +0d9536c84cab"], Cell[BoxData[ RowBox[{"(*", " ", "\n", " ", @@ -829,11 +829,8 @@ Cell[BoxData[ RowBox[{ "6", " ", "we", " ", "have", " ", "to", " ", "check", " ", "158", " ", RowBox[{"classes", ".", "\n", "\n", " ", "Version"}], " ", "2.6", - ".0"}], ":", "\n", " ", - RowBox[{ - RowBox[{ - "Adding", " ", "functions", " ", "to", " ", "compute", " ", "the", " ", - "EPSD"}], "-", "Value"}]}]}], ",", " ", + ".0", "\n", "\n", " ", "Adding", " ", "functions", " ", "to", " ", + "compute", " ", "the", " ", "EPSD"}], "-", "Value"}]}], ",", " ", RowBox[{"Chi", "-", "Value"}], ",", " ", RowBox[{"PD", "-", RowBox[{ @@ -849,8 +846,17 @@ Cell[BoxData[ RowBox[{".", "wl", ".", "\n", "\n", " ", "Performing"}], " ", "some", " ", "code", " ", "maintenance", " ", "and", " ", "minor", " ", "bug", " ", - RowBox[{"fixes", "."}]}]}]}], "\n", "\n", "*)"}]], "Code",ExpressionUUID->\ -"ee731aa3-8b1e-4e3d-b8b7-1441a0d9c95c"], + RowBox[{"fixes", ".", "\n", "\n", " ", "Version"}], " ", "2.6", ".1", + "\n", "\n", " ", "Code", " ", "revision", " ", "and", " ", + RowBox[{"optimization", ".", " ", "The"}], " ", + RowBox[{"(", + RowBox[{"anti", "-"}], ")"}], "pre"}], "-", + RowBox[{ + "kernel", " ", "computation", " ", "is", " ", "now", " ", "faster", " ", + "up", " ", "to", " ", "a", " ", "factor", " ", "3", " ", "in", " ", + "serial", " ", "as", " ", "well", " ", "as", " ", + RowBox[{"parallel", "."}]}]}]}], "\n", " ", "\n", "*)"}]], "Code",Express\ +ionUUID->"86c90b3c-7e95-4c14-a153-1224f84e30ad"], Cell[BoxData[ RowBox[{"(*", " ", "\n", " ", @@ -860,7 +866,7 @@ Cell[BoxData[ RowBox[{"TUG", "/", "Guides"}], "/", "ManualTuGames"}], " ", "from", " ", "the", " ", "Documentation", " ", RowBox[{"Center", "."}]}]}], " ", "\n", "*)"}]], "Code",ExpressionUUID->\ -"0a942dd6-73d8-4f51-a78a-18dbeb0b9973"], +"7885ae85-4f14-4a42-a986-c66293e02ae6"], Cell[BoxData[ RowBox[{ @@ -873,7 +879,7 @@ Cell[BoxData[ "this", " ", "project", " ", "is", " ", "licensed", " ", "under", " ", "the", " ", "MIT", " ", "License", " ", RowBox[{"terms", "."}]}]}], "\n", " ", "\n", "*)"}], "\n"}]], "Code",E\ -xpressionUUID->"66d67f11-4f56-4435-8b94-78f024347417"], +xpressionUUID->"d40f526d-4f66-468c-b834-ad7741f52fbd"], Cell[BoxData[ RowBox[{ @@ -948,7 +954,7 @@ Cell[BoxData[ "state", " ", "of", " ", "Baden"}], "-", RowBox[{"W\[UDoubleDot]rttemberg", " ", "through", " ", RowBox[{"bwHPC", "."}]}]}]}], "\n", "*)"}], " "}]], "Code",ExpressionU\ -UID->"1fb796d8-104f-432f-81e9-6abdd691b6c4"], +UID->"2ee71cf6-d89d-4b5c-b6b9-82d3aecb12c6"], Cell[BoxData[{ RowBox[{ @@ -979,9 +985,9 @@ Cell[BoxData[{ "\"\<===================================================\>\"", "]"}], ";", "\n", RowBox[{ - "Print", "[", "\"\\"", "]"}], + "Print", "[", "\"\\"", "]"}], ";", "\n", - RowBox[{"Print", "[", "\"\\"", "]"}], ";", + RowBox[{"Print", "[", "\"\\"", "]"}], ";", "\n", RowBox[{ "Print", "[", @@ -1007,7 +1013,7 @@ Cell[BoxData[{ analyzed. T is the player set and values are the worth for the coalitions.\n \ Do not forget the semicolons, otherwise some compatibly problems with\n M. \ Carter's ShapleyValue[] occurs\>\""}], ";"}]}], "Code",ExpressionUUID->\ -"fe18ee2c-6e92-4fc1-9b47-c835f26a7275"], +"7ed2d7c7-3656-471d-81e9-4c90f17fbc36"], Cell[BoxData[{ RowBox[{ @@ -1091,7 +1097,7 @@ returns only 'True' or 'False'.\>\""}], ";"}], "\n"}], "\n", It returns 'True' or 'False'. Calling the function with the option will \ return\n the sum of the marginal contributions for each coalition S w.r.t. to \ each \n superset S union {j}. These values must be non-negative.\>\""}], - ";"}]}], "Code",ExpressionUUID->"4a812198-4103-4011-bd95-37fb03e48b65"], + ";"}]}], "Code",ExpressionUUID->"90155a2d-7e9a-496f-8a12-7b6880ff3f3f"], Cell[BoxData[ RowBox[{ @@ -1101,7 +1107,7 @@ Cell[BoxData[ "\"\\""}], ";"}], - " "}]], "Code",ExpressionUUID->"12893285-1219-41d4-afda-f0f777ed6b1d"], + " "}]], "Code",ExpressionUUID->"f25d6aae-db59-4f0d-92a1-e65709bb1e93"], Cell[BoxData[{ RowBox[{ @@ -1168,8 +1174,8 @@ See Funaki (1986).\>\""}], ";"}], "\n"}], "\n", RowBox[{ RowBox[{"TIJsets", "::", "usage"}], " ", "=", " ", "\n", "\"\\""}], ";"}]}], "Code",ExpressionUUID->"98322137-aae4-4870-9cbc-\ -8c62b00dd9e4"], +j.\>\""}], ";"}]}], "Code",ExpressionUUID->"4a9b7909-d594-4d07-85ae-\ +d3f64721bff1"], Cell[BoxData[{ RowBox[{ @@ -1261,7 +1267,7 @@ core.\n That means, a vertex of the kernel solution inside of the least core \ will be computed.\n Thus, in many cases the Nucleolus should be computed. The \ algorithm is based \n on a method by Peleg to translate the definition of the \ Nucleolus into \n a sequence of linear programs.\>\""}], ";"}]}], "Code",Expre\ -ssionUUID->"86c1efba-f1eb-41e7-a009-a06d3d919ecb"], +ssionUUID->"d049eb5e-a05c-476a-a3fc-39736e2bedc9"], Cell[BoxData[ RowBox[{ @@ -1272,7 +1278,7 @@ core.\n The algorithm is based on a method by Peleg to translate the \ definition of the \n Nucleolus into a sequence of linear programs. The \ recursion stops, if the set\n of new equal constraints is empty. A simplex \ method is now used to \n increase its computational reliability.\>\""}], - ";"}]], "Code",ExpressionUUID->"83d0b6da-e68e-4bb8-87f5-9b37d4c27963"], + ";"}]], "Code",ExpressionUUID->"0504ea08-07a0-461f-bd00-b65742f0fde6"], Cell[BoxData[{ RowBox[{ @@ -1336,15 +1342,17 @@ then it computes the least square nucleolus.\>\""}], ";"}], "\n"}], "\n", first, second, ..., kth maximal excess.\>\""}], ";"}], "\n"}], "\n", RowBox[{ RowBox[{ - RowBox[{"StandardSolution", "::", "usage"}], " ", "=", " ", "\n", - "\"\\""}], "\n"}], "\n", + RowBox[{ + RowBox[{"StandardSolution", "::", "usage"}], " ", "=", " ", "\n", + "\"\\""}], ";"}], "\n"}], "\n", RowBox[{ RowBox[{ - RowBox[{"NucleolusThreePerson", "::", "usage"}], " ", "=", " ", "\n", - "\"\\""}], "\n"}], "\n", +(2010).\>\""}], ";"}], "\n"}], "\n", RowBox[{ RowBox[{ RowBox[{ @@ -1363,8 +1371,8 @@ original game. Do not confound this command\n with the function \ ModfiedNucleolus[]. The algorithm is based on a method by Peleg to translate\n\ the definition of the Nucleolus into a sequence of linear programs on the \ pre-imputation set.\n A simplex method is now used to increase its \ -computational reliability.\>\""}], ";"}]}], "Code",ExpressionUUID->"874de4c3-\ -bd12-4792-aadc-c1816792c836"], +computational reliability.\>\""}], ";"}]}], "Code",ExpressionUUID->"a1a92790-\ +3261-400d-ac2a-3e4d7b9ed092"], Cell[BoxData[{ RowBox[{ @@ -1484,7 +1492,7 @@ otherwise 'False'.\>\""}], ";"}], "\n"}], "\n", "\"\\""}], ";"}]}], "Code",ExpressionUUID->\ -"e262b8da-76f9-4d39-aacf-7a7130034ede"], +"d274cc56-88f7-46b2-9254-63f86b0469f8"], Cell[BoxData[{ RowBox[{ @@ -1598,7 +1606,7 @@ This information can be obtained by invoking the option InFavor. Notice that \ \n whenever the option EffVector is set to 'True', then the first vector must \ be positive, since it is \n related to the grand coalition. Similar to \ SetsToVec[]. See also SetsToVec[].\>\""}], ";"}]}], "Code",ExpressionUUID->\ -"384b8100-b0ed-44fc-9129-488f728bdefe"], +"67f6bf0a-5136-42aa-80ab-119f48d636ac"], Cell[BoxData[{ RowBox[{ @@ -1623,8 +1631,8 @@ the function BargainUnanMatrix[game,payoff,EffVector -> False].\>\""}], ";"}], "\"\\""}], ";"}]}], "Code",ExpressionUUID->"56be4b08-2581-4758-9ad8-\ -dd98dbc3c0bf"], +(2013).\>\""}], ";"}]}], "Code",ExpressionUUID->"c3bf17d5-e46b-4703-a90a-\ +0f7ba28d108b"], Cell[BoxData[ RowBox[{ @@ -1633,7 +1641,7 @@ Cell[BoxData[ "\"\\""}], ";"}]], "Code",Expressio\ -nUUID->"a13b99f1-434d-45c2-95e7-4f3406f13959"], +nUUID->"c1de78e7-ad3c-4878-9ed5-78317e91f2ef"], Cell[BoxData[{ RowBox[{ @@ -1670,7 +1678,7 @@ improvement in order reduce \n the maximum surpluses.\>\""}], ";"}], solution by iteratively carrying \n out transfers between pairs of players. \ The suggested algorithm is due to M. Maschler. For details \n see U. Faigle, \ W. Kern and J. Kuipers (1998).\>\""}], ";"}]}], "Code",ExpressionUUID->\ -"ea04aedd-1f1c-426a-833d-95cb51bcb65a"], +"4df95570-a7d5-42da-8a6c-2bb2f6844cb8"], Cell[BoxData[ RowBox[{ @@ -1680,7 +1688,7 @@ Cell[BoxData[ solution by iteratively carrying \n out transfers between pairs of players. \ The suggested algorithm is due to M. Maschler. For details \n see U. Faigle, \ W. Kern and J. Kuipers (1998).\>\""}], ";"}]], "Code",ExpressionUUID->\ -"45fa5cf6-5820-47b1-9a6f-39e50692ff18"], +"3155f44f-090d-4ac3-9796-9c72d06f6600"], Cell[BoxData[{ RowBox[{ @@ -1767,7 +1775,7 @@ checked.\>\""}], ";"}], "\n"}], "\n", "\"\\""}], ";"}]}], "Code",ExpressionUU\ -ID->"db668b20-cafe-4c5c-b7cd-791a9dc3f4cc"], +ID->"87b3ab76-85af-49fe-8669-7187453f81dc"], Cell[BoxData[{ RowBox[{ @@ -2228,11 +2236,12 @@ allocations.\>\""}], ";"}], " ", "\n"}], "\n", allocations. An imputation x \n is in the core iff x =< dual v.\>\""}], ";"}], " ", "\n"}], "\n", RowBox[{ - RowBox[{"BalancedInequalityQ", "::", "usage"}], " ", "=", " ", "\n", - "\"\\""}]}], \ -"Code",ExpressionUUID->"6a490d82-c3be-4fe8-8fab-8246b0a22995"], +latter includes also the case that the system is not\nbalanced.\>\""}], + ";"}]}], "Code",ExpressionUUID->"31db9215-1ad6-4b56-b6c8-7ba9324fd548"], Cell[BoxData[{ RowBox[{ @@ -2286,8 +2295,8 @@ coordinate for each coalition size.\>\""}], ";"}], "\n"}], "\n", inequalities of the unanimity coordinates \n constraints for strict positive \ sums. It examines if the sufficient condition of convexity in terms \n of \ unanimity coordinates is satisfied. The return value is 'True' or 'False'. \ -See also EvalSumMinCoord[].\>\""}], ";"}]}], "Code",ExpressionUUID->"6b61ae3a-\ -813c-4b4b-8e40-5a6fd9c67d31"], +See also EvalSumMinCoord[].\>\""}], ";"}]}], "Code",ExpressionUUID->"e76b2c47-\ +c79a-4266-a1b6-45a73bc5e9e3"], Cell[BoxData[ RowBox[{ @@ -2298,8 +2307,8 @@ Cell[BoxData[ unanimity coordinates constraints \n for positive sums. It examines if the \ sufficient condition of convexity in terms of unanimity \n coordinates is \ satisfied. The return value is 'True' or 'False'. See also EvalSumMinCoord[].\ -\>\""}], ";"}], " "}]], "Code",ExpressionUUID->"6701ecd9-517f-47e0-ad49-\ -beef46504a17"], +\>\""}], ";"}], " "}]], "Code",ExpressionUUID->"609a611b-ea60-4e5c-90ee-\ +58b52b0e6ccd"], Cell[BoxData[{ RowBox[{ @@ -2317,8 +2326,8 @@ on the results, all terms must be non-negative.\>\""}], ";"}], "\n"}], "\n", sufficient and necessary condition \n of average convexity of the game in \ terms of unanimity coordinates. Calling the function with its options\n open \ a glance on the results, all terms must be non-negative. See Solano and \ -Rafels (1996).\>\""}], ";"}]}], "Code",ExpressionUUID->"3802b4f0-eb3f-4401-\ -95d8-217a20687ec6"], +Rafels (1996).\>\""}], ";"}]}], "Code",ExpressionUUID->"fe52f8b9-1215-4022-\ +90b4-41ec9823c310"], Cell[BoxData[{ RowBox[{ @@ -2363,8 +2372,8 @@ non-negative vector [q; p1, ..., pt], \n where T={1,...t}=Range[t]. It is \ admissible to specify the vector of weights by the following \n format of \ lists {q, p1, ...,pt} or {q, {p1, ..., pt}} or {{q}, {p1, ...,pt}}. The \ resultant list can \n then be used to define a game by using the function \ -DefineGame[].\>\""}], ";"}]}], "Code",ExpressionUUID->"9940d43a-620f-44e7-\ -8919-e22d68a91561"], +DefineGame[].\>\""}], ";"}]}], "Code",ExpressionUUID->"b1c1b4cb-91f5-4b2b-\ +8a2f-7e295aa442c3"], Cell[BoxData[ RowBox[{ @@ -2479,7 +2488,7 @@ segment of the (pre)-kernel.\>\""}], ";"}], "\n", "\n", is a kernel catcher.\n This function may useful in connection with the \ package 'TuGamesView3D' to visualize for \n four person games the upper set. \ This set can coincide with the reasonable set.\>\""}], ";"}]}]}]], "Code",Expr\ -essionUUID->"d74e86ee-5234-4aab-8768-d85dce2e7153"], +essionUUID->"e3253276-75ab-4721-9552-9243a0336084"], Cell[BoxData[ RowBox[{ @@ -3274,7 +3283,7 @@ Cell[BoxData[ RowBox[{"10", "^", RowBox[{"(", RowBox[{"-", "12"}], ")"}]}]}]}], "}"}]}], ";"}]}], "\n", "]"}], - ";"}]], "Code",ExpressionUUID->"ccd3fe48-9af4-4983-8b11-06963a82487e"], + ";"}]], "Code",ExpressionUUID->"1f025583-ef79-44f6-a23f-c64696650801"], Cell[BoxData[ RowBox[{ @@ -3764,7 +3773,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"ZeroOneNormalization", "::", "argerr"}], "=", "\"\\""}], ";"}]}]}]], "Code",ExpressionUUID\ -->"7f2a3d3a-c1f3-47ed-adf0-13ae17aaf84a"], +->"2c05d30e-ec7c-4b41-8f16-7dac9353beca"], Cell[BoxData[ RowBox[{ @@ -3996,7 +4005,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"UtopiaSum", "::", "argerr"}], "=", "\"\\""}], ";"}]}]}]], "Code",ExpressionUU\ -ID->"df1c807d-7253-4888-afe8-3e64e84995be"], +ID->"71d175b4-feb0-4299-a968-ab5bec45977e"], Cell[BoxData[ RowBox[{ @@ -4124,8 +4133,8 @@ Cell[BoxData[ RowBox[{"LinkCreate", "[", "]"}], ",", RowBox[{"{", RowBox[{"kc", "+", "6"}], "}"}]}], "]"}]}]}], "\n", " ", "]"}], - ";"}]}]}]], "Code",ExpressionUUID->"2cba6317-c707-4694-9f14-\ -f7726956089a"], + ";"}]}]}]], "Code",ExpressionUUID->"9f15ea88-d739-4e85-8e52-\ +cb077a334f7e"], Cell[BoxData[ RowBox[{ @@ -4247,7 +4256,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"DirectoryName", "[", "$InputFileName", "]"}], ",", " ", "\"\\""}], "}"}], "]"}]}]}]}]}], "\n", "]"}], - ";"}]}]}]], "Code",ExpressionUUID->"ebcc046c-7def-496c-be8d-162a779f2ba7"], + ";"}]}]}]], "Code",ExpressionUUID->"b26542bf-fe55-472c-ac0c-8f98c2ffa05d"], Cell[BoxData[{ RowBox[{ @@ -4256,7 +4265,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"Off", "[", RowBox[{"ConstrainedMax", "::", "deprec"}], "]"}], ";"}]}], "Code",Expressi\ -onUUID->"fb4b8dac-9fab-4dec-bb2f-1ac0c6187c97"], +onUUID->"65d8f992-6546-42c3-b52e-a6a05d197b80"], Cell[BoxData[ RowBox[{ @@ -4333,7 +4342,7 @@ Cell[BoxData[ RowBox[{"{", RowBox[{"Coalitions", ",", " ", "values"}], "}"}]}], "]"}], ";"}]}], "]"}]}], ")"}]}], ";"}]}]}]], "Code",ExpressionUUID->\ -"ef917c83-6883-4676-b5d8-a4269646b8eb"], +"a9e28b5b-4488-4996-a7c5-ac26fce18b7f"], Cell[BoxData[{ RowBox[{ @@ -4382,8 +4391,8 @@ Cell[BoxData[{ RowBox[{"0", ",", RowBox[{"Drop", "[", RowBox[{"cs", ",", "1"}], "]"}]}], "}"}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"6a3a65d3-f4e5-469f-9fee-\ -5befa6c032ba"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"f3894796-d0d7-4afd-9751-\ +ddc7723b78cd"], Cell[BoxData[{ RowBox[{ @@ -4521,7 +4530,7 @@ Cell[BoxData[{ " ", ",", " ", "True"}], "]"}], ";", "\n", " ", RowBox[{"Apply", "[", RowBox[{"And", ",", " ", "clsup"}], "]"}]}]}], "\n", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"dd302531-6560-462b-83fe-f135a9eb7e79"], + ";"}]}], "Code",ExpressionUUID->"c4a85d94-2ae3-4940-83a2-e50c683f8334"], Cell[BoxData[ RowBox[{ @@ -4656,8 +4665,8 @@ Cell[BoxData[ RowBox[{"Print", "[", "\"\\"", "]"}]}], "]"}], ",", "\n", " ", "True", ",", RowBox[{"Print", "[", "\"\\"", "]"}]}], "]"}]}], " ", - "\n", "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"723d9fdf-9e76-48fd-\ -a7d8-fcdeba73c5fd"], + "\n", "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"86dc8a83-88ef-4557-\ +9f18-1a182ff37fbf"], Cell[BoxData[ RowBox[{ @@ -4700,8 +4709,8 @@ Cell[BoxData[ " ", "sumweights"}], " ", "/.", " ", RowBox[{"True", " ", "->", " ", "1"}]}], " ", "/.", " ", RowBox[{"False", " ", "->", " ", "0"}]}]}]}], " ", "\n", "]"}]}], - ";"}], "\n"}]], "Code",ExpressionUUID->"0852eca1-7005-42cf-9e98-\ -e52db7d08a63"], + ";"}], "\n"}]], "Code",ExpressionUUID->"6440eca2-c093-4edc-9cb4-\ +e6c4b44b5e50"], Cell[BoxData[ RowBox[{ @@ -4825,7 +4834,7 @@ Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"StandardSolution", "[", "game_", "]"}], ":=", - RowBox[{"Module", "[", + RowBox[{"Block", "[", RowBox[{ RowBox[{"{", "dmQ", "}"}], ",", "\n", " ", RowBox[{ @@ -4859,8 +4868,8 @@ Cell[BoxData[ ";"}], "\n", "\n", RowBox[{"(*", " ", RowBox[{"Section", " ", "general", " ", "functions", " ", "ends"}], " ", - "*)"}]}]}]], "Code",ExpressionUUID->"12ab05d3-2554-4963-9d12-\ -337cb69d96fd"], + "*)"}]}]}]], "Code",ExpressionUUID->"8a3e44f1-54a8-4bc0-a1c5-\ +da2346a9b6a1"], Cell[BoxData[ RowBox[{ @@ -5214,8 +5223,8 @@ Cell[BoxData[ RowBox[{ RowBox[{"Last", "[", "#", "]"}], " ", "&"}], " ", "/@", " ", "smarg"}]}], "}"}]}], "\n", " ", "]"}]}]}], "\n", - "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"2b1dde06-8a18-487f-87aa-\ -605b262c1642"], + "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"158c879f-fb2f-4a94-985b-\ +8d039e58c1c7"], Cell[BoxData[ RowBox[{ @@ -5242,7 +5251,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"Sort", "[", "#", "]"}], " ", "&"}], " ", "/@", " ", "prop"}]}]}], "\n", "\n", "]"}]}], ";"}]], "Code",ExpressionUUID->\ -"668c0860-e5d8-4d4f-a46b-4a39838be0f4"], +"58832112-b94f-4611-9098-fc764a2926a5"], Cell[BoxData[{ RowBox[{ @@ -5329,8 +5338,8 @@ Cell[BoxData[{ RowBox[{"(*", " ", RowBox[{ "Old", " ", "Average", " ", "Convex", " ", "Function", " ", "is", " ", - "deprecated"}], " ", "*)"}]}]}], "Code",ExpressionUUID->"b15f6c52-f013-\ -4057-8aa8-2144008642c1"], + "deprecated"}], " ", "*)"}]}]}], "Code",ExpressionUUID->"b87c846e-e14c-\ +4e48-b819-ffbf79006a0d"], Cell[BoxData[ RowBox[{ @@ -5517,8 +5526,8 @@ Cell[BoxData[ RowBox[{"And", ",", RowBox[{"Apply", "[", RowBox[{"And", ",", "liste", ",", "1"}], "]"}]}], "]"}]}]}], "\n", - "\t", "]"}]}], ";"}], "\n"}]}]], "Code",ExpressionUUID->"07145e91-bfa2-\ -4949-a7f6-141fd3c66c37"], + "\t", "]"}]}], ";"}], "\n"}]}]], "Code",ExpressionUUID->"3bd8b1cb-8612-\ +46b3-8a17-614b4bb66046"], Cell[BoxData[ RowBox[{ @@ -5551,7 +5560,7 @@ Cell[BoxData[ RowBox[{"j", ",", RowBox[{"Length", "[", "margli", "]"}]}], "}"}]}], "]"}]}], "}"}]}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n"}]], "Code",Expre\ -ssionUUID->"a2a7b36c-09b0-4547-83db-178591a5e58d"], +ssionUUID->"0b2f75d1-b9da-4e08-855c-ba0c7e9cf52b"], Cell[BoxData[{ RowBox[{ @@ -5572,7 +5581,7 @@ Cell[BoxData[{ RowBox[{"coal", " ", "=", " ", "Coalitions"}], ";", "\n", " ", RowBox[{"MonoCheck", "[", RowBox[{"game", ",", " ", "coal"}], "]"}]}]}], "\n", " ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"a11e0676-b612-411c-90f4-93fa83b5592a"], + ";"}]}], "Code",ExpressionUUID->"aea2032a-bd28-418d-9c45-935fee26b38a"], Cell[BoxData[ RowBox[{ @@ -5645,8 +5654,8 @@ Cell[BoxData[ RowBox[{ RowBox[{"(", "zero", ")"}], "-", RowBox[{"monotonicity", " ", "section", " ", "ends"}]}], " ", "*)"}], - "\n", "\n"}]}]], "Code",ExpressionUUID->"b43f9828-948d-4f34-a690-\ -c9f3a76ee4c3"], + "\n", "\n"}]}]], "Code",ExpressionUUID->"c589db3b-0c41-464e-b0fa-\ +d83e81f4bfe0"], Cell[BoxData[ RowBox[{ @@ -6293,7 +6302,7 @@ Cell[BoxData[ "]"}]}], "}"}], "]"}], " ", "&"}], " ", "/@", " ", "ProperCoalitions"}], " ", "/.", " ", "lwpara"}], " ", "/.", " ", "uppara"}], "]"}]}], "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->\ -"62663577-61d8-4aaf-aaac-72ed8f153e15"], +"8b44f068-588a-4447-aa7d-2b5c83c40a71"], Cell[BoxData[{ RowBox[{ @@ -6407,7 +6416,7 @@ Cell[BoxData[{ RowBox[{"up", "[", "T", "]"}], " ", "/.", " ", "uppara"}], ")"}], " ", ">=", " ", RowBox[{"v", "[", "T", "]"}]}]}]}], "\n", " ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"0eb4bb59-5140-4af3-8a90-807347119ea7"], + ";"}]}], "Code",ExpressionUUID->"85304359-1a2e-4364-8b8d-4fe8eef56885"], Cell[BoxData[{ RowBox[{ @@ -6555,7 +6564,7 @@ Cell[BoxData[{ RowBox[{ "Print", "[", "\"\\"", "]"}]}], "]"}]}]}], "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUI\ -D->"2cd25c76-b2c5-4415-9b69-59eed8f878c7"], +D->"c66ddbfc-de35-4fc2-a33f-530911722050"], Cell[BoxData[{ RowBox[{ @@ -6882,8 +6891,8 @@ empty\>\"", "]"}], ";", "\n", " ", RowBox[{"(*", " ", RowBox[{ "strong", " ", "epsilon", " ", "core", " ", "section", " ", "ends"}], " ", - "*)"}], " "}], "\n"}], "Code",ExpressionUUID->"df3315ce-e262-4d0a-b102-\ -f282e4bffcaa"], + "*)"}], " "}], "\n"}], "Code",ExpressionUUID->"469e9d80-5b9b-4084-bb30-\ +af62f2ad71f0"], Cell[BoxData[{ RowBox[{ @@ -6964,7 +6973,7 @@ Cell[BoxData[{ RowBox[{"S", ",", "#"}], "]"}], "]"}], " ", "&"}], "/@", " ", "S"}], "]"}]}], ")"}], "/", RowBox[{"Length", "[", "S", "]"}]}]}]}], ";"}]}], "Code",ExpressionUUID->\ -"1b2fc825-7a40-4265-aaa2-cd5845cecd46"], +"56090248-43a1-421e-97dc-bfe46f37848e"], Cell[BoxData[{ RowBox[{ @@ -7081,8 +7090,8 @@ Cell[BoxData[{ RowBox[{"Length", "[", "ms", "]"}]}], "}"}]}], "]"}]}], ";", "\n", " ", RowBox[{"Total", "[", "smd", "]"}]}]}], "\t\t\t ", "\n", "\t\t ", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"f78b3fb1-4585-4bd2-8c1e-\ -5b65a7957b97"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"0cb81a2f-5eec-41d3-8a25-\ +efa3486305fb"], Cell[BoxData[{ RowBox[{ @@ -7322,7 +7331,7 @@ single payoff vector.\>\"", "]"}]}], "\n", ")"}]}], ";"}], "\n"}], "\n", "\"\\"", ",", " ", RowBox[{"KernelImputationListQ", "[", RowBox[{"game", ",", "payoff"}], "]"}]}], "]"}], ";"}], ")"}]}], - ";"}]}], "Code",ExpressionUUID->"c7da071e-5179-4381-95d2-9a7b60a375d1"], + ";"}]}], "Code",ExpressionUUID->"45764c10-cd47-4ff0-936b-be8a76d2fb12"], Cell[BoxData[{ RowBox[{ @@ -7345,7 +7354,7 @@ Cell[BoxData[{ RowBox[{"___", ",", "i", ",", "___"}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"___", ",", "j", ",", "___"}], "}"}]}], "]"}]}], ";"}]}], "Code",\ -ExpressionUUID->"ab173fcb-7d5c-404d-8dbc-bf4f92563803"], +ExpressionUUID->"4e7cba3c-933c-46f7-89ef-1fc28034a541"], Cell[BoxData[{ RowBox[{ @@ -7769,7 +7778,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"-", "mat"}], ",", RowBox[{"-", "values"}]}], "]"}]}]}], "\n", "\t ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"b62219f2-8cdd-45c8-9baa-4eb1ddcaa6a6"], + ";"}]}], "Code",ExpressionUUID->"045bc4e7-c1d1-4a0f-905a-b58b65541a90"], Cell[BoxData[ RowBox[{ @@ -8098,7 +8107,7 @@ Cell[BoxData[ RowBox[{ "game", ",", "obf", ",", " ", "cmat", ",", " ", "bvect", ",", "bds"}], "]"}]}]}], "\n", " ", "]"}]}], ";"}]}]}]], "Code",Expres\ -sionUUID->"4d9fa1d3-41d5-42b6-9459-e1bd867bc816"], +sionUUID->"8d31d4d8-f688-4129-bbdd-81d4e1548cc3"], Cell[BoxData[{ RowBox[{ @@ -8217,7 +8226,7 @@ Cell[BoxData[{ " ", RowBox[{"ModifiedNucleolus", "[", RowBox[{"game", ",", "opts"}], "]"}]}], ";"}], "\n"}], "Code",ExpressionUU\ -ID->"10e2a838-3622-4c38-9c2d-279bd708c223"], +ID->"6612f10c-4ce0-4312-8a14-e27d7ebc4828"], Cell[BoxData[{ RowBox[{ @@ -8825,7 +8834,7 @@ Cell[BoxData[{ RowBox[{"1995", ",", " ", RowBox[{ RowBox[{"pp", ".322"}], "-", "334."}]}], ")"}]}]}], "\n", - "*)"}]}]}], "Code",ExpressionUUID->"3f3fb262-e9de-43ea-b1fa-742c0fa63807"], + "*)"}]}]}], "Code",ExpressionUUID->"8a149f6b-d036-4fb1-98da-81785d7f9b93"], Cell[BoxData[ RowBox[{ @@ -9018,7 +9027,7 @@ Cell[BoxData[ RowBox[{"SeqLP", "[", RowBox[{"obf", ",", "cmat1", ",", "bvect1", ",", "bds", ",", "bA2"}], "]"}]}], "]"}]}]}], " ", "\n", "]"}]}], ";"}]], "Code",ExpressionUUI\ -D->"36a9aa0a-a11a-4ecd-8bc1-2bb9aca3d337"], +D->"865b5b1f-37b0-4e4e-8dfa-ebba8e10710a"], Cell[BoxData[ RowBox[{ @@ -9135,13 +9144,14 @@ Cell[BoxData[ RowBox[{"bA", ",", "bA1"}], "]"}], ",", RowBox[{"lb", "+", "1"}]}], "]"}]}], ";", "\n", " ", RowBox[{"bA2", "=", - RowBox[{ + RowBox[{"Developer`ToPackedArray", "[", RowBox[{ - RowBox[{"Take", "[", - RowBox[{"#", ",", - RowBox[{"-", - RowBox[{"Length", "[", "T", "]"}]}]}], "]"}], " ", "&"}], "/@", - " ", "bA2"}]}], ";", "\n", " ", + RowBox[{ + RowBox[{"Take", "[", + RowBox[{"#", ",", + RowBox[{"-", + RowBox[{"Length", "[", "T", "]"}]}]}], "]"}], " ", "&"}], "/@", + " ", "bA2"}], "]"}]}], ";", "\n", " ", RowBox[{"ons", " ", "=", " ", RowBox[{"Array", "[", RowBox[{ @@ -9220,7 +9230,7 @@ Cell[BoxData[ RowBox[{ "game", ",", "obf", ",", "cmat1", ",", "bvect1", ",", "bds", ",", "bA2"}], "]"}]}], "]"}]}]}], " ", "\n", "]"}]}], ";"}]], "Code",Expr\ -essionUUID->"298a643a-08b8-46b1-8499-cfe4133eb4c9"], +essionUUID->"e7dd3262-3633-40ea-b9ac-f45fc3da67e2"], Cell[BoxData[ RowBox[{ @@ -9479,8 +9489,8 @@ Cell[BoxData[ RowBox[{"fLSnc", "[", RowBox[{"py", ",", "cM", ",", "mM", ",", "lt"}], "]"}]}]}], "\n", "\t\t ", "]"}]}]}], " ", "\n", "\t\t ", "\n", "\n", "\t ", - "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"77086b5f-df97-47b3-a8a4-\ -f58a7873aab1"], + "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"02e8ac9f-c7db-491e-bdeb-\ +f2f8f64c2031"], Cell[BoxData[ RowBox[{ @@ -9577,7 +9587,7 @@ Cell[BoxData[ RowBox[{"fLSnc", "[", RowBox[{"py", ",", "cM", ",", "nM", ",", "n"}], "]"}]}], "]"}]}]}], "\t\t\t\t ", "\n", "\n", "\t ", "]"}]}], ";"}]], "Code",ExpressionUUI\ -D->"e26fa1d3-ddfa-45e0-a268-41a6c7633955"], +D->"04133719-4496-42b2-889c-91bdcb6b69ba"], Cell[BoxData[ RowBox[{ @@ -9753,7 +9763,7 @@ Cell[BoxData[ RowBox[{"game", ",", "tol1", ",", "jj", ",", "mcl", ",", "vars"}], "]"}]}], "\n", "\t\t\t ", "]"}]}], "\n", "\t\t ", "]"}]}]}], "\n", "\t\t\t\t\t ", "]"}]}], ";"}]}]], "Code",ExpressionUUID->\ -"00d8ceba-ad8d-4649-ae20-440e1aaaf420"], +"d6363f04-7dcb-4134-a1a5-c3d7d63c58a5"], Cell[BoxData[ RowBox[{ @@ -9790,7 +9800,7 @@ Cell[BoxData[ RowBox[{"Return", "[", "$Failed", "]"}], ",", RowBox[{"xvars", " ", "/.", " ", "lsg"}]}], "]"}]}], "]"}]}]}], "\n", "\t\t\t\t\t ", "]"}]}], ";"}], "\n"}]], "Code",ExpressionUUID->\ -"6553b23c-0a13-4f24-884b-f9231324283d"], +"4d20a9f6-e322-4725-ba13-221e33d3a22d"], Cell[BoxData[ RowBox[{ @@ -9829,7 +9839,7 @@ Cell[BoxData[ RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}]}], "]"}]}]}], "\n", "\t\t\t\t ", "]"}]}], - ";"}]], "Code",ExpressionUUID->"147287c5-5ec3-4c1a-bd33-8332e5d91c71"], + ";"}]], "Code",ExpressionUUID->"27789aa2-55f4-4abc-9996-735c915cab5c"], Cell[BoxData[ RowBox[{ @@ -9969,8 +9979,8 @@ Cell[BoxData[ RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}]}], "}"}]}], "\n", "\t\t ", "]"}]}], "\n", "\t\t", "]"}]}]}], "\n", "\t\t\t\t\t\t\t ", "]"}]}], ";"}], "\n", - "\n", "\n", "\n"}]}]], "Code",ExpressionUUID->"538e4e81-ec0c-4ea2-be70-\ -acfb0949557a"], + "\n", "\n", "\n"}]}]], "Code",ExpressionUUID->"9f5e7c4f-2c71-426f-bb14-\ +a58e1106256f"], Cell[BoxData[ RowBox[{ @@ -9996,7 +10006,7 @@ Cell[BoxData[ " ", "pre"}], "-", RowBox[{"nucleolus", " ", RowBox[{"too", "."}]}]}]}], "\n", "\n", "*)"}], " "}]], "Code",Express\ -ionUUID->"d90ce4f9-bd2c-482b-9d25-1dfc42d6ccd4"], +ionUUID->"7547be3b-021c-442a-8f3a-4205493f9bba"], Cell[BoxData[ RowBox[{ @@ -10093,8 +10103,8 @@ Cell[BoxData[ "game", ",", "p", ",", "k", ",", "tol1", ",", "jj", ",", "mcl", ",", "vars"}], "]"}]}], "\n", "\t\t\t ", "]"}]}], "\n", "\t\t ", "]"}]}]}], "\n", "\t\t\t\t\t\t\t\t\t ", "\n", - "\t\t\t\t\t ", "]"}]}], ";"}]], "Code",ExpressionUUID->"23550718-7e81-\ -4c2e-bb1b-585a87b55dda"], + "\t\t\t\t\t ", "]"}]}], ";"}]], "Code",ExpressionUUID->"75ad3fec-674d-\ +4a29-a2c1-1314b5f7e4b4"], Cell[BoxData[ RowBox[{ @@ -10129,8 +10139,8 @@ Cell[BoxData[ RowBox[{"{", "}"}]}], "]"}], ",", RowBox[{"Return", "[", "$Failed", "]"}], ",", RowBox[{"xvars", " ", "/.", " ", "lsg"}]}], "]"}]}], "]"}]}]}], - "\n", "\t\t\t\t\t ", "]"}]}], ";"}]], "Code",ExpressionUUID->"99733a63-\ -c8ae-4060-bc9f-7a698998475d"], + "\n", "\t\t\t\t\t ", "]"}]}], ";"}]], "Code",ExpressionUUID->"bb86f83a-\ +5ea9-47ca-b7bb-e52ef9ee8b7b"], Cell[BoxData[ RowBox[{ @@ -10184,7 +10194,7 @@ Cell[BoxData[ RowBox[{ "game", ",", "p", ",", "k", ",", "tol1", ",", "jj", ",", "mcl", ",", "vars"}], "]"}]}], "]"}]}]}], "\n", "\t\t\t\t\t ", "]"}]}], - ";"}]], "Code",ExpressionUUID->"821c7117-a22c-48de-8bf3-e868c28ed305"], + ";"}]], "Code",ExpressionUUID->"fc12077c-b430-4ad9-a814-6c6abc27aa2a"], Cell[BoxData[ RowBox[{ @@ -10219,8 +10229,8 @@ Cell[BoxData[ RowBox[{"{", "}"}]}], "]"}], ",", RowBox[{"Return", "[", "$Failed", "]"}], ",", RowBox[{"xvars", " ", "/.", " ", "lsg"}]}], "]"}]}], "]"}]}]}], - "\n", "\t\t\t\t\t ", "]"}]}], ";"}]], "Code",ExpressionUUID->"373cb6ab-\ -5160-4f8e-84d9-24a5605d8b5c"], + "\n", "\t\t\t\t\t ", "]"}]}], ";"}]], "Code",ExpressionUUID->"e4fff97f-\ +d99c-4143-9903-23ee051e4d38"], Cell[BoxData[ RowBox[{ @@ -10255,8 +10265,8 @@ Cell[BoxData[ RowBox[{"{", "}"}]}], "]"}], ",", RowBox[{"Return", "[", "$Failed", "]"}], ",", RowBox[{"xvars", " ", "/.", " ", "lsg"}]}], "]"}]}], "]"}]}]}], - "\n", "\t\t\t\t\t ", "]"}]}], ";"}]], "Code",ExpressionUUID->"6f9b49f0-\ -e9b6-4e89-baf9-3c07d4017770"], + "\n", "\t\t\t\t\t ", "]"}]}], ";"}]], "Code",ExpressionUUID->"65774ee0-\ +eee1-4068-a9d5-9a633eff6dc3"], Cell[BoxData[{ RowBox[{ @@ -10385,7 +10395,7 @@ Cell[BoxData[{ RowBox[{"rsys", ",", "riim", ",", "rexc", ",", "nwgl", ",", RowBox[{"idx", "+", "1"}]}], "]"}]}], "\n", "\t\t ", "]"}]}]}], "\n", "\t\t ", "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->\ -"fc4771fe-0991-4fd8-b6b1-6faab7f1613d"], +"597de0b0-37cb-4782-97fe-152769c8b1fa"], Cell[BoxData[{ RowBox[{ @@ -10580,7 +10590,7 @@ Cell[BoxData[{ RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}]}], "]"}]}]}], "\n", "\t\t\t\t ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"c07080e1-63a6-4f9b-bfe1-4e07052575dd"], + ";"}]}], "Code",ExpressionUUID->"d3207580-6b8c-4294-a124-568a8ac1250b"], Cell[BoxData[{ RowBox[{ @@ -10821,8 +10831,8 @@ Cell[BoxData[{ RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}]}], "}"}]}], "\n", "\t\t ", "]"}]}], "\n", "\t\t", "]"}]}]}], "\n", "\t\t\t\t\t\t\t ", "]"}]}], - ";"}], "\n"}], "Code",ExpressionUUID->"f698577e-31df-428b-9828-\ -99f72dfa2297"], + ";"}], "\n"}], "Code",ExpressionUUID->"854d70f7-452d-43e3-8ccf-\ +0f25fb309c12"], Cell[BoxData[ RowBox[{ @@ -10855,7 +10865,9 @@ Cell[BoxData[ RowBox[{"Return", "[", "\"\\"", "]"}]}], "]"}], ";", "\n", " ", RowBox[{"sysvec", " ", "=", " ", - RowBox[{"ConstVec", "[", "selcoal", "]"}]}], ";", "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"ConstVec", "[", "selcoal", "]"}], "]"}]}], ";", "\n", + " ", RowBox[{"mrk", " ", "=", " ", RowBox[{"MatrixRank", "[", "sysvec", "]"}]}], ";", "\n", " ", RowBox[{"lt", " ", "=", " ", @@ -10976,7 +10988,7 @@ Cell[BoxData[ RowBox[{"\"\\"", ",", "balcQ"}], "]"}], ";"}], "*)"}], "\n", " ", RowBox[{"Return", "[", "balcQ", "]"}], ";"}]}], "\n", "]"}]}], ";"}], - "\n"}]], "Code",ExpressionUUID->"9151d9a6-4d6a-4459-92e5-c7ec1b002fdf"], + "\n"}]], "Code",ExpressionUUID->"75127c2d-3e66-40ec-aa3e-20c864b3b111"], Cell[BoxData[ RowBox[{ @@ -11052,8 +11064,8 @@ Cell[BoxData[ RowBox[{"NMinimize", "[", RowBox[{"obj", ",", RowBox[{"{", "const", "}"}], ",", "vars"}], "]"}]}]}], "\n", "\t\t\t", - "]"}]}], ";"}]], "Code",ExpressionUUID->"2aff29c5-4799-4341-ad5c-\ -7b8141c8f7c9"], + "]"}]}], ";"}]], "Code",ExpressionUUID->"346395a0-8bb6-4ea4-9866-\ +7e27e5523c1f"], Cell[BoxData[ RowBox[{ @@ -11063,7 +11075,7 @@ Cell[BoxData[ "This", " ", "section", " ", "is", " ", "designated", " ", "to", " ", "the", " ", "Modiclus", " ", "Modified", " ", "and", " ", "Proper", " ", "Modified", " ", "Pre"}], "-", "Kernel"}], " ", "*)"}], " "}]], "Code",Ex\ -pressionUUID->"d589fbdc-b5e1-4f55-8377-8103b9754828"], +pressionUUID->"b6b28536-1170-4817-9d72-da27c186a0c2"], Cell[BoxData[ RowBox[{ @@ -11190,7 +11202,7 @@ Cell[BoxData[ RowBox[{"Redefine", " ", "the", " ", "original", " ", RowBox[{"game", "."}]}], " ", "*)"}], "\n", " ", RowBox[{"Return", "[", "bcQ", "]"}]}]}], "\n", " ", "]"}]}], - ";"}]}]}]], "Code",ExpressionUUID->"c96f4d10-08dc-40e8-ba28-711f07e36de3"], + ";"}]}]}]], "Code",ExpressionUUID->"4282a7b3-10a0-487d-8aed-7e1635c21095"], Cell[BoxData[{ RowBox[{ @@ -11352,14 +11364,15 @@ Cell[BoxData[{ RowBox[{ RowBox[{"{", RowBox[{"optstep", ",", " ", "doi"}], "}"}], " ", "=", " ", - RowBox[{"DirectionOfImprovement", "[", - RowBox[{"dcgame", ",", " ", "payoff", ",", " ", - RowBox[{"MaximumSurpluses", " ", "->", " ", "False"}], ",", " ", - RowBox[{"CalcStepSize", " ", "->", " ", "optst"}], ",", " ", - RowBox[{"PseudoInv", "->", "pinv"}], ",", - RowBox[{"Silent", " ", "->", " ", "sil"}], ",", " ", - RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}]}], - ";", "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"DirectionOfImprovement", "[", + RowBox[{"dcgame", ",", " ", "payoff", ",", " ", + RowBox[{"MaximumSurpluses", " ", "->", " ", "False"}], ",", " ", + RowBox[{"CalcStepSize", " ", "->", " ", "optst"}], ",", " ", + RowBox[{"PseudoInv", "->", "pinv"}], ",", + RowBox[{"Silent", " ", "->", " ", "sil"}], ",", " ", + RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}], + "]"}]}], ";", "\n", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"SameQ", "[", @@ -11484,7 +11497,7 @@ Cell[BoxData[{ RowBox[{"game", "."}]}], " ", "*)"}], "\n", " ", RowBox[{"Take", "[", RowBox[{"mdnc", ",", " ", "lt"}], "]"}]}]}], "\n", " ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"73fa0979-8b65-4577-a49c-3b744bc52801"], + ";"}]}], "Code",ExpressionUUID->"e0c46000-ee87-4bf2-990f-48fe52c9760b"], Cell[BoxData[{ RowBox[{ @@ -11740,7 +11753,7 @@ Cell[BoxData[{ "dlext"}]}], ";", "\n", " ", RowBox[{"{", RowBox[{"vals", ",", " ", "dlext"}], "}"}]}]}], "\n", " ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"622316fc-ae74-4302-ad57-53752f536d70"], + ";"}]}], "Code",ExpressionUUID->"ec18958b-b677-40da-9e7f-2f031e359cb4"], Cell[BoxData[ RowBox[{ @@ -11869,8 +11882,8 @@ Cell[BoxData[ RowBox[{"#1", ",", " ", "#2"}], "]"}], " ", "&"}], ",", " ", RowBox[{"{", RowBox[{"dvals", ",", " ", "pvals"}], "}"}]}], "]"}]}]}], "\n", - " ", "]"}]}], ";"}], "\n"}]}]], "Code",ExpressionUUID->"e20a2305-e2fa-\ -4049-a374-7faada089dbf"], + " ", "]"}]}], ";"}], "\n"}]}]], "Code",ExpressionUUID->"35c532e2-f47c-\ +477a-8766-1e0fb335d851"], Cell[BoxData[{ RowBox[{ @@ -12234,7 +12247,7 @@ Cell[BoxData[{ RowBox[{"Redefine", " ", "the", " ", "original", " ", RowBox[{"game", "."}]}], "*)"}], "\n", " ", RowBox[{"Return", "[", "smpnQ", "]"}], ";"}]}], "\n", " ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"03928180-a727-4a8c-bb17-cb1c4f7321af"], + ";"}]}], "Code",ExpressionUUID->"2bbe6506-c9a9-43bd-bdcf-820c3ec0d5a4"], Cell[BoxData[ RowBox[{"(*", " ", @@ -12243,8 +12256,8 @@ Cell[BoxData[ "End", " ", "of", " ", "the", " ", "section", " ", "related", " ", "to", " ", "the", " ", "simplified", " ", "modified", " ", "pre"}], "-", RowBox[{"kernel", " ", "of", " ", "a", " ", - RowBox[{"game", "."}]}]}], " ", "*)"}]], "Code",ExpressionUUID->"224ba2b4-\ -26d1-45f4-ae8c-e32c0c215ae4"], + RowBox[{"game", "."}]}]}], " ", "*)"}]], "Code",ExpressionUUID->"a9fab496-\ +005a-4e7c-998a-f9e50ae19049"], Cell[BoxData[ RowBox[{ @@ -12351,8 +12364,8 @@ Cell[BoxData[ " ", "True", ",", " ", RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"f27caabd-e6b7-4f99-ac1a-\ -a92de1fbb8d3"], + "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"f7815f80-92c9-44f7-ba5a-\ +a29ec1839fd8"], Cell[BoxData[ RowBox[{ @@ -12385,7 +12398,9 @@ Cell[BoxData[ RowBox[{"Return", "[", "\"\\"", "]"}]}], "]"}], ";", "\n", " ", RowBox[{"sysvec", " ", "=", " ", - RowBox[{"ConstVec", "[", "selcoal", "]"}]}], ";", "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"ConstVec", "[", "selcoal", "]"}], "]"}]}], ";", "\n", + " ", RowBox[{"mrk", " ", "=", " ", RowBox[{"MatrixRank", "[", "sysvec", "]"}]}], ";", "\n", " ", RowBox[{"lt", " ", "=", " ", @@ -12467,7 +12482,7 @@ Cell[BoxData[ RowBox[{ "balcQ", ",", " ", "wghvec", ",", " ", "sysvec", ",", " ", "selcoal"}], "}"}], ",", " ", "balcQ"}], "]"}]}]}], "\n", "]"}]}], - ";"}]], "Code",ExpressionUUID->"1aa5cf7c-ab32-45e0-ab29-214d9d3e8ce5"], + ";"}]], "Code",ExpressionUUID->"72d56535-78d4-429b-a336-a0fab0a550d6"], Cell[BoxData[ RowBox[{ @@ -12502,7 +12517,9 @@ Cell[BoxData[ RowBox[{"Return", "[", "\"\\"", "]"}]}], "]"}], ";", "\n", " ", RowBox[{"sysvec", " ", "=", " ", - RowBox[{"ConstVec", "[", "selcoal", "]"}]}], ";", "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"ConstVec", "[", "selcoal", "]"}], "]"}]}], ";", "\n", + " ", RowBox[{"mrk", " ", "=", " ", RowBox[{"MatrixRank", "[", "sysvec", "]"}]}], ";", "\n", " ", RowBox[{"lt", " ", "=", " ", @@ -12607,13 +12624,13 @@ Cell[BoxData[ RowBox[{"And", "[", RowBox[{"posQ", ",", " ", "oneQ"}], "]"}]}], ";", "\n", " ", RowBox[{"Return", "[", "balcQ", "]"}], ";"}]}], "\n", "]"}]}], - ";"}]], "Code",ExpressionUUID->"3bfdef6b-f9f7-45a4-bd2f-f4243cf1a8fa"], + ";"}]], "Code",ExpressionUUID->"e0906f39-0066-4cb0-b0e4-5eaa23acc4c0"], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{"Main", " ", "Function", " ", "related", " ", "to", " ", RowBox[{"BalancedSelctionQ", "[", "]"}]}], " ", "*)"}]], "Code",ExpressionU\ -UID->"f2b69b09-3f30-4cb9-9279-27cd81b6e42c"], +UID->"add5a367-af53-4cc4-943c-66d9f9f50c7f"], Cell[BoxData[ RowBox[{ @@ -12716,9 +12733,10 @@ Cell[BoxData[ RowBox[{"tk", "[", RowBox[{"[", "1", "]"}], "]"}]}], ";", "\n", " ", RowBox[{"smat", "=", - RowBox[{"balcmat", "[", - RowBox[{"[", "slc", "]"}], "]"}]}], ";", "\n", " ", - RowBox[{"wghs", " ", "=", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"balcmat", "[", + RowBox[{"[", "slc", "]"}], "]"}], "]"}]}], ";", "\n", " ", + RowBox[{"wghs", " ", "=", RowBox[{ RowBox[{"PseudoInverse", "[", RowBox[{"Transpose", "[", "smat", "]"}], "]"}], ".", "onesvec"}]}], @@ -12775,8 +12793,9 @@ Cell[BoxData[ RowBox[{"\"\\"", ",", "wghs"}], "]"}], ",", " ", "True"}], "]"}], ";", "\n", " ", RowBox[{"btkm", "=", - RowBox[{"Take", "[", - RowBox[{"balcmat", ",", "slc"}], "]"}]}], ";", "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"Take", "[", + RowBox[{"balcmat", ",", "slc"}], "]"}], "]"}]}], ";", "\n", " ", RowBox[{"wghvec", " ", "=", " ", RowBox[{"If", "[", RowBox[{ @@ -12970,7 +12989,7 @@ Cell[BoxData[ RowBox[{ "balcQ", ",", " ", "newwghs", ",", " ", "balcmat", ",", " ", "selc"}], "}"}], ",", " ", "balcQ"}], "]"}]}]}], "\n", "]"}]}], - ";"}]], "Code",ExpressionUUID->"604776d5-ab93-488b-b9ab-3052bfbcbbe4"], + ";"}]], "Code",ExpressionUUID->"9654015c-70ec-49cc-bdbb-dbcc6631f266"], Cell[BoxData[{ RowBox[{ @@ -13105,7 +13124,7 @@ Cell[BoxData[{ RowBox[{"Rationalize", "[", RowBox[{"#", ",", "0.001"}], "]"}], " ", "&"}], " ", "/@", " ", "gw"}]}]}], "\n", "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->\ -"847ae1ed-1b62-41f2-bf3e-48d3e41afdda"], +"088826e7-ff58-4199-bb0e-8c63f0ce53a0"], Cell[BoxData[{ RowBox[{ @@ -13222,8 +13241,8 @@ Cell[BoxData[{ " ", "True", ",", " ", RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", - "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->"e232fcbf-89f0-4d24-be08-\ -8137dbb5dcf7"], + "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->"1a47ad92-50d4-4127-a246-\ +80eebe1038f7"], Cell[BoxData[ RowBox[{ @@ -13275,9 +13294,10 @@ Cell[BoxData[ RowBox[{"{", RowBox[{"i", ",", "lt"}], "}"}]}], "]"}]}], ";", "\n", " ", RowBox[{"balcmat", " ", "=", " ", - RowBox[{"DeleteCases", "[", - RowBox[{"sysvec", ",", " ", - RowBox[{"{", "}"}]}], "]"}]}], ";", "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"DeleteCases", "[", + RowBox[{"sysvec", ",", " ", + RowBox[{"{", "}"}]}], "]"}], "]"}]}], ";", "\n", " ", RowBox[{"mrk", "=", RowBox[{ RowBox[{ @@ -13426,7 +13446,7 @@ Cell[BoxData[ RowBox[{ "balcQ", ",", " ", "newwghs", ",", " ", "balcmat", ",", " ", "selc"}], "}"}], ",", " ", "balcQ"}], "]"}]}]}], "\n", "]"}]}], - ";"}]], "Code",ExpressionUUID->"0cfb3e80-1141-4bbd-8d86-944617936a0a"], + ";"}]], "Code",ExpressionUUID->"1d9f7c98-3a3c-4bc6-91f9-5dffba516327"], Cell[BoxData[{ RowBox[{ @@ -13670,7 +13690,7 @@ Cell[BoxData[{ RowBox[{"ReplacePart", "[", RowBox[{"zrv", ",", " ", "1", ",", " ", "#"}], "]"}], " ", "&"}], " ", "/@", " ", "pscoal"}]}]}], "\n", "]"}]}], ";"}], "\n"}], "Code",Ex\ -pressionUUID->"5136f461-2fc8-47bb-9ab5-0afc1b128274"], +pressionUUID->"1ce64c3a-eb55-4170-b5c2-230faa946df7"], Cell[BoxData[ RowBox[{ @@ -13714,7 +13734,9 @@ Cell[BoxData[ RowBox[{"OptionValue", "[", "DisplayAllResults", "]"}]}], ";", "\n", " ", RowBox[{"sysvec", " ", "=", " ", - RowBox[{"ConstVec", "[", "selcoal", "]"}]}], ";", "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"ConstVec", "[", "selcoal", "]"}], "]"}]}], ";", "\n", + " ", RowBox[{"mrk", "=", RowBox[{"MatrixRank", "[", "sysvec", "]"}]}], ";", "\n", " ", RowBox[{"trQ", "=", @@ -13795,8 +13817,8 @@ Cell[BoxData[ RowBox[{ "balcQ", ",", " ", "wghvec", ",", " ", "sysvec", ",", " ", "selcoal"}], "}"}], ",", " ", "balcQ"}], "]"}]}]}], "\n", "]"}]}], - ";"}]}]}]], "Code",ExpressionUUID->"08b20745-c0da-4994-8652-\ -89b689258d3f"], + ";"}]}]}]], "Code",ExpressionUUID->"7c7897dd-5bdd-4df0-9ad2-\ +b89e72b36dd6"], Cell[BoxData[ RowBox[{ @@ -13813,12 +13835,13 @@ Cell[BoxData[ RowBox[{"lkc", " ", "=", " ", RowBox[{"Length", "[", "KC", "]"}]}], ";", "\n", " ", RowBox[{"adv", "=", - RowBox[{ + RowBox[{"Developer`ToPackedArray", "[", RowBox[{ - RowBox[{"If", "[", - RowBox[{ - RowBox[{"Positive", "[", "#", "]"}], ",", "1", ",", "0"}], "]"}], - " ", "&"}], " ", "/@", " ", "wghs"}]}], ";", "\n", " ", + RowBox[{ + RowBox[{"If", "[", + RowBox[{ + RowBox[{"Positive", "[", "#", "]"}], ",", "1", ",", "0"}], "]"}], + " ", "&"}], " ", "/@", " ", "wghs"}], "]"}]}], ";", "\n", " ", RowBox[{"nwm", "=", RowBox[{"adv", "*", "mat"}]}], ";", "\n", " ", RowBox[{"zrv", "=", @@ -13842,7 +13865,7 @@ Cell[BoxData[ ",", "nwm"}], "}"}], ",", RowBox[{"{", RowBox[{"wghs", ",", "mat"}], "}"}]}], "]"}]}]}], "\n", "]"}]}], - ";"}]], "Code",ExpressionUUID->"2930bd50-358b-49c8-b430-5525232c7824"], + ";"}]], "Code",ExpressionUUID->"912a5022-1ee6-4f9a-bf50-b130a7763383"], Cell[BoxData[ RowBox[{ @@ -13886,9 +13909,12 @@ Cell[BoxData[ RowBox[{ RowBox[{"ctz", ">", "0"}], ",", RowBox[{"nwm", " ", "=", " ", - RowBox[{"Take", "[", - RowBox[{"mat", ",", "tk"}], "]"}]}], ",", - RowBox[{"nwm", " ", "=", " ", "mat"}]}], "]"}], ";", "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"Take", "[", + RowBox[{"mat", ",", "tk"}], "]"}], "]"}]}], ",", + RowBox[{"nwm", " ", "=", " ", + RowBox[{"Developer`ToPackedArray", "[", "mat", "]"}]}]}], "]"}], + ";", "\n", " ", RowBox[{"Which", "[", RowBox[{ RowBox[{"SameQ", "[", @@ -13949,8 +13975,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"PseudoInverse", "[", RowBox[{"Transpose", "[", "nwm", "]"}], "]"}], ".", - "onesv"}]}], ";"}], ",", "\n", - " ", + "onesv"}]}], ";"}], ",", "\n", "\t\t\t\t ", RowBox[{"Last", "[", "mrkQ", "]"}], ",", " ", RowBox[{ RowBox[{"nwm", "=", "nwm2"}], ";", @@ -13976,7 +14001,7 @@ Cell[BoxData[ RowBox[{"Return", "[", RowBox[{"{", RowBox[{"swgh", ",", "nwm"}], "}"}], "]"}]}]}], "\n", "]"}]}], ";"}], - "\n"}]], "Code",ExpressionUUID->"939f0b1a-8e86-458b-ac3d-ee0a84719afc"], + "\n"}]], "Code",ExpressionUUID->"e40c8f95-af4e-448f-b4a4-a31f74ca35f0"], Cell[BoxData[ RowBox[{ @@ -14103,8 +14128,8 @@ Cell[BoxData[ " ", "True", ",", " ", RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", - "]"}]}], ";"}], "\n", "\n", "\n"}]}]], "Code",ExpressionUUID->"db8829c7-\ -f247-4282-b638-c8d672361a59"], + "]"}]}], ";"}], "\n", "\n", "\n"}]}]], "Code",ExpressionUUID->"5079aeab-\ +e885-4614-8033-4160713c7e1b"], Cell[BoxData[{ RowBox[{ @@ -14218,7 +14243,7 @@ Cell[BoxData[{ RowBox[{"(*", " ", RowBox[{"User", " ", "interface", " ", "for", " ", "coalition", " ", RowBox[{"structures", "."}]}], " ", "*)"}]}]}], "Code",ExpressionUUID->\ -"823c59b8-532a-4124-b45d-fe8e9c25458d"], +"f56c7217-cf9c-4ac3-b335-6ad103057b5e"], Cell[BoxData[ RowBox[{ @@ -14294,7 +14319,7 @@ Cell[BoxData[ RowBox[{ "Print", "[", "\"\\"", "]"}]}], "\n", " ", "]"}]}], "\n", "]"}]}], ";"}]], "Code",ExpressionUUID->\ -"9f7e94a9-4b90-40cd-ad9a-c783667ea36b"], +"621c26ae-e7b7-484b-aca0-e9e0747f6277"], Cell[BoxData[{ RowBox[{ @@ -14586,12 +14611,16 @@ Cell[BoxData[{ RowBox[{"Block", "[", RowBox[{ RowBox[{"{", - RowBox[{"psmat", ",", " ", "wghs", ",", " ", "psQ", ",", " ", "trQ"}], - "}"}], ",", "\n", " ", + RowBox[{ + "psmat", ",", " ", "wghs", ",", " ", "psQ", ",", " ", "trQ", ",", + "tmat"}], "}"}], ",", "\n", " ", RowBox[{ + RowBox[{"tmat", " ", "=", " ", + RowBox[{"Developer`ToPackedArray", "[", "kmatrix", "]"}]}], ";", + "\t\t\t\t\t\t ", "\n", " ", RowBox[{"psmat", " ", "=", " ", - RowBox[{"PseudoInverse", "[", "kmatrix", "]"}]}], ";", " ", "\n", - " ", + RowBox[{"PseudoInverse", "[", "tmat", "]"}]}], ";", " ", "\n", " ", + RowBox[{"wghs", " ", "=", " ", RowBox[{"psmat", ".", "onesv"}]}], ";", "\n", " ", RowBox[{"psQ", " ", "=", " ", @@ -14660,14 +14689,14 @@ Cell[BoxData[{ RowBox[{"[", "2", "]"}], "]"}], ",", "True"}], "]"}], ",", " ", "nwghs02", ",", "\n", " ", "True", ",", " ", "wghs"}], "\n", " ", "]"}]}]}], "\n", "]"}]}], ";"}], "\n"}], "Code",Expressio\ -nUUID->"833964ee-3a07-44e1-ad8e-6ce92242d710"], +nUUID->"18748597-c8c3-4bf5-8932-0b74667cf7a9"], Cell[BoxData[ RowBox[{"(*", RowBox[{ "Alternative", " ", "Function", " ", "to", " ", "check", " ", "a", " ", - "Kohlberg", " ", "criterion"}], "*)"}]], "Code",ExpressionUUID->"fc0fb39b-\ -303b-4362-9c83-3d87c28d9b0f"], + "Kohlberg", " ", "criterion"}], "*)"}]], "Code",ExpressionUUID->"17ee3079-\ +34c3-4bb3-9d51-6c9a5af63172"], Cell[BoxData[{ RowBox[{ @@ -14741,7 +14770,7 @@ Cell[BoxData[{ RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "]"}], ",", " ", "\n", " ", "True", ",", " ", RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "]"}]}]}], "]"}]}], - ";"}]}], "Code",ExpressionUUID->"a36fdb75-7493-43cb-a00c-e800bb3b582a"], + ";"}]}], "Code",ExpressionUUID->"ab08505e-7edf-4c79-8ede-ecf6d90833fe"], Cell[BoxData[ RowBox[{ @@ -14793,7 +14822,7 @@ Cell[BoxData[ RowBox[{"acde", ",", " ", "tk"}], "]"}]}]}], ";", "\n", " ", RowBox[{"Apply", "[", RowBox[{"And", ",", " ", "lprs"}], "]"}]}]}], "]"}]}], ";"}]], "Code",E\ -xpressionUUID->"e4f50c81-b0d5-420c-9c8b-646749cd93c7"], +xpressionUUID->"828efa07-d1b8-4042-a5bf-078e6a342c9b"], Cell[BoxData[{ RowBox[{ @@ -14842,7 +14871,7 @@ Cell[BoxData[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Nucleolus", "/", "Kernel"}], " ", "section", " ", "ends"}], " ", - "*)"}]}]}], "Code",ExpressionUUID->"08805861-dcc9-426e-98dd-bfe18b7e308f"], + "*)"}]}]}], "Code",ExpressionUUID->"be122f5a-8b9a-409c-a18a-ea58486ae2d5"], Cell[BoxData[ RowBox[{ @@ -14894,8 +14923,8 @@ Cell[BoxData[ RowBox[{ RowBox[{"Length", "[", RowBox[{"W", "[", "i", "]"}], "]"}], "-", "1"}], ")"}]}]}], - "]"}]}], "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"1c1db585-2a69-\ -4466-8fa4-28393a23bd2e"], + "]"}]}], "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"683f9a02-b6e5-\ +4ebd-8f8c-23a9b0afaf9f"], Cell[BoxData[{ RowBox[{ @@ -14983,8 +15012,8 @@ Cell[BoxData[{ RowBox[{"Length", "[", "T", "]"}]}]}], ";", "\n", " ", RowBox[{"FindPreKernelSolution", "[", RowBox[{"game", ",", "pay", ",", "opts"}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->"9d3aa22f-598a-474e-9b6d-\ -372feac3ef3c"], + "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->"7fd0e0b6-cc80-4009-90ee-\ +bc46077e28af"], Cell[BoxData[{ RowBox[{ @@ -15166,8 +15195,8 @@ Cell[BoxData[{ RowBox[{"Length", "[", "T", "]"}]}]}], ";", "\n", " ", RowBox[{"FindKernelSolution", "[", RowBox[{"game", ",", "pay", ",", "opts"}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"8bd7ce90-53b6-4e64-9f9d-\ -9b8e298fc947"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"a0139972-5661-44f6-97b4-\ +3055fd955056"], Cell[BoxData[{ RowBox[{ @@ -15748,7 +15777,7 @@ Cell[BoxData[{ " ", RowBox[{"ReplacePart", "[", RowBox[{"vec", ",", " ", "nwcom", ",", " ", "posi"}], "]"}]}], - ";"}]}], "Code",ExpressionUUID->"31d67677-6d61-4f4a-b2aa-e0254570595d"], + ";"}]}], "Code",ExpressionUUID->"81ccedda-e6b1-4344-8c95-71d3e076c051"], Cell[BoxData[ RowBox[{"(*", " ", @@ -15761,7 +15790,7 @@ Cell[BoxData[ RowBox[{"n", "-", "1"}], ")"}], "/", "2"}]}], ")"}], " ", "initial", " ", "LPs", " ", "for", " ", RowBox[{"KernelCalculation", "[", "]"}]}], " ", "*)"}]], "Code",ExpressionU\ -UID->"a530db33-6ca1-436f-b70f-c4e1afd23264"], +UID->"7bde080f-dc88-42d4-a0ec-5f38f4aa7e9d"], Cell[BoxData[{ RowBox[{ @@ -15808,8 +15837,8 @@ Cell[BoxData[{ RowBox[{"j", ",", " ", "i", ",", " ", RowBox[{"-", "Global`\[Delta]"}], ",", " ", "eps"}], "]"}], ",", " ", "\n", " ", "delconst"}], "}"}]}], "]"}], " ", "//", - " ", "Flatten"}]}], ";"}]}], "Code",ExpressionUUID->"10f6bc2c-6fee-4779-\ -afc3-e3fe74b780e0"], + " ", "Flatten"}]}], ";"}]}], "Code",ExpressionUUID->"6a8ba6a6-2f8c-40d2-\ +a152-5efb910c62cd"], Cell[BoxData[{ RowBox[{ @@ -15889,7 +15918,7 @@ Cell[BoxData[{ RowBox[{"delconst", " ", "=", " ", RowBox[{"{", RowBox[{"Global`\[Delta]", " ", ">=", " ", "0"}], "}"}]}], - ";"}]}], "Code",ExpressionUUID->"6755731e-c88e-48aa-984c-f149b46e666d"], + ";"}]}], "Code",ExpressionUUID->"51b655ff-b7d4-4727-a745-ec4c980e0e5e"], Cell[BoxData[{ RowBox[{ @@ -16035,7 +16064,7 @@ Cell[BoxData[{ RowBox[{"anf", ",", " ", "1"}], "]"}]}], ";"}]}], "]"}], ";", "\n", " ", RowBox[{"Return", "[", "menge", "]"}]}]}], "]"}]}], ";"}]}], "Code",Expr\ -essionUUID->"24890eea-7864-4289-a989-09b3318aa435"], +essionUUID->"a1c69bbf-1a76-43c6-97d6-426b59aa5142"], Cell[BoxData[{ RowBox[{ @@ -16099,7 +16128,7 @@ Cell[BoxData[{ " ", "rg"}]}], "]"}]}], ";", "\n", " ", RowBox[{"Extract", "[", RowBox[{"ineq", ",", " ", "extpos"}], "]"}]}]}], "]"}]}], - ";"}]}], "Code",ExpressionUUID->"10530774-9cca-4907-b9c2-3de5602bf2f9"], + ";"}]}], "Code",ExpressionUUID->"45600b05-577b-4da2-b712-5c5e2834dd17"], Cell[BoxData[ RowBox[{ @@ -16218,8 +16247,8 @@ Cell[BoxData[ " ", RowBox[{"{", RowBox[{"resl", ",", " ", "setofineq"}], "}"}]}]}], "\n", " ", - "]"}]}], ";"}], "\n", "\n"}]], "Code",ExpressionUUID->"8b9ed0af-75b9-\ -45b1-8541-9abde0ff18ac"], + "]"}]}], ";"}], "\n", "\n"}]], "Code",ExpressionUUID->"3f7cec5b-f779-\ +434e-ad47-012d01f88051"], Cell[BoxData[ RowBox[{ @@ -16273,14 +16302,14 @@ Cell[BoxData[ RowBox[{"mengsys", ",", " ", "1"}], "]"}]}]}]}], "]"}], ";", " ", "\n", " ", RowBox[{"Return", "[", "const", "]"}]}]}], "]"}]}], ";"}]], "Code",Expre\ -ssionUUID->"cf4e1bff-04a5-440b-b403-cc110c125447"], +ssionUUID->"5947cb3b-04e6-49d2-b3fb-f0af7234f0e4"], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ "Auxiliary", " ", "functions", " ", "to", " ", "verify", " ", "balancedness", " ", "of", " ", "the", " ", "excess", " ", "vector"}], " ", - "*)"}]], "Code",ExpressionUUID->"a73ba9a3-8cd0-467c-ac51-6e0471e8c7e2"], + "*)"}]], "Code",ExpressionUUID->"301c66d1-4916-4b3d-835e-b607c7a6bd27"], Cell[BoxData[ RowBox[{ @@ -16295,7 +16324,7 @@ Cell[BoxData[ RowBox[{"MaxExcessBalanced", "[", RowBox[{"newgame", ",", " ", "pay"}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}]}], "\n", "]"}]}], ";"}]], "Code",Expre\ -ssionUUID->"e759c170-05a9-4db7-8d60-07debcd1b3ec"], +ssionUUID->"e9445ad6-ec0c-4c34-a3c1-d87f20a112f0"], Cell[BoxData[{ RowBox[{ @@ -16390,8 +16419,8 @@ Cell[BoxData[{ RowBox[{"{", "#", "}"}], "]"}]}], ")"}], " ", "&"}], " ", "/@", " ", RowBox[{"{", RowBox[{"Last", "[", "plj", "]"}], "}"}]}], " ", "/.", " ", - "asspay"}]}], ";"}], " "}]}], "Code",ExpressionUUID->"fd5193e3-fc3d-\ -46ec-9ae5-a8001774ae29"], + "asspay"}]}], ";"}], " "}]}], "Code",ExpressionUUID->"91b55c2c-472a-\ +4e45-8867-ea1ead671c0a"], Cell[BoxData[{ RowBox[{ @@ -16476,86 +16505,128 @@ Cell[BoxData[{ RowBox[{ RowBox[{"Print", "[", "\"\\"", "]"}], ";", RowBox[{"Return", "[", "]"}]}]}], "]"}]}]}], "\n", " ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"464b66d4-8587-4fc4-b457-dae7a6fdc6d9"], + ";"}]}], "Code",ExpressionUUID->"c1c17fa7-89be-40a2-b294-103ffe73a5cd"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{ - RowBox[{"AntiSurplus", "[", - RowBox[{ - "game_", ",", " ", "pi_", ",", " ", "pj_", ",", " ", "payoff_List"}], - "]"}], " ", ":=", " ", "\n", " ", + RowBox[{"ModMaxSurplus", "[", + RowBox[{"game_", ",", " ", "sij_List", ",", " ", "payass_List"}], "]"}], + " ", ":=", " ", "\n", "\t", RowBox[{"Block", "[", RowBox[{ - RowBox[{"{", "payass", "}"}], ",", " ", "\n", " ", - RowBox[{ - RowBox[{"payass", " ", "=", " ", - RowBox[{"Which", "[", - RowBox[{ - RowBox[{ - RowBox[{"Depth", "[", "payoff", "]"}], "==", "3"}], ",", " ", - RowBox[{ - RowBox[{ - RowBox[{"MapThread", "[", - RowBox[{"Rule", ",", - RowBox[{"{", - RowBox[{ - RowBox[{"x", " ", "/@", " ", "T"}], ",", "#"}], "}"}]}], - "]"}], "&"}], " ", "/@", " ", "payoff"}], ",", " ", "\n", - " ", - RowBox[{ - RowBox[{"Depth", "[", "payoff", "]"}], "==", "2"}], ",", " ", - RowBox[{"MapThread", "[", - RowBox[{"Rule", ",", - RowBox[{"{", - RowBox[{ - RowBox[{"x", " ", "/@", " ", "T"}], ",", "payoff"}], "}"}]}], - "]"}], ",", "\n", " ", "True", ",", " ", + RowBox[{"{", "}"}], ",", "\n", " ", + RowBox[{"Max", "[", + RowBox[{"ReplaceAll", "[", + RowBox[{ + RowBox[{"Map", "[", RowBox[{ RowBox[{ - "Print", "[", "\"\\"", "]"}], - ";", - RowBox[{"Return", "[", "]"}]}]}], "]"}]}], ";", "\n", " ", + RowBox[{ + RowBox[{"v", "[", "#", "]"}], " ", "-", " ", + RowBox[{"x", "[", "#", "]"}]}], " ", "&"}], ",", " ", "sij"}], + "]"}], ",", "payass"}], "]"}], "]"}]}], "\n", " ", "]"}]}], + ";"}], "\n"}]], "Code",ExpressionUUID->"11b7ed92-5966-4cab-be3b-\ +9bb66d7f45be"], + +Cell[BoxData[ + RowBox[{ + RowBox[{ + RowBox[{"AntiSurplus", "[", + RowBox[{ + "game_", ",", " ", "pi_", ",", " ", "pj_", ",", " ", "payoff_List"}], + "]"}], " ", ":=", " ", "\n", " ", + RowBox[{"Block", "[", + RowBox[{ + RowBox[{"{", "payass", "}"}], ",", " ", "\n", " ", + RowBox[{ + RowBox[{"payass", " ", "=", " ", RowBox[{"Which", "[", RowBox[{ RowBox[{ - RowBox[{"Depth", "[", "payass", "]"}], " ", "==", " ", "5"}], ",", + RowBox[{"Depth", "[", "payoff", "]"}], "==", "3"}], ",", " ", RowBox[{ RowBox[{ - RowBox[{"Min", "[", - RowBox[{"ReplaceAll", "[", - RowBox[{ + RowBox[{"MapThread", "[", + RowBox[{"Rule", ",", + RowBox[{"{", RowBox[{ - RowBox[{ - RowBox[{"(", - RowBox[{ - RowBox[{"v", "[", "#", "]"}], " ", "-", " ", - RowBox[{"x", "[", "#", "]"}]}], ")"}], " ", "&"}], " ", "/@", - " ", - RowBox[{"TIJsets", "[", - RowBox[{"pi", ",", "pj"}], "]"}]}], ",", "#"}], "]"}], "]"}], - " ", "&"}], "/@", " ", "payass"}], ",", "\n", " ", + RowBox[{"x", " ", "/@", " ", "T"}], ",", "#"}], "}"}]}], "]"}], + "&"}], " ", "/@", " ", "payoff"}], ",", " ", "\n", + " ", RowBox[{ - RowBox[{"Depth", "[", "payass", "]"}], " ", "==", " ", "4"}], ",", - RowBox[{"Min", "[", - RowBox[{"ReplaceAll", "[", - RowBox[{ + RowBox[{"Depth", "[", "payoff", "]"}], "==", "2"}], ",", " ", + RowBox[{"MapThread", "[", + RowBox[{"Rule", ",", + RowBox[{"{", + RowBox[{ + RowBox[{"x", " ", "/@", " ", "T"}], ",", "payoff"}], "}"}]}], + "]"}], ",", "\n", " ", "True", ",", " ", + RowBox[{ + RowBox[{ + "Print", "[", "\"\\"", "]"}], + ";", + RowBox[{"Return", "[", "]"}]}]}], "]"}]}], ";", "\n", " ", + RowBox[{"Which", "[", + RowBox[{ + RowBox[{ + RowBox[{"Depth", "[", "payass", "]"}], " ", "==", " ", "5"}], ",", + RowBox[{ + RowBox[{ + RowBox[{"Min", "[", + RowBox[{"ReplaceAll", "[", RowBox[{ RowBox[{ - RowBox[{"(", - RowBox[{ - RowBox[{"v", "[", "#", "]"}], " ", "-", " ", - RowBox[{"x", "[", "#", "]"}]}], ")"}], " ", "&"}], " ", "/@", - " ", - RowBox[{"TIJsets", "[", - RowBox[{"pi", ",", "pj"}], "]"}]}], ",", "payass"}], "]"}], - "]"}], ",", "\n", " ", "True", ",", " ", + RowBox[{ + RowBox[{"(", + RowBox[{ + RowBox[{"v", "[", "#", "]"}], " ", "-", " ", + RowBox[{"x", "[", "#", "]"}]}], ")"}], " ", "&"}], " ", "/@", + " ", + RowBox[{"TIJsets", "[", + RowBox[{"pi", ",", "pj"}], "]"}]}], ",", "#"}], "]"}], "]"}], + " ", "&"}], "/@", " ", "payass"}], ",", "\n", " ", + RowBox[{ + RowBox[{"Depth", "[", "payass", "]"}], " ", "==", " ", "4"}], ",", + RowBox[{"Min", "[", + RowBox[{"ReplaceAll", "[", + RowBox[{ + RowBox[{ + RowBox[{ + RowBox[{"(", + RowBox[{ + RowBox[{"v", "[", "#", "]"}], " ", "-", " ", + RowBox[{"x", "[", "#", "]"}]}], ")"}], " ", "&"}], " ", "/@", + " ", + RowBox[{"TIJsets", "[", + RowBox[{"pi", ",", "pj"}], "]"}]}], ",", "payass"}], "]"}], + "]"}], ",", "\n", " ", "True", ",", " ", + RowBox[{ + RowBox[{"Print", "[", "\"\\"", "]"}], ";", + RowBox[{"Return", "[", "]"}]}]}], "]"}]}]}], "\n", " ", "]"}]}], + ";"}]], "Code",ExpressionUUID->"7666034b-e20c-4a3a-a3e3-2478bc0da448"], + +Cell[BoxData[ + RowBox[{ + RowBox[{ + RowBox[{"ModAntiSurplus", "[", + RowBox[{"game_", ",", " ", "sij_List", ",", " ", "payass_List"}], "]"}], + " ", ":=", " ", "\n", "\t", + RowBox[{"Block", "[", + RowBox[{ + RowBox[{"{", "}"}], ",", "\n", " ", + RowBox[{"Min", "[", + RowBox[{"ReplaceAll", "[", + RowBox[{ + RowBox[{"Map", "[", RowBox[{ - RowBox[{"Print", "[", "\"\\"", "]"}], ";", - RowBox[{"Return", "[", "]"}]}]}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}], "\n"}]], "Code",ExpressionUUID->"f80ac963-743e-4577-942a-\ -49884e709d96"], + RowBox[{ + RowBox[{ + RowBox[{"v", "[", "#", "]"}], " ", "-", " ", + RowBox[{"x", "[", "#", "]"}]}], " ", "&"}], ",", " ", "sij"}], + "]"}], ",", "payass"}], "]"}], "]"}]}], "\n", " ", "]"}]}], + ";"}]], "Code",ExpressionUUID->"5c6db5a6-2ddf-43db-aeec-72faf1be0b86"], Cell[BoxData[{ RowBox[{ @@ -16610,6 +16681,38 @@ Cell[BoxData[{ RowBox[{"{", RowBox[{"maxpi", ",", "maxpj"}], "}"}]}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n"}], "\n", + RowBox[{ + RowBox[{ + RowBox[{ + RowBox[{"ModMaxSurpluses", "[", + RowBox[{ + "game_", ",", " ", "sij_List", ",", " ", "sji_List", ",", + "payoff_List"}], "]"}], " ", ":=", " ", "\n", " ", + RowBox[{"Block", "[", + RowBox[{ + RowBox[{"{", + RowBox[{"payass", ",", "maxpi", ",", "maxpj"}], "}"}], ",", " ", "\n", + " ", + RowBox[{ + RowBox[{"maxpi", " ", "=", " ", + RowBox[{"Map", "[", + RowBox[{ + RowBox[{ + RowBox[{"ModMaxSurplus", "[", + RowBox[{"game", ",", "#", ",", "payoff"}], "]"}], "&"}], ",", + "sij"}], "]"}]}], ";", "\n", " ", + RowBox[{"maxpj", " ", "=", " ", + RowBox[{"Map", "[", + RowBox[{ + RowBox[{ + RowBox[{"ModMaxSurplus", "[", + RowBox[{"game", ",", "#", ",", "payoff"}], "]"}], "&"}], ",", + "sji"}], "]"}]}], ";", "\n", " ", + RowBox[{"MapThread", "[", + RowBox[{"List", ",", + RowBox[{"{", + RowBox[{"maxpi", ",", "maxpj"}], "}"}]}], "]"}]}]}], "\n", " ", + "]"}]}], ";"}], "\n"}], "\n", RowBox[{ RowBox[{ RowBox[{"AntiSurpluses", "[", @@ -16662,10 +16765,42 @@ Cell[BoxData[{ RowBox[{"List", ",", RowBox[{"{", RowBox[{"minpi", ",", "minpj"}], "}"}]}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"dd1f03ec-34bf-4a28-9475-\ -06d627bc3aeb"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"98c92b9e-5228-474e-b001-\ +2a8c289b8904"], Cell[BoxData[{ + RowBox[{ + RowBox[{ + RowBox[{ + RowBox[{"ModAntiSurpluses", "[", + RowBox[{ + "game_", ",", "sij_List", ",", " ", "sji_List", ",", " ", + "payoff_List"}], "]"}], " ", ":=", " ", "\n", " ", + RowBox[{"Block", "[", + RowBox[{ + RowBox[{"{", + RowBox[{"payass", ",", "minpi", ",", "minpj"}], "}"}], ",", " ", "\n", + " ", + RowBox[{ + RowBox[{"minpi", " ", "=", " ", + RowBox[{"Map", "[", + RowBox[{ + RowBox[{ + RowBox[{"ModAntiSurplus", "[", + RowBox[{"game", ",", "#", ",", "payass"}], "]"}], "&"}], ",", + "sij"}], "]"}]}], ";", "\n", " ", + RowBox[{"minpj", " ", "=", " ", + RowBox[{"Map", "[", + RowBox[{ + RowBox[{ + RowBox[{"ModAntiSurplus", "[", + RowBox[{"game", ",", "#", ",", "payass"}], "]"}], "&"}], ",", + "sji"}], "]"}]}], ";", "\n", " ", + RowBox[{"MapThread", "[", + RowBox[{"List", ",", + RowBox[{"{", + RowBox[{"minpi", ",", "minpj"}], "}"}]}], "]"}]}]}], "\n", " ", + "]"}]}], ";"}], "\n"}], "\n", RowBox[{ RowBox[{ RowBox[{"AllMaxSurpluses", "[", "args___", "]"}], ":=", @@ -16716,8 +16851,8 @@ Cell[BoxData[{ RowBox[{"dispmat", " ", "==", " ", "False"}], ",", " ", "ergb", ",", " ", "True", ",", " ", RowBox[{"DisplayResult", "[", "ergb", "]"}]}], "]"}]}]}], "\n", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"3d5f4753-337e-421a-b14f-\ -db6c92f29223"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"9b61477f-8bea-49fa-a2ab-\ +de548a2f839d"], Cell[BoxData[{ RowBox[{ @@ -16808,7 +16943,7 @@ Cell[BoxData[{ RowBox[{"MatrixForm", "[", RowBox[{"PrependTo", "[", RowBox[{"surpl", ",", "mgij"}], "]"}], "]"}]}]}], "\n", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"52c2fa25-f475-4c01-a75e-79f7794563a4"], + ";"}]}], "Code",ExpressionUUID->"de073201-7f03-408b-bef2-78626cecec10"], Cell[BoxData[ RowBox[{ @@ -17021,7 +17156,7 @@ Cell[BoxData[ " ", RowBox[{"Apply", "[", RowBox[{"And", ",", " ", "neq"}], "]"}]}]}], "\n", " ", "]"}]}], - ";"}]}]}]], "Code",ExpressionUUID->"7f265886-fe75-4793-89e3-b34dd0505bc6"], + ";"}]}]}]], "Code",ExpressionUUID->"b4d958cf-2e22-40e0-ae9e-e2d448a74637"], Cell[BoxData[{ RowBox[{ @@ -17147,7 +17282,7 @@ payoffs.\>\"", "]"}]}], "\n", ")"}]}], ";"}], "\n"}], "\n", " ", "True", ",", " ", RowBox[{"DisplayMessage", "[", "payoff", "]"}]}], "\n", " ", "\n", " ", "]"}]}], "\n", "]"}]}], ";"}]}], "Code",ExpressionUUID->\ -"dede3bc9-2fe4-46fa-82cd-c1f05080d199"], +"b87fe9d4-fa00-4584-96ce-bcd9243777c8"], Cell[BoxData[{ RowBox[{ @@ -17182,8 +17317,8 @@ Cell[BoxData[{ RowBox[{"game", ",", "payoff"}], "]"}], ",", "\n", " ", "True", ",", " ", RowBox[{"DisplayMessage", "[", "payoff", "]"}]}], "\n", " ", "]"}]}], - "\n", "]"}]}], ";"}]}], "Code",ExpressionUUID->"5ac080d9-299f-41cb-8b9b-\ -f1cff0be1606"], + "\n", "]"}]}], ";"}]}], "Code",ExpressionUUID->"cebea53b-91bc-4d6f-9833-\ +039f91be633b"], Cell[BoxData[{ RowBox[{ @@ -17244,7 +17379,7 @@ Cell[BoxData[{ "\n", " ", RowBox[{"Append", "[", RowBox[{"indrat", ",", "eff"}], "]"}]}]}], "\n", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"a8a33f99-9671-4ea1-a5fa-48b40182d10f"], + ";"}]}], "Code",ExpressionUUID->"56349e60-723a-4be4-a615-14d9e20759ac"], Cell[BoxData[{ RowBox[{ @@ -17464,7 +17599,7 @@ single payoff vector.\>\"", "]"}]}], "\n", "\n", ")"}]}], ";"}], "\n", "\n", " ", "True", ",", " ", RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->\ -"cf5135e5-3133-42b9-9b28-321274676440"], +"e4b8f2b4-e00b-4bed-ab96-ed7da3bb1ac7"], Cell[BoxData[ RowBox[{ @@ -17817,7 +17952,7 @@ list.\>\"", "]"}], ";", "\n", " ", "Print", "[", "\"\\"", "]"}]}]}], "\n", " ", "]"}]}], ";"}], - "\n"}]}]], "Code",ExpressionUUID->"79f00fb9-54fe-4759-a6a7-86435fe40cc1"], + "\n"}]}]], "Code",ExpressionUUID->"a08bd211-07d7-411e-abfd-6f0fdfdcd1fe"], Cell[BoxData[{ RowBox[{ @@ -17897,7 +18032,7 @@ Cell[BoxData[{ RowBox[{ "SetGameToNonZeroMonotonic", " ", "->", " ", "notzeromono"}]}], "]"}]}]}]}], "\n", "\n", "\n", " ", "]"}]}], ";"}]}], "Code",Expressio\ -nUUID->"de91b94d-9b5b-4e98-90f6-73390bd17de9"], +nUUID->"d6a58d8a-8336-4e24-8e02-1fdae3ad644a"], Cell[BoxData[ RowBox[{ @@ -17979,7 +18114,7 @@ Cell[BoxData[ RowBox[{ "SetGameToNonZeroMonotonic", " ", "->", " ", "notzeromono"}]}], "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", "]"}]}], ";"}], - "\n"}]], "Code",ExpressionUUID->"a04b2361-f555-46d1-b255-0953c6a35af6"], + "\n"}]], "Code",ExpressionUUID->"734f2e95-b2ec-4a82-92d6-f28d30fc992b"], Cell[BoxData[ RowBox[{ @@ -18295,7 +18430,7 @@ Cell[BoxData[ "notzeromono"}]}], "]"}]}]}], "\n", " ", "]"}]}]}], "\n", " ", "]"}]}]}], "\n", " ", "]"}]}]}], "\n", " ", "]"}]}], ";"}]}]], "Code",ExpressionUUID->\ -"face353a-c5fd-4326-bd68-c18d7a85b5da"], +"5d16816f-5d60-4770-beb3-dc5cac83f374"], Cell[BoxData[{ RowBox[{ @@ -18497,7 +18632,7 @@ MaxExcessBalanced.\>\"", "]"}], ";"}]}], "\n", " ", "]"}]}], ";"}], "\n", RowBox[{ "kersol", ",", "objfunc", ",", "nb", ",", "var", ",", "tra"}], "}"}]}], "]"}]}]}], "\n", "]"}]}], ";"}]}], "Code",ExpressionUUID->\ -"f1bae8e6-d171-40aa-894d-21806526f333"], +"bfa3364d-db41-4b4b-a45b-2d70abe61595"], Cell[BoxData[{ RowBox[{ @@ -18646,7 +18781,7 @@ Cell[BoxData[{ RowBox[{ "kersol", ",", "objfunc", ",", "nb", ",", "var", ",", "tra"}], "}"}]}], "]"}]}]}], "\n", "\n", "]"}]}], ";"}]}], "Code",ExpressionUU\ -ID->"bfd5ad0d-ea8c-4312-b8c8-03adb89b2c42"], +ID->"e52858b1-4eb3-4bc3-af61-6d68af24f9ce"], Cell[BoxData[ RowBox[{ @@ -18882,8 +19017,8 @@ Cell[BoxData[ RowBox[{ RowBox[{"Print", "[", "\"\\"", "]"}], ";", "pkl"}]}], "]"}], ",", "kl"}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"8dc76b1d-fea2-4327-873d-\ -25d5a8bb30a3"], + "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"91e579cc-f3f5-483c-8a41-\ +38b07943000b"], Cell[BoxData[ RowBox[{ @@ -19008,15 +19143,15 @@ Cell[BoxData[ "oldres", ",", " ", "obj", ",", " ", "newineq", ",", " ", "var", ",", " ", "T", ",", " ", "callm", ",", " ", "sil", ",", " ", "valzf"}], "]"}]}], "]"}]}]}], "\n", "]"}]}], ";"}]], "Code",ExpressionUUID->\ -"55aa10fd-83ca-421d-8337-33eae7a85469"], +"7abbc4c0-14f5-4786-b039-838d11f2b51a"], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ "Section", " ", "ends", " ", "to", " ", "determine", " ", "a", " ", "Kernel", " ", "Range", " ", "from", " ", "an", " ", - RowBox[{"LP", "."}]}], " ", "*)"}]], "Code",ExpressionUUID->"55bf4c0d-b0d0-\ -4e23-9ffb-a4aae48c649b"], + RowBox[{"LP", "."}]}], " ", "*)"}]], "Code",ExpressionUUID->"b195da85-acf3-\ +4c71-9a2c-ad2f25bc878b"], Cell[BoxData[ RowBox[{ @@ -19081,8 +19216,8 @@ Cell[BoxData[ RowBox[{"Length", "[", "T", "]"}]}]}], ";", "\n", " ", RowBox[{"AntiPreKernelSolution", "[", RowBox[{"game", ",", "pay", ",", "opts"}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"207328ea-1065-49c6-a79e-\ -6d645faf66ed"], + "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"a4b4b848-c033-4d61-9fc3-\ +8986f37b9337"], Cell[BoxData[{ RowBox[{ @@ -19187,8 +19322,8 @@ Cell[BoxData[{ RowBox[{"Length", "[", "T", "]"}]}]}], ";", "\n", " ", RowBox[{"PreKernelSolution", "[", RowBox[{"game", ",", "pay", ",", "opts"}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"df374445-3d01-4ba8-a77c-\ -2415e39d4ff7"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"3afff4e4-06c1-4659-a3b6-\ +13557a0a7224"], Cell[BoxData[{ RowBox[{ @@ -19234,8 +19369,8 @@ Cell[BoxData[{ RowBox[{"Length", "[", "payoff", "]"}], "===", RowBox[{"Length", "[", "T", "]"}]}], ",", "True", ",", " ", "False"}], "]"}], ",", " ", "\n", " ", - "True", ",", " ", "False"}], "\n", " ", - "]"}]}], ";", "\n", " ", + "True", ",", " ", "False"}], "\n", " ", "]"}]}], ";", + "\n", " ", RowBox[{"If", "[", RowBox[{ RowBox[{ @@ -19286,7 +19421,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"SDMPreKernel", "[", - RowBox[{"game", ",", "#", ",", " ", "Infinity", ",", + RowBox[{"game", ",", "#", ",", "Infinity", ",", RowBox[{"AntiPreKernel", " ", "->", " ", "anti"}], ",", " ", RowBox[{"Method", " ", "->", " ", "mth"}], ",", " ", RowBox[{"RationalTol", "->", "rattol"}], ",", " ", @@ -19305,8 +19440,7 @@ Cell[BoxData[{ RowBox[{"$RecursionLimit", " ", "=", " ", "rclim"}], "}"}], ",", RowBox[{"SDMPreKernel", "[", - RowBox[{ - "game", ",", " ", "payoff", ",", " ", "Infinity", ",", " ", + RowBox[{"game", ",", " ", "payoff", ",", "Infinity", ",", " ", RowBox[{"AntiPreKernel", " ", "->", " ", "anti"}], ",", " ", RowBox[{"Method", " ", "->", " ", "mth"}], ",", " ", RowBox[{"RationalTol", "->", "rattol"}], ",", " ", @@ -19510,8 +19644,8 @@ length!\>\"", "]"}], ";", "\n", " ", RowBox[{"\"\\"", ",", " ", RowBox[{"2", "^", RowBox[{"Length", "[", "T", "]"}]}]}], "]"}], ";"}]}], "\n", "]"}]}], - ";"}], "\n"}], "Code",ExpressionUUID->"6baa7855-5f0a-4983-94cd-\ -63fe5a276c94"], + ";"}], "\n"}], "Code",ExpressionUUID->"3220cb03-bf1b-40ee-b78c-\ +edff38c5e920"], Cell[BoxData[{ RowBox[{ @@ -19577,8 +19711,7 @@ Cell[BoxData[{ ",", "rl", ",", "obj", ",", "var", ",", "init", ",", "minval", ",", "nwpay", ",", "tolv", ",", "meff", ",", "matE", ",", "matQ", ",", "vmeff", ",", "ralpv", ",", "alpv", ",", "bvec", ",", "solpay", ",", - "maxexc", ",", "sumexc", ",", "dfpy", ",", "leq", ",", - RowBox[{"zfval", " ", "=", " ", "optval"}]}], "}"}], ",", "\n", + "maxexc", ",", "sumexc", ",", "dfpy", ",", "leq"}], "}"}], ",", "\n", " ", RowBox[{ RowBox[{"anti", " ", "=", " ", @@ -19618,21 +19751,23 @@ Cell[BoxData[{ RowBox[{"AntiPreKernel", " ", "->", " ", "anti"}], ",", " ", RowBox[{"Silent", " ", "->", " ", "sil"}], ",", " ", RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], - "]"}]}], ";"}], ",", "\n", " ", + "]"}]}], ";"}], ",", " ", "\n", " ", RowBox[{ RowBox[{"meff", " ", "=", " ", - RowBox[{"BestCoalitions", "[", + RowBox[{"Bestcoalij01", "[", RowBox[{"game", ",", " ", "payoff", ",", " ", + RowBox[{"AntiPreKernel", " ", "->", " ", "anti"}], ",", " ", RowBox[{"MaximumSurpluses", " ", "->", " ", "False"}], ",", " ", RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}]}], ";", " ", "\n", " ", RowBox[{"matE", " ", "=", " ", - RowBox[{"-", - RowBox[{"SetsToVec", "[", - RowBox[{"meff", ",", " ", "T", ",", " ", - RowBox[{"EffVector", " ", "->", " ", "True"}]}], "]"}]}]}], ";", - "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"-", + RowBox[{"SetsToVec", "[", + RowBox[{"meff", ",", " ", "T", ",", " ", + RowBox[{"EffVector", " ", "->", " ", "True"}]}], "]"}]}], + "]"}]}], ";", "\n", " ", RowBox[{"matQ", " ", "=", " ", RowBox[{"2", "*", RowBox[{ @@ -19698,8 +19833,8 @@ Cell[BoxData[{ RowBox[{"(*", " ", RowBox[{ "Try", " ", "to", " ", "find", " ", "an", " ", "exact", " ", - "solution"}], " ", "*)"}], "\n", " ", "]"}]}], ";", - "\n", " ", + "solution"}], " ", "*)"}], "\n", " ", "]"}]}], ";", + "\n", " ", RowBox[{"solpay", " ", "=", " ", RowBox[{"Rationalize", "[", RowBox[{"var", " ", "/.", " ", @@ -19828,8 +19963,8 @@ Cell[BoxData[{ ",", RowBox[{"N", "[", RowBox[{"addexc", " ", "-", " ", "fucval"}], "]"}]}], "]"}], ";"}]}], - "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->"42c38b22-f040-43b2-\ -8a50-6831558234b8"], + "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->"d41d805f-9896-49df-\ +8a11-e83ae85c754a"], Cell[BoxData[ RowBox[{ @@ -19851,63 +19986,66 @@ Cell[BoxData[ RowBox[{"{", RowBox[{ "sil", ",", "mth", ",", "foc", ",", "syseq", ",", "rest", ",", "rl", - ",", "sol"}], "}"}], ",", "\n", " ", + ",", "sol", ",", "coefm"}], "}"}], ",", "\n", " ", RowBox[{ RowBox[{"sil", " ", "=", " ", RowBox[{"OptionValue", "[", "Silent", "]"}]}], ";", "\n", " ", RowBox[{"mth", " ", "=", " ", RowBox[{"OptionValue", "[", "Method", "]"}]}], ";", "\n", " ", + RowBox[{"coefm", "=", + RowBox[{"Developer`ToPackedArray", "[", "coefmat", "]"}]}], ";", + "\n", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"sil", "===", "False"}], ",", " ", RowBox[{ RowBox[{"MessageSolveLinEQ", "[", - RowBox[{"coefmat", ",", "bv"}], "]"}], ";"}], ",", " ", "True"}], + RowBox[{"coefm", ",", "bv"}], "]"}], ";"}], ",", " ", "True"}], "]"}], ";", "\n", " ", RowBox[{"If", "[", RowBox[{ - RowBox[{"$VersionNumber", "<", "6"}], ",", "\n", " ", + RowBox[{"$VersionNumber", "<", "6"}], ",", "\n", " ", RowBox[{ RowBox[{"sol", " ", "=", " ", RowBox[{"If", "[", RowBox[{ RowBox[{ - RowBox[{"Det", "[", "coefmat", "]"}], " ", "!=", " ", "0"}], - ",", " ", + RowBox[{"Det", "[", "coefm", "]"}], " ", "!=", " ", "0"}], ",", + " ", RowBox[{"LinearSolve", "[", - RowBox[{"coefmat", ",", + RowBox[{"coefm", ",", RowBox[{"-", "bv"}], ",", RowBox[{"Method", " ", "->", " ", "mth"}]}], "]"}], ",", RowBox[{ - RowBox[{"PseudoInverse", "[", "coefmat", "]"}], ".", + RowBox[{"PseudoInverse", "[", "coefm", "]"}], ".", RowBox[{"(", RowBox[{"-", "bv"}], ")"}]}]}], "]"}]}], ";"}], ",", "\n", - " ", + " ", RowBox[{ RowBox[{"sol", " ", "=", " ", RowBox[{"If", "[", RowBox[{ RowBox[{ - RowBox[{"Det", "[", "coefmat", "]"}], " ", "!=", " ", "0"}], - ",", " ", "\n", " ", + RowBox[{"Det", "[", "coefm", "]"}], " ", "!=", " ", "0"}], ",", + " ", "\n", " ", RowBox[{"Which", "[", RowBox[{ RowBox[{ RowBox[{ - RowBox[{"LUDecomposition", "[", "coefmat", "]"}], "[", + RowBox[{"LUDecomposition", "[", "coefm", "]"}], "[", RowBox[{"[", "3", "]"}], "]"}], " ", "<=", " ", RowBox[{"10", "^", RowBox[{"(", "4", ")"}]}]}], ",", RowBox[{"LinearSolve", "[", - RowBox[{"coefmat", ",", + RowBox[{"coefm", ",", RowBox[{"-", "bv"}], ",", RowBox[{"Method", " ", "->", " ", "mth"}]}], "]"}], ",", "\n", " ", "True", ",", " ", RowBox[{ RowBox[{"matpr", "=", RowBox[{"SetPrecision", "[", - RowBox[{"coefmat", ",", " ", "30"}], "]"}]}], ";", " ", - "\n", " ", + RowBox[{"coefm", ",", " ", "30"}], "]"}]}], ";", " ", "\n", + " ", RowBox[{"bvpr", " ", "=", " ", RowBox[{"SetPrecision", "[", RowBox[{"bv", ",", " ", "30"}], "]"}]}], ";", "\n", @@ -19919,9 +20057,9 @@ Cell[BoxData[ RowBox[{"10", "^", RowBox[{"(", RowBox[{"-", "10"}], ")"}]}]}]}], "]"}]}]}], "\n", - " ", "]"}], ",", "\n", " ", + " ", "]"}], ",", "\n", "\t\t", RowBox[{ - RowBox[{"PseudoInverse", "[", "coefmat", "]"}], ".", + RowBox[{"PseudoInverse", "[", "coefm", "]"}], ".", RowBox[{"(", RowBox[{"-", "bv"}], ")"}]}]}], "]"}]}], ";"}]}], "\n", " ", "]"}], ";", "\n", " ", @@ -19964,7 +20102,7 @@ Cell[BoxData[ RowBox[{ "\"\\"", ",", " ", "alpscal"}], "]"}], ";"}]}], "\n", " ", "]"}]}], - ";"}]}]}]], "Code",ExpressionUUID->"8497c984-ce0a-4cca-9ed2-52e813ba379d"], + ";"}]}]}]], "Code",ExpressionUUID->"45911f9e-1fff-4a18-9247-cdd0c92a1a38"], Cell[BoxData[ RowBox[{ @@ -19990,14 +20128,15 @@ Cell[BoxData[ "unsol", ",", "mpres"}], "}"}], ",", "\n", " ", RowBox[{ RowBox[{"objdf", " ", "=", " ", - RowBox[{ + RowBox[{"Developer`ToPackedArray", "[", RowBox[{ - RowBox[{"Simplify", "[", - RowBox[{"D", "[", - RowBox[{ - RowBox[{"objf", "[", - RowBox[{"[", "1", "]"}], "]"}], ",", "#"}], "]"}], "]"}], " ", - "&"}], "/@", " ", "xvar"}]}], ";", "\n", " ", + RowBox[{ + RowBox[{"Simplify", "[", + RowBox[{"D", "[", + RowBox[{ + RowBox[{"objf", "[", + RowBox[{"[", "1", "]"}], "]"}], ",", "#"}], "]"}], "]"}], " ", + "&"}], "/@", " ", "xvar"}], "]"}]}], ";", "\n", " ", RowBox[{"orgmat", " ", "=", " ", RowBox[{ RowBox[{ @@ -20030,10 +20169,11 @@ Cell[BoxData[ RowBox[{"#", ",", " ", "pvar"}], "]"}], " ", "&"}], " ", "/@", " ", "dfconjugate"}]}], ";", "\n", " ", RowBox[{"gensol", " ", "=", " ", - RowBox[{ - RowBox[{"NullSpace", "[", "cgmat", "]"}], "[", - RowBox[{"[", "1", "]"}], "]"}]}], ";", "\n", " ", - RowBox[{"solvecs", " ", "=", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{ + RowBox[{"NullSpace", "[", "cgmat", "]"}], "[", + RowBox[{"[", "1", "]"}], "]"}], "]"}]}], ";", "\n", " ", + RowBox[{"solvecs", " ", "=", " ", RowBox[{"partsol", " ", "+", " ", RowBox[{ RowBox[{"(", @@ -20109,8 +20249,8 @@ Cell[BoxData[ RowBox[{ RowBox[{"Length", "[", "extps", "]"}], "===", "0"}], ",", "pvec", ",", "extps"}], "]"}]}], ";", "\n", " ", "res"}]}], "\n", - "]"}]}], ";"}], "\n", "\n"}]}]], "Code",ExpressionUUID->"84560a71-c5d4-\ -4aa8-a165-a5ff2d8f9389"], + "]"}]}], ";"}], "\n", "\n"}]}]], "Code",ExpressionUUID->"fa1d7963-f332-\ +4c8e-bbe7-f6c82d91d96e"], Cell[BoxData[ RowBox[{ @@ -20176,7 +20316,9 @@ Cell[BoxData[ RowBox[{ RowBox[{"Outer", "[", RowBox[{"List", ",", " ", "#"}], "]"}], " ", "&"}], " ", "/@", - " ", "maxsl"}]}], ";", "\n", + " ", + RowBox[{"Developer`ToPackedArray", "[", "maxsl", "]"}]}]}], ";", + "\n", RowBox[{"(*", " ", "\n", " ", RowBox[{ RowBox[{ @@ -20196,7 +20338,8 @@ Cell[BoxData[ RowBox[{"Subtract", "[", RowBox[{"#1", ",", " ", "#2"}], "]"}], "^", "2"}], " ", "&"}], ",", " ", "#"}], "]"}], " ", "&"}], " ", "/@", " ", - "crlist"}]}], ";", "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", "crlist", "]"}]}]}], ";", + "\n", " ", RowBox[{"obj", " ", "=", " ", RowBox[{"Total", "[", "eqs", "]"}]}], ";", "\n", RowBox[{"(*", " ", "efficiency", " ", "*)"}], "\n", " ", @@ -20225,7 +20368,7 @@ Cell[BoxData[ " ", "effective", " ", "coalitions", " ", "to", " ", "balance", " ", "the", " ", "maximum", " ", RowBox[{"surpluses", "."}]}], "\n", "*)"}]}]}]], "Code",ExpressionUUID->\ -"74244cf1-6b2d-4abb-a45e-263acec790f8"], +"d07ef2ee-37ce-41f4-b3db-dfecb4b341b0"], Cell[BoxData[{ RowBox[{ @@ -20371,10 +20514,10 @@ Cell[BoxData[{ RowBox[{ RowBox[{"{", RowBox[{ - "anti", ",", " ", "maxsurp", ",", " ", "allc", ",", " ", "plvec", ",", - "sijcol", ",", "sjicol", ",", "amax", ",", "ramax", ",", "exc", ",", - "exvec", ",", "intcoal", ",", "selcij", ",", "selcji", ",", - "sigcoal"}], "}"}], ",", "\n", " ", + "anti", ",", " ", "maxsurp", ",", " ", "allc", ",", "plvec", ",", "sij", + ",", "sji", ",", "plj", ",", "pli", ",", "amax", ",", "ramax", ",", + "exc", ",", "exvec", ",", "intcoal", ",", "selcij", ",", "selcji", ",", + "sigcoal"}], "}"}], ",", "\n", " ", RowBox[{ RowBox[{"anti", " ", "=", " ", RowBox[{"OptionValue", "[", "AntiPreKernel", "]"}]}], ";", "\n", @@ -20386,24 +20529,64 @@ Cell[BoxData[{ RowBox[{"OptionValue", "[", "MaximumSurpluses", "]"}]}], ";", "\n", " ", RowBox[{"plvec", " ", "=", " ", - RowBox[{"Partition", "[", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"Partition", "[", + RowBox[{ + RowBox[{"listIJ", "[", "T", "]"}], ",", "2"}], "]"}], "]"}]}], ";", + "\n", " ", + RowBox[{"pli", " ", "=", " ", + RowBox[{ RowBox[{ - RowBox[{"listIJ", "[", "T", "]"}], ",", "2"}], "]"}]}], ";", "\n", - " ", - RowBox[{"sijcol", " ", "=", " ", + RowBox[{"First", "[", "#", "]"}], " ", "&"}], "/@", " ", "plvec"}]}], + ";", "\n", " ", + RowBox[{"plj", " ", "=", " ", RowBox[{ RowBox[{ - RowBox[{"Partition", "[", - RowBox[{"#", ",", "1"}], "]"}], " ", "&"}], "/@", " ", "plvec"}]}], + RowBox[{"#", "[", + RowBox[{"[", "2", "]"}], "]"}], " ", "&"}], "/@", " ", "plvec"}]}], ";", "\n", " ", - RowBox[{"amax", " ", "=", " ", - RowBox[{"If", "[", + RowBox[{"sij", "=", + RowBox[{"MapThread", "[", RowBox[{ - RowBox[{"anti", "===", "False"}], ",", - RowBox[{"MaxSurpluses", "[", - RowBox[{"game", ",", " ", "payoff"}], "]"}], ",", - RowBox[{"AntiSurpluses", "[", - RowBox[{"game", ",", " ", "payoff"}], "]"}]}], "]"}]}], ";", "\n", + RowBox[{ + RowBox[{"TIJsets", "[", + RowBox[{"#1", ",", "#2"}], "]"}], " ", "&"}], ",", + RowBox[{"{", + RowBox[{"pli", ",", "plj"}], "}"}]}], "]"}]}], ";", "\n", " ", + RowBox[{"sji", "=", + RowBox[{"MapThread", "[", + RowBox[{ + RowBox[{ + RowBox[{"TIJsets", "[", + RowBox[{"#1", ",", "#2"}], "]"}], " ", "&"}], ",", + RowBox[{"{", + RowBox[{"plj", ",", "pli"}], "}"}]}], "]"}]}], ";", "\n", " ", + RowBox[{"payass", " ", "=", " ", + RowBox[{"MapThread", "[", + RowBox[{"Rule", ",", + RowBox[{"{", + RowBox[{ + RowBox[{"x", " ", "/@", " ", "T"}], ",", "payoff"}], "}"}]}], + "]"}]}], ";", "\n", " ", + RowBox[{"If", "[", + RowBox[{ + RowBox[{"anti", "===", "False"}], ",", + RowBox[{"amax", " ", "=", " ", + RowBox[{"ModMaxSurpluses", "[", + RowBox[{"game", ",", "sij", ",", "sji", ",", "payass"}], "]"}]}], + ",", + RowBox[{"amax", "=", + RowBox[{"ModAntiSurpluses", "[", + RowBox[{"game", ",", "sij", ",", "sji", ",", "payass"}], "]"}]}]}], + "]"}], ";", "\n", " ", + RowBox[{"sij", "=", + RowBox[{"Developer`ToPackedArray", "[", "sij", "]"}]}], ";", "\n", + " ", + RowBox[{"sji", "=", + RowBox[{"Developer`ToPackedArray", "[", "sji", "]"}]}], ";", "\n", + " ", + RowBox[{"amax", "=", + RowBox[{"Developer`ToPackedArray", "[", "amax", "]"}]}], ";", "\n", " ", RowBox[{"exc", " ", "=", " ", RowBox[{ @@ -20424,16 +20607,14 @@ Cell[BoxData[{ RowBox[{"Subsets", "[", "T", "]"}], ",", " ", "1"}], "]"}], ",", " ", RowBox[{"-", "1"}]}], "]"}]}], ";", "\n", " ", - RowBox[{"sjicol", " ", "=", " ", - RowBox[{ - RowBox[{ - RowBox[{"Reverse", "[", "#", "]"}], " ", "&"}], "/@", " ", - "sijcol"}]}], ";", "\n", " ", RowBox[{"ramax", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{"Reverse", "[", "#", "]"}], " ", "&"}], "/@", " ", "amax"}]}], ";", "\n", " ", + RowBox[{"ramax", "=", + RowBox[{"Developer`ToPackedArray", "[", "ramax", "]"}]}], ";", "\n", + " ", RowBox[{"selcij", " ", "=", " ", RowBox[{"MapThread", "[", RowBox[{ @@ -20443,7 +20624,7 @@ Cell[BoxData[{ "#1", ",", " ", "intcoal", ",", " ", "exvec", ",", " ", "#2", ",", " ", "opts"}], "]"}], " ", "&"}], ",", " ", RowBox[{"{", - RowBox[{"sijcol", ",", " ", "amax"}], "}"}]}], "]"}]}], ";", "\n", + RowBox[{"sij", ",", " ", "amax"}], "}"}]}], "]"}]}], ";", "\n", " ", RowBox[{"selcji", " ", "=", " ", RowBox[{"MapThread", "[", @@ -20454,7 +20635,7 @@ Cell[BoxData[{ "#1", ",", " ", "intcoal", ",", " ", "exvec", ",", " ", "#2", ",", " ", "opts"}], "]"}], " ", "&"}], ",", " ", RowBox[{"{", - RowBox[{"sjicol", ",", " ", "ramax"}], "}"}]}], "]"}]}], ";", "\n", + RowBox[{"sji", ",", " ", "ramax"}], "}"}]}], "]"}]}], ";", "\n", " ", RowBox[{"sigcoal", " ", "=", " ", RowBox[{"If", "[", @@ -20478,8 +20659,8 @@ Cell[BoxData[{ ",", RowBox[{"{", RowBox[{"sigcoal", ",", "amax"}], "}"}]}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->"4fdd1f54-67e0-4e6c-bc61-\ -d1708ee5d27d"], + "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->"a3b75251-821e-4a22-8a97-\ +67bd6fa107bb"], Cell[BoxData[ RowBox[{ @@ -20487,7 +20668,7 @@ Cell[BoxData[ RowBox[{ RowBox[{"SelCoal", "[", RowBox[{ - "sij_List", ",", " ", "coal_List", ",", " ", "redexc_List", ",", " ", + "setsij_List", ",", " ", "coal_List", ",", " ", "redexc_List", ",", " ", "maxexc_List", ",", " ", RowBox[{"opts", ":", RowBox[{"OptionsPattern", "[", "BestCoalitions", "]"}]}]}], "]"}], " ", @@ -20496,9 +20677,8 @@ Cell[BoxData[ RowBox[{ RowBox[{"{", RowBox[{ - "allc", ",", " ", "smc", ",", " ", "setsij", ",", " ", "detpos", ",", - " ", "extval", ",", " ", "poscoal", ",", " ", "extcoal"}], "}"}], ",", - "\n", " ", + "allc", ",", " ", "smc", ",", " ", "detpos", ",", " ", "extval", ",", + " ", "poscoal", ",", " ", "extcoal"}], "}"}], ",", "\n", " ", RowBox[{ RowBox[{"allc", " ", "=", " ", RowBox[{"OptionValue", "[", "AllCoalitions", "]"}]}], ";", "\n", @@ -20506,28 +20686,33 @@ Cell[BoxData[ RowBox[{"smc", " ", "=", " ", RowBox[{"OptionValue", "[", "SmallestCardinality", "]"}]}], ";", "\n", " ", - RowBox[{"setsij", " ", "=", " ", + RowBox[{"(*", " ", RowBox[{ - RowBox[{"MapThread", "[", + RowBox[{ + "The", " ", "subsequent", " ", "two", " ", "lines", " ", "consume", + " ", "80", "%", " ", "of", " ", "the", " ", "computation", " ", + "time", " ", "of", " ", "an", " ", "pre"}], "-", + RowBox[{"kernel", " ", RowBox[{ - RowBox[{ - RowBox[{"TIJsets", "[", - RowBox[{"#1", ",", " ", "#2"}], "]"}], " ", "&"}], ",", " ", - "sij"}], "]"}], "[", - RowBox[{"[", "1", "]"}], "]"}]}], ";", "\n", " ", - RowBox[{"detpos", " ", "=", " ", - RowBox[{"Outer", "[", - RowBox[{"List", ",", " ", + RowBox[{"element", "!!"}], "!"}]}]}], " ", "*)"}], "\n", " ", + RowBox[{"detpos", "=", + RowBox[{"MapThread", "[", + RowBox[{"List", ",", + RowBox[{"{", + RowBox[{"coal", ",", "redexc"}], "}"}]}], "]"}]}], ";", " ", "\n", + " ", + RowBox[{"extval", " ", "=", " ", + RowBox[{ + RowBox[{ RowBox[{ RowBox[{ RowBox[{ - RowBox[{"Position", "[", - RowBox[{"coal", ",", " ", "#"}], "]"}], " ", "&"}], " ", "/@", - " ", "setsij"}], " ", "//", " ", "Flatten"}]}], "]"}]}], ";", - "\n", " ", - RowBox[{"extval", " ", "=", " ", - RowBox[{"Extract", "[", - RowBox[{"redexc", ",", " ", "detpos"}], "]"}]}], ";", "\n", " ", + RowBox[{"Last", "[", "#", "]"}], " ", "&"}], "/@", " ", + RowBox[{"Cases", "[", + RowBox[{"detpos", ",", + RowBox[{"{", + RowBox[{"#", ",", "___"}], "}"}]}], "]"}]}], " ", "&"}], "/@", + " ", "setsij"}], " ", "//", " ", "Flatten"}]}], ";", "\n", " ", RowBox[{"poscoal", " ", "=", " ", RowBox[{"Position", "[", RowBox[{"extval", ",", " ", @@ -20562,7 +20747,7 @@ Cell[BoxData[ " ", "True", ",", " ", RowBox[{"First", "[", "extcoal", "]"}]}], "]"}]}], "]"}]}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n", "\n"}]], "Code",Express\ -ionUUID->"54bbf074-e65c-4de8-944f-8f5da2c8761a"], +ionUUID->"78ffea1e-0a02-4df3-9ae5-ab5534afad96"], Cell[BoxData[ RowBox[{ @@ -20649,8 +20834,8 @@ Cell[BoxData[ " ", "True", ",", " ", RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"da51dbce-4bbb-4ece-ab29-\ -1fb07e2c64f2"], + "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"613d2358-f778-4849-a942-\ +3056d77d64ac"], Cell[BoxData[{ RowBox[{ @@ -20866,8 +21051,8 @@ Cell[BoxData[{ " ", "True", ",", " ", RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"c67c9e7a-c607-411e-9f65-\ -8864a0e5b0c8"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"9662f492-8e51-47cd-9b5d-\ +3067107cc040"], Cell[BoxData[{ RowBox[{ @@ -20964,8 +21149,9 @@ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"Outer", "[", - RowBox[{"List", ",", " ", "#"}], "]"}], " ", "&"}], " ", "/@", " ", - "mg"}]}], ";", "\n", " ", + RowBox[{"List", ",", " ", "#"}], "]"}], " ", "&"}], " ", "/@", " ", + RowBox[{"Developer`ToPackedArray", "[", "mg", "]"}]}]}], ";", "\n", + " ", RowBox[{"replzr", " ", "=", " ", RowBox[{ RowBox[{ @@ -21085,8 +21271,8 @@ Cell[BoxData[{ " ", "True", ",", " ", RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"594185b0-1509-4202-834f-\ -ca20ed6bd1e8"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"9767252f-a4e0-46dc-9956-\ +58a73a3b660a"], Cell[BoxData[{ RowBox[{ @@ -21274,8 +21460,8 @@ Cell[BoxData[{ RowBox[{"effvec", "==", "True"}], ",", " ", RowBox[{"Prepend", "[", RowBox[{"detunan", ",", "onesv"}], "]"}], ",", " ", "detunan"}], - "]"}]}]}], "\n", "]"}]}], ";"}]}], "Code",ExpressionUUID->"d0f2963c-\ -c2a6-4461-9ff9-9f6b3fefdcef"], + "]"}]}]}], "\n", "]"}]}], ";"}]}], "Code",ExpressionUUID->"21f79d75-\ +4d1a-41e1-9351-29eceb48f21a"], Cell[BoxData[ RowBox[{ @@ -21296,7 +21482,7 @@ Cell[BoxData[ RowBox[{"DetDircSetIJ", "[", RowBox[{"#", ",", " ", "powers"}], "]"}], " ", "&"}], " ", "/@", " ", "bsccoal"}]}]}], "\n", " ", "]"}]}], ";"}]], "Code",ExpressionUUID->\ -"9f5fc2c5-f6ed-48fc-9cb2-6d95501e2c4c"], +"4dfa4641-6ffd-49d3-b212-63422a7f9694"], Cell[BoxData[{ RowBox[{ @@ -21430,8 +21616,8 @@ Cell[BoxData[{ " ", "True", ",", " ", RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"8a63378d-3c8c-4a5e-9f21-\ -273cb298668d"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"1089185d-99e0-4f80-a026-\ +5e9b26f91f81"], Cell[BoxData[{ RowBox[{ @@ -21596,8 +21782,8 @@ Cell[BoxData[{ RowBox[{"Length", "[", "T", "]"}]}]}], ";", "\n", " ", RowBox[{"PreKernel", "[", RowBox[{"game", ",", "pay", ",", "opts"}], "]"}]}]}], "\n", " ", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"5cc2059a-7f98-42f9-a2a9-\ -b797f96bc8d8"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"e940376b-3ce4-4d8a-9cea-\ +70a687d8dc70"], Cell[BoxData[ RowBox[{ @@ -21675,8 +21861,8 @@ Cell[BoxData[ " ", "True", ",", " ", RowBox[{"PrintRemark", "[", "payoff", "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", - "]"}]}], ";"}]], "Code",ExpressionUUID->"58884a74-7d17-4a38-a271-\ -55a5c6d7d44b"], + "]"}]}], ";"}]], "Code",ExpressionUUID->"01a3cd28-6d05-4685-aede-\ +5d9968725afc"], Cell[BoxData[ RowBox[{ @@ -21700,7 +21886,7 @@ Cell[BoxData[ RowBox[{"OptionValue", "[", "SmallestCardinality", "]"}]}], ";", "\n", " ", RowBox[{"meff", " ", "=", " ", - RowBox[{"BestCoalitions", "[", + RowBox[{"Bestcoalij01", "[", RowBox[{"game", ",", " ", "payoff", ",", " ", RowBox[{"MaximumSurpluses", " ", "->", " ", "False"}], ",", " ", RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}]}], @@ -21744,8 +21930,7 @@ Cell[BoxData[ RowBox[{"10", "^", RowBox[{"(", RowBox[{"-", "12"}], ")"}]}]}]}], "]"}], ",", - RowBox[{"Return", "[", "payoff", "]"}], ",", " ", "\n", - " ", + RowBox[{"Return", "[", "payoff", "]"}], ",", " ", "\n", " ", RowBox[{ RowBox[{"xvec", "=", RowBox[{"-", @@ -21754,8 +21939,8 @@ Cell[BoxData[ ";", "\n", " ", RowBox[{"PreKernelAlg2", "[", RowBox[{"game", ",", "xvec", ",", "opts"}], "]"}]}]}], "]"}]}]}], - " ", "\n", " ", "]"}]}], ";"}]], "Code",ExpressionUUID->"a1d98b8c-773b-\ -475a-8032-c695f82cd278"], + " ", "\n", " ", "]"}]}], ";"}]], "Code",ExpressionUUID->"09bb3eaf-fdf7-\ +4edd-a7f6-ef48f03c9569"], Cell[BoxData[ RowBox[{ @@ -21905,20 +22090,20 @@ Cell[BoxData[ RowBox[{"OptionValue", "[", "CalcStepSize", "]"}]}], ";", "\n", " ", RowBox[{"pinv", " ", "=", " ", - RowBox[{"OptionValue", "[", "PseudoInv", "]"}]}], ";", "\n", " ", - + RowBox[{"OptionValue", "[", "PseudoInv", "]"}]}], ";", "\n", " ", RowBox[{ RowBox[{"{", RowBox[{"optstep", ",", " ", "doi", ",", "mex"}], "}"}], " ", "=", " ", - RowBox[{"DirectionOfImprovement", "[", - RowBox[{"game", ",", " ", "payoff", ",", " ", - RowBox[{"MaximumSurpluses", " ", "->", " ", "True"}], ",", " ", - RowBox[{"CalcStepSize", " ", "->", " ", "optst"}], ",", " ", - RowBox[{"PseudoInv", "->", "pinv"}], ",", - RowBox[{"Silent", " ", "->", " ", "sil"}], ",", " ", - RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}]}], - ";", "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"DirectionOfImprovement", "[", + RowBox[{"game", ",", " ", "payoff", ",", " ", + RowBox[{"MaximumSurpluses", " ", "->", " ", "True"}], ",", " ", + RowBox[{"CalcStepSize", " ", "->", " ", "optst"}], ",", " ", + RowBox[{"PseudoInv", "->", "pinv"}], ",", + RowBox[{"Silent", " ", "->", " ", "sil"}], ",", " ", + RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}], + "]"}]}], ";", "\n", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"sil", " ", "===", "False"}], ",", " ", @@ -21978,7 +22163,7 @@ Cell[BoxData[ RowBox[{"Silent", " ", "->", " ", "sil"}], ",", " ", RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}]}], "]"}]}]}], " ", "\n", "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->\ -"69ff03b1-8790-4c96-b0cb-4288aedf3b35"], +"611a0466-7495-4ef6-b6ce-7ba0464f9a6b"], Cell[BoxData[{ RowBox[{ @@ -22023,7 +22208,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"{", RowBox[{"meff", ",", " ", "mex"}], "}"}], " ", "=", " ", - RowBox[{"BestCoalitions", "[", + RowBox[{"Bestcoalij01", "[", RowBox[{"game", ",", " ", "payoff", ",", " ", RowBox[{"MaximumSurpluses", " ", "->", " ", "True"}], ",", " ", RowBox[{"SmallestCardinality", " ", "->", " ", "smc"}]}], "]"}]}], @@ -22042,7 +22227,9 @@ Cell[BoxData[{ RowBox[{"{", RowBox[{"1.", ",", " ", RowBox[{"-", "1."}]}], "}"}], ".", "#"}], " ", "&"}], " ", "/@", - " ", "mex"}]}], ";", "\n", " ", + " ", + RowBox[{"Developer`ToPackedArray", "[", "mex", "]"}]}]}], ";", "\n", + " ", RowBox[{"varpay", " ", "=", " ", RowBox[{ RowBox[{ @@ -22137,8 +22324,8 @@ Cell[BoxData[{ RowBox[{ RowBox[{"-", " ", RowBox[{"smex", ".", "edvec"}]}], "/", "nrsq"}]}], "]"}]}]}], "\n", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"a618e868-3783-45e6-ae84-\ -d1787028c75d"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"6e14daef-9442-4661-b33c-\ +b32c057076ec"], Cell[BoxData[ RowBox[{ @@ -22389,7 +22576,7 @@ of h has no solution.\>\"", "]"}]}], ";"}], "\n", "\n", "\"\\"", ",", " ", RowBox[{"Length", "[", "hstfunc", "]"}]}], "]"}]}], ")"}]}], - ";"}]}]}]], "Code",ExpressionUUID->"b3c3ba4a-b100-40e9-a5b5-21556ad59fb1"], + ";"}]}]}]], "Code",ExpressionUUID->"43a36a01-0351-446f-a347-f1fdb35dde2b"], Cell[BoxData[ RowBox[{ @@ -22417,8 +22604,8 @@ objective function h,\>\"", "]"}], ";", "\n", " ", solution is not a unique vector!\>\"", "]"}], ";", "\n", " ", RowBox[{ "Print", "[", "\"\\"", - "]"}]}], "\n", ")"}]}], ";"}]], "Code",ExpressionUUID->"85732a78-c71f-\ -4f13-bc39-8cb21bec3391"], + "]"}]}], "\n", ")"}]}], ";"}]], "Code",ExpressionUUID->"d546c0b0-5c00-\ +497c-9781-a544c42b1196"], Cell[BoxData[{ RowBox[{ @@ -22511,7 +22698,7 @@ vector.\>\"", "]"}], ";", "\n", " ", RowBox[{ RowBox[{"(*", " ", RowBox[{"Kernel", " ", "section", " ", "ends"}], " ", "*)"}]}]}], "Code",Ex\ -pressionUUID->"0f881549-cf89-4cf1-9bf9-254354ca6ffe"], +pressionUUID->"2cc2bb34-d2db-4c6a-a88a-f6afeede398f"], Cell[BoxData[ RowBox[{ @@ -22944,7 +23131,7 @@ Cell[BoxData[ RowBox[{"Drop", "[", RowBox[{"#", ",", " ", "1"}], "]"}], " ", "&"}], " ", "/@", " ", "sortlist"}]}]}], "\n", " ", "]"}]}], ";"}], "\n"}]}]], "Code",Expr\ -essionUUID->"6c0878e5-ed6a-4a43-9912-f7cb21c5128f"], +essionUUID->"2d35a7aa-2061-4ebc-91dc-10d7c1a94b43"], Cell[BoxData[{ RowBox[{ @@ -23075,7 +23262,7 @@ Cell[BoxData[{ RowBox[{"Drop", "[", RowBox[{"#", ",", " ", "1"}], "]"}], " ", "&"}], " ", "/@", " ", "sortlist"}]}]}], "\n", " ", "]"}]}], ";"}], "\n"}], "Code",Expressio\ -nUUID->"18ae62cd-0674-459b-9bc4-587e16868932"], +nUUID->"15feae92-c734-46b3-9af6-6b936aa7d993"], Cell[BoxData[{ RowBox[{ @@ -23240,7 +23427,7 @@ Cell[BoxData[{ RowBox[{"vertlist1", ",", "incidences1"}], "}"}], ",", "\n", " ", "True", ",", " ", "vertlist1"}], "\n", " ", "]"}]}]}], "\n", "]"}]}], ";"}]}], "Code",ExpressionU\ -UID->"ea8c0b19-5e97-4d05-8986-8b84e2acb7e8"], +UID->"e6ad8f9d-e998-4be5-8e8c-0dea47e3e83b"], Cell[BoxData[{ RowBox[{ @@ -23672,7 +23859,7 @@ Cell[BoxData[{ RowBox[{"vertlist1", ",", "linearity1"}], "}"}], ",", "ecdlist1", ",", "eadlist1", ",", "icdlist1", ",", "iadlist1", ",", "extmat"}], "}"}]}]}], "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->\ -"6dbb3bce-25b5-4633-aefd-1abf149fbe2e"], +"2e765a17-43ad-423c-b5ff-d052f565aea3"], Cell[BoxData[{ RowBox[{ @@ -23828,7 +24015,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"Total", "[", "crv", "]"}], "/", RowBox[{"Length", "[", "crv", "]"}]}]}]}], "\n", "\t\t ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"fe4e51c5-478c-4367-8b38-69de68e99c7f"], + ";"}]}], "Code",ExpressionUUID->"92c1dd61-3e5c-44e2-b667-c16bfbad77ef"], Cell[BoxData[ RowBox[{ @@ -23900,7 +24087,7 @@ Cell[BoxData[ RowBox[{"stpsize", "[", RowBox[{"[", "1", "]"}], "]"}]}], "}"}]}], "]"}]}], "\n", " ", "]"}]}]}], "\n", " ", "]"}]}], ";"}]], "Code",ExpressionUU\ -ID->"c2fa5b0f-c9a8-48ad-801a-04de17f9d1dc"], +ID->"b7b550b7-7113-4e84-83b7-4c99279e5434"], Cell[BoxData[{ RowBox[{ @@ -24409,8 +24596,8 @@ Cell[BoxData[{ RowBox[{"Vec3DToSimplex", "[", "#", "]"}], " ", "&"}], "/@", " ", RowBox[{"{", RowBox[{"kr", ",", "nc", ",", "shv", ",", "prk"}], "}"}]}]}]}], "\n", - "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->"bd2ebffc-8df7-4bd5-8202-\ -378fa08ad563"], + "]"}]}], ";"}], "\n"}], "Code",ExpressionUUID->"5053c693-c10d-438d-939b-\ +696cb115aa4c"], Cell[BoxData[ RowBox[{"(*", " ", @@ -24419,7 +24606,7 @@ Cell[BoxData[ RowBox[{"deprecated", ".", " ", "Use"}], " ", "TuGames", " ", "Version", " ", "1.8", " ", "if", " ", "you", " ", "need", " ", "this", " ", RowBox[{"function", "."}]}], " ", "*)"}]], "Code",ExpressionUUID->\ -"0c965ad6-eb1e-414b-bd9a-bd7b8ac1a280"], +"721d06fb-ec94-4f80-8ce3-b74f843ffbad"], Cell[BoxData[{ RowBox[{ @@ -24494,7 +24681,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"(*", " ", RowBox[{"End", " ", "mathlink", " ", "section"}], " ", "*)"}]}]}], "Code",E\ -xpressionUUID->"b0e2dde6-1b0b-4213-8fea-ee4335432e29"], +xpressionUUID->"9f95f4e9-bf44-44e2-86cc-a9ed046ca1a9"], Cell[BoxData[ RowBox[{ @@ -24723,20 +24910,20 @@ Cell[BoxData[ RowBox[{ RowBox[{"Union", "[", "#", "]"}], " ", "&"}], " ", "/@", " ", "retval"}]}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], - "\n"}]}]], "Code",ExpressionUUID->"c3f523b5-846b-4478-a560-de65201e2b46"], + "\n"}]}]], "Code",ExpressionUUID->"10f29875-e609-4880-b6e8-8617fc500cb7"], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ "section", " ", "adjusted", " ", "worth", " ", "vector", " ", "ends"}], " ", - "*)"}]], "Code",ExpressionUUID->"c704d20f-39e2-402d-8b43-47992fa58862"], + "*)"}]], "Code",ExpressionUUID->"652a4bcd-d490-4f96-99ff-8145423bca04"], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ RowBox[{"section", " ", "general", " ", "k"}], "-", RowBox[{"convex", " ", "functions", " ", "starts"}]}], " ", "*)"}]], "Code",\ -ExpressionUUID->"c7c0a15d-e552-4f1d-b5e6-3bf7c9bd575d"], +ExpressionUUID->"454a0734-1c17-4bf3-b1e3-1d984b5b08fc"], Cell[BoxData[{ RowBox[{ @@ -24758,7 +24945,7 @@ Cell[BoxData[{ RowBox[{"Gap", "[", "game", "]"}], ",", RowBox[{"-", "1"}]}], "]"}], " ", "/", " ", RowBox[{"Length", "[", "T", "]"}]}]}]}], ";"}]}], "Code",ExpressionUUID->\ -"95c1416b-9e39-4252-9fa6-5a1f09e9eeac"], +"ea077a60-a6e4-4ce7-9aed-5fd20329f223"], Cell[BoxData[{ RowBox[{ @@ -24903,7 +25090,7 @@ Cell[BoxData[{ RowBox[{"game_", ",", " ", "S_List"}], "]"}], ":=", " ", RowBox[{"Plus", " ", "@@", " ", RowBox[{"UpperPayoff", " ", "/@", " ", "S"}]}]}], ";"}]}], "Code",Expressi\ -onUUID->"b414ca33-ef05-47c8-bc95-3d9efbed2450"], +onUUID->"4f170821-35ec-4dae-951f-8d3383d43992"], Cell[BoxData[{ RowBox[{ @@ -25162,7 +25349,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"AdjustedEffVector", "[", RowBox[{"game", ",", "#"}], "]"}], " ", "&"}], " ", "/@", " ", "T"}]}], - ";"}]}], "Code",ExpressionUUID->"09d88cba-52fd-423a-820a-3ce5ad9afd41"], + ";"}]}], "Code",ExpressionUUID->"62f30b2a-74fb-4a71-a8fa-7030db97f2e4"], Cell[BoxData[{ RowBox[{ @@ -25215,8 +25402,8 @@ Cell[BoxData[{ RowBox[{ RowBox[{"Gap", "[", "game", "]"}], ",", RowBox[{"#", "+", "1"}]}], "]"}]}], " ", "&"}], " ", "/@", " ", - "T"}]}], ";"}]}], "Code",ExpressionUUID->"8d95ba51-9c8d-4e73-98d6-\ -2e609d1f398c"], + "T"}]}], ";"}]}], "Code",ExpressionUUID->"614ecac9-d6dc-48b1-b8de-\ +cfcd692c379b"], Cell[BoxData[{ RowBox[{ @@ -25234,7 +25421,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"UpperVector", "[", "game", "]"}], " ", "-", " ", RowBox[{"Concession", "[", "game", "]"}]}]}], ";"}]}], "Code",ExpressionUU\ -ID->"94c91725-c89e-4c0c-87fa-151467343c25"], +ID->"a69c1279-cf38-4167-9252-2ad7805ec7e4"], Cell[BoxData[{ RowBox[{ @@ -25364,7 +25551,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"Chi", "[", "game_", "]"}], ":=", " ", RowBox[{"GenUpperVector", "[", "game", "]"}]}], ";"}]}], "Code",ExpressionU\ -UID->"5e333d80-40fb-4524-b806-ceb0677de26f"], +UID->"e33a6dde-92ee-4b10-b7a2-c6799e810f6e"], Cell[BoxData[{ RowBox[{ @@ -25432,15 +25619,15 @@ Cell[BoxData[{ "\"\\"", "]"}], ";", RowBox[{"{", "}"}]}]}], "]"}]}]}], "\n", "\t\t ", "]"}]}], ";"}], - "\n"}], "\n"}], "Code",ExpressionUUID->"17370861-c93f-4388-8c56-\ -0ebfe8b9b26f"], + "\n"}], "\n"}], "Code",ExpressionUUID->"d26162f0-bcd3-4aa6-a133-\ +3c8fbdd44ce2"], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ RowBox[{"section", " ", "general", " ", "k"}], "-", RowBox[{"convex", " ", "functions", " ", "ends"}]}], " ", "*)"}]], "Code",E\ -xpressionUUID->"70e6cb57-bf6a-4183-96e1-509e7b8405d1"], +xpressionUUID->"f3ab445a-af11-4828-8885-115f3edd429b"], Cell[BoxData[ RowBox[{ @@ -25549,7 +25736,7 @@ computed!\>\"", "]"}], ";", "\"\\ \"", "]"}], ";", RowBox[{"{", "}"}]}]}], "]"}]}]}], "\n", "\t\t ", "]"}]}], - ";"}]}]}]], "Code",ExpressionUUID->"b0c13e3e-d9a4-4fbf-8110-3b18f8b7134c"], + ";"}]}]}]], "Code",ExpressionUUID->"005ac60c-9d4f-4a0a-91e3-0f37bec295e5"], Cell[BoxData[ RowBox[{ @@ -25582,7 +25769,7 @@ Cell[BoxData[ RowBox[{"Print", "[", "\"\\"", "]"}], ";", " ", RowBox[{"{", "}"}]}]}], "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->\ -"d74ac2a2-7438-4fb0-b6ae-8e4e522dba7c"], +"6d6816af-606a-46a5-be88-8789d477cdb0"], Cell[BoxData[ RowBox[{ @@ -25652,7 +25839,7 @@ Cell[BoxData[ RowBox[{"sol", ",", " ", RowBox[{"{", "__Rule", "}"}], ",", " ", "\[Infinity]"}], "]"}]}], " ", "//", " ", "Flatten"}]}]}], "\n", " ", "]"}]}], ";"}]], "Code",Ex\ -pressionUUID->"ea11f0cf-78f3-406e-8468-2ad370b7948e"], +pressionUUID->"30e62993-e562-4329-8604-4e9ec5efd2e1"], Cell[BoxData[{ RowBox[{ @@ -25874,7 +26061,7 @@ Cell[BoxData[{ RowBox[{"payoffs", ",", "game"}], "]"}], ",", "\n", " ", "True", ",", " ", RowBox[{"DisplayUsageRem", "[", "payoffs", "]"}]}], "\n", " ", - "]"}]}], "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->"1e5bfb38-1460-4c8f-8693-36dd8b5d9626"], + "]"}]}], "\n", " ", "]"}]}], ";"}]}], "Code",ExpressionUUID->"e0c98fad-6847-4ee5-a0ff-8f9d7e5a2d75"], Cell[BoxData[ RowBox[{ @@ -25945,7 +26132,7 @@ Cell[BoxData[ "Print", "[", "\"\\"", "]"}], ";", " ", "False"}]}], "]"}]}], ";", " ", "\n", " ", RowBox[{"Return", "[", "inQ", "]"}], ";"}]}], "\n", " ", "]"}]}], - ";"}]}]}]], "Code",ExpressionUUID->"8bdc3831-02a5-4cfc-a22c-6b14f72affdc"], + ";"}]}]}]], "Code",ExpressionUUID->"6b8892a7-47ac-4cf6-bb7a-80bdbaf02b22"], Cell[BoxData[ RowBox[{ @@ -26010,7 +26197,7 @@ CoreElementsQ[game,payoffs]\>\"", "]"}], ";", "\n", " ", "Print", "[", "\"\\"", "]"}]}], ")"}]}], ";"}]}]}]], "Code",ExpressionUUI\ -D->"cb0b1d5d-5db6-460b-ba0c-78b9f8b14b41"], +D->"4d988ef0-a5de-4f42-8da0-b59d9bf3f8d9"], Cell[BoxData[ RowBox[{ @@ -26065,8 +26252,8 @@ Cell[BoxData[ RowBox[{"Apply", "[", RowBox[{"And", ",", " ", "#"}], "]"}], " ", "&"}], " ", "/@", " ", "trueli"}]}], ";", "\n", " ", "wahrQ"}]}], "\n", " ", "]"}]}], - ";"}], "\n"}]], "Code",ExpressionUUID->"04ab7793-2fd8-4e15-9076-\ -4192db63563d"], + ";"}], "\n"}]], "Code",ExpressionUUID->"ba8192a6-7862-4916-bc8b-\ +bec7aa27af1a"], Cell[BoxData[{ RowBox[{ @@ -26143,10 +26330,11 @@ Cell[BoxData[{ RowBox[{"mgsys", ",", "gb"}], "}"}], ",", "\n", " ", RowBox[{ RowBox[{"mgsys", " ", "=", " ", - RowBox[{"Drop", "[", - RowBox[{ - RowBox[{"Subsets", "[", "T", "]"}], ",", " ", "1"}], "]"}]}], ";", - "\n", " ", + RowBox[{"Developer`ToPackedArray", "[", + RowBox[{"Drop", "[", + RowBox[{ + RowBox[{"Subsets", "[", "T", "]"}], ",", " ", "1"}], "]"}], + "]"}]}], ";", "\n", " ", RowBox[{"gb", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ @@ -26194,7 +26382,7 @@ Cell[BoxData[{ " ", "True", ",", " ", RowBox[{"WrongCoordDimension", "[", RowBox[{"coord", ",", " ", "T"}], "]"}]}], "]"}]}], "\n", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"3f3e4fe0-c3cf-419f-a3af-a415c2b9b46a"], + ";"}]}], "Code",ExpressionUUID->"1fc972da-87b8-40b7-98e6-b39ae53c82b9"], Cell[BoxData[{ RowBox[{ @@ -26382,8 +26570,8 @@ Cell[BoxData[{ ";", "\n", " ", RowBox[{"Return", "[", "\"\\"", "]"}], ";"}]}], " ", "\n", " ", "]"}]}], "\n", "]"}]}], - ";"}], "\n"}], "Code",ExpressionUUID->"a77f7671-1d72-431d-8bf4-\ -5b409c39be69"], + ";"}], "\n"}], "Code",ExpressionUUID->"aad0a816-1833-41d1-a002-\ +d770ce80ddbd"], Cell[BoxData[ RowBox[{ @@ -26464,8 +26652,8 @@ Cell[BoxData[ " ", RowBox[{"discrd", " ", "===", " ", "True"}], ",", " ", "rtnneg", ",", "\n", " ", "True", ",", " ", "trfl"}], "\n", " ", - "]"}]}]}], "\n", "]"}]}], ";"}]], "Code",ExpressionUUID->"ae00e533-\ -9bf6-4d9d-82cb-ea61ba31c55a"], + "]"}]}]}], "\n", "]"}]}], ";"}]], "Code",ExpressionUUID->"0183e3b1-\ +dadd-4742-a3d0-be9035643a08"], Cell[BoxData[{ RowBox[{ @@ -26525,7 +26713,7 @@ Cell[BoxData[{ RowBox[{"\[Lambda]", "[", "#", "]"}], " ", "&"}], " ", "/@", " ", "extset"}]}], ";", "\n", " ", RowBox[{"Total", "[", "uncoord", "]"}]}]}], "\n", " ", "]"}]}], - ";"}]}], "Code",ExpressionUUID->"92aeacb6-446c-4c1f-addc-10dfdb4bd23e"], + ";"}]}], "Code",ExpressionUUID->"6f63fb99-c110-4c46-88de-ffa0ba936787"], Cell[BoxData[ RowBox[{ @@ -26563,8 +26751,8 @@ Cell[BoxData[ " ", "True", ",", " ", RowBox[{"UnanAvConvexIffCondQ", "[", RowBox[{"coord", ",", "T", ",", "opts"}], "]"}]}], "\n", " ", - "]"}]}], "\n", "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"18bfd351-\ -78db-4d74-92d8-ae57fa600bd7"], + "]"}]}], "\n", "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"77c17640-\ +65f6-4d71-8e5c-0376228b5c14"], Cell[BoxData[ RowBox[{ @@ -26591,7 +26779,7 @@ Cell[BoxData[ RowBox[{"Union", "[", RowBox[{"NonNegative", "[", "tkno", "]"}], "]"}], " ", "===", " ", RowBox[{"{", "True", "}"}]}]}]}], "\n", "]"}]}], ";"}]], "Code",Express\ -ionUUID->"136731f2-e308-4377-967f-efbbeb7d0391"], +ionUUID->"f5c78394-9127-4b7f-9274-b96ac0fc07b0"], Cell[BoxData[ RowBox[{ @@ -26660,8 +26848,8 @@ Cell[BoxData[ RowBox[{"SameQ", "[", RowBox[{"discrd", ",", "True"}], "]"}], ",", " ", "rtnneg", ",", "\n", " ", "True", ",", " ", "trfl"}], "\n", " ", - "]"}]}]}], "\n", "]"}]}], ";"}]], "Code",ExpressionUUID->"00b92373-\ -fff3-478f-8bae-b8fd43384fe6"], + "]"}]}]}], "\n", "]"}]}], ";"}]], "Code",ExpressionUUID->"e226b795-\ +960b-4aaf-8a46-c4924173ad71"], Cell[BoxData[ RowBox[{ @@ -26788,7 +26976,7 @@ Cell[BoxData[ RowBox[{"(", RowBox[{"#", " ", "/.", " ", "rlcrd"}], ")"}], " ", "&"}], " ", "/@", " ", "addcrd"}]}]}], "\n", "]"}]}], ";"}], "\n"}]], "Code",Expression\ -UUID->"6922b04f-bc92-4473-90e3-00b42b92b48a"], +UUID->"97319a41-919e-4733-b6a0-dd7170e3d096"], Cell[BoxData[ RowBox[{ @@ -26986,8 +27174,8 @@ Cell[BoxData[ RowBox[{"Sort", "[", RowBox[{"Apply", "[", RowBox[{"Join", ",", " ", "crdpr01"}], "]"}], "]"}]}]}], "\n", - " ", "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"f10de453-7453-4efc-\ -a070-209a5716206c"], + " ", "]"}]}], ";"}]}]}]], "Code",ExpressionUUID->"fcc72262-917c-403d-\ +bbb2-2e316c0887c4"], Cell[BoxData[ RowBox[{ @@ -27062,7 +27250,7 @@ Cell[BoxData[ RowBox[{"Min", "[", "inscrd", "]"}], ",", " ", RowBox[{"Max", "[", RowBox[{"-", "inscrd"}], "]"}]}], "]"}]}]}], "\n", " ", "]"}]}], - ";"}]], "Code",ExpressionUUID->"4270244a-c37c-481e-ae57-e42108b075c0"], + ";"}]], "Code",ExpressionUUID->"10158693-5bb1-45db-9ba2-21b27c800570"], Cell[BoxData[{ RowBox[{ @@ -27153,8 +27341,8 @@ Cell[BoxData[{ RowBox[{"Apply", "[", RowBox[{"And", ",", RowBox[{"NonNegative", "[", "unanc", "]"}]}], "]"}]}]}], "\n", - "]"}]}], ";"}]}], "Code",ExpressionUUID->"57adff55-dcf1-40ed-9a38-\ -2414aabba167"], + "]"}]}], ";"}]}], "Code",ExpressionUUID->"37782e73-a1bd-4f81-ba50-\ +bf306622d599"], Cell[BoxData[ RowBox[{ @@ -27217,7 +27405,7 @@ Cell[BoxData[ RowBox[{"UnanimityCoordinates", "[", "game", "]"}]}], ";", "\n", " ", RowBox[{"lams", ".", "unc"}]}]}], "\n", " ", "]"}]}], ";"}]], "Code",Ex\ -pressionUUID->"43a091e3-5f38-49df-9306-4337063e6734"], +pressionUUID->"56376c5f-26d6-410c-8c35-a30665a38ee9"], Cell[BoxData[ RowBox[{ @@ -27350,8 +27538,8 @@ Cell[BoxData[ " ", RowBox[{"PrintMessageSec", ";", "smallestcoord"}]}], "]"}]}]}], " ", "\n", " ", "]"}]}]}], " ", "\n", " ", "]"}]}], - ";"}], "\n"}]}]], "Code",ExpressionUUID->"108bbbc7-e5c8-4c75-9428-\ -fa9bcb05f25b"], + ";"}], "\n"}]}]], "Code",ExpressionUUID->"ddc772ad-fa15-4e19-94ab-\ +02fe991375d7"], Cell[BoxData[{ RowBox[{ @@ -27414,7 +27602,7 @@ equal to \>\"", ",", " ", "s0"}], "]"}], ";", "\n", " ", RowBox[{"Global`Co", ",", "coal"}], "]"}], ";"}], "\n", RowBox[{ RowBox[{"Protect", "[", "Global`sij", "]"}], ";"}]}], "Code",ExpressionUUID->\ -"33074637-1df6-46b7-bdbc-d17c4e012299"], +"0740dcc4-5bc8-413c-8f89-f9f0a4c759a9"], Cell[BoxData[{ RowBox[{ @@ -27436,14 +27624,14 @@ Cell[BoxData[{ ";"}], ",", "\n", " ", "True"}], "]"}], ";"}], "\n"}], "\n", RowBox[{ RowBox[{"EndPackage", "[", "]"}], "\n", "\n", "\n", "\n", "\n", "\n", "\n", - "\n"}], "\n"}], "Code",ExpressionUUID->"d86c4bba-2078-4ec8-b6c6-\ -c2616a5ba742"] + "\n"}], "\n"}], "Code",ExpressionUUID->"54c76174-38ce-44bc-bac4-\ +bf26e2286ed3"] }, -WindowSize->{808, 869}, -WindowMargins->{{144, Automatic}, {91, Automatic}}, -FrontEndVersion->"12.1 for Linux x86 (64-bit) (March 18, 2020)", +WindowSize->{808, 823}, +WindowMargins->{{144, Automatic}, {Automatic, 86}}, +FrontEndVersion->"12.1 for Linux x86 (64-bit) (March 14, 2020)", StyleDefinitions->"Default.nb", -ExpressionUUID->"cae4cf0c-ccc3-4456-8b96-999806177012" +ExpressionUUID->"80bd7e9f-a092-4fbb-814b-62cb5130e5b0" ] (* End of Notebook Content *) @@ -27456,206 +27644,208 @@ CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ -Cell[558, 20, 24859, 530, 3651, "Code",ExpressionUUID->"9a8aeddf-de48-46c5-8fd3-783ac9b2ee66"], -Cell[25420, 552, 15081, 300, 2305, "Code",ExpressionUUID->"ee731aa3-8b1e-4e3d-b8b7-1441a0d9c95c"], -Cell[40504, 854, 377, 8, 70, "Code",ExpressionUUID->"0a942dd6-73d8-4f51-a78a-18dbeb0b9973"], -Cell[40884, 864, 503, 11, 70, "Code",ExpressionUUID->"66d67f11-4f56-4435-8b94-78f024347417"], -Cell[41390, 877, 3415, 73, 70, "Code",ExpressionUUID->"1fb796d8-104f-432f-81e9-6abdd691b6c4"], -Cell[44808, 952, 2287, 57, 70, "Code",ExpressionUUID->"fe18ee2c-6e92-4fc1-9b47-c835f26a7275"], -Cell[47098, 1011, 3517, 82, 70, "Code",ExpressionUUID->"4a812198-4103-4011-bd95-37fb03e48b65"], -Cell[50618, 1095, 410, 8, 70, "Code",ExpressionUUID->"12893285-1219-41d4-afda-f0f777ed6b1d"], -Cell[51031, 1105, 2429, 66, 70, "Code",ExpressionUUID->"98322137-aae4-4870-9cbc-8c62b00dd9e4"], -Cell[53463, 1173, 4785, 90, 70, "Code",ExpressionUUID->"86c1efba-f1eb-41e7-a009-a06d3d919ecb"], -Cell[58251, 1265, 553, 9, 70, "Code",ExpressionUUID->"83d0b6da-e68e-4bb8-87f5-9b37d4c27963"], -Cell[58807, 1276, 3869, 90, 70, "Code",ExpressionUUID->"874de4c3-bd12-4792-aadc-c1816792c836"], -Cell[62679, 1368, 4750, 118, 70, "Code",ExpressionUUID->"e262b8da-76f9-4d39-aacf-7a7130034ede"], -Cell[67432, 1488, 5684, 112, 70, "Code",ExpressionUUID->"384b8100-b0ed-44fc-9129-488f728bdefe"], -Cell[73119, 1602, 1130, 24, 70, "Code",ExpressionUUID->"56be4b08-2581-4758-9ad8-dd98dbc3c0bf"], -Cell[74252, 1628, 384, 7, 70, "Code",ExpressionUUID->"a13b99f1-434d-45c2-95e7-4f3406f13959"], -Cell[74639, 1637, 1753, 35, 70, "Code",ExpressionUUID->"ea04aedd-1f1c-426a-833d-95cb51bcb65a"], -Cell[76395, 1674, 454, 8, 70, "Code",ExpressionUUID->"45fa5cf6-5820-47b1-9a6f-39e50692ff18"], -Cell[76852, 1684, 3919, 85, 70, "Code",ExpressionUUID->"db668b20-cafe-4c5c-b7cd-791a9dc3f4cc"], -Cell[80774, 1771, 19018, 463, 70, "Code",ExpressionUUID->"6a490d82-c3be-4fe8-8fab-8246b0a22995"], -Cell[99795, 2236, 2249, 53, 70, "Code",ExpressionUUID->"6b61ae3a-813c-4b4b-8e40-5a6fd9c67d31"], -Cell[102047, 2291, 526, 10, 70, "Code",ExpressionUUID->"6701ecd9-517f-47e0-ad49-beef46504a17"], -Cell[102576, 2303, 902, 17, 70, "Code",ExpressionUUID->"3802b4f0-eb3f-4401-95d8-217a20687ec6"], -Cell[103481, 2322, 2160, 44, 70, "Code",ExpressionUUID->"9940d43a-620f-44e7-8919-e22d68a91561"], -Cell[105644, 2368, 5726, 113, 70, "Code",ExpressionUUID->"d74e86ee-5234-4aab-8768-d85dce2e7153"], -Cell[111373, 2483, 34396, 793, 70, "Code",ExpressionUUID->"ccd3fe48-9af4-4983-8b11-06963a82487e"], -Cell[145772, 3278, 17016, 488, 70, "Code",ExpressionUUID->"7f2a3d3a-c1f3-47ed-adf0-13ae17aaf84a"], -Cell[162791, 3768, 8130, 230, 70, "Code",ExpressionUUID->"df1c807d-7253-4888-afe8-3e64e84995be"], -Cell[170924, 4000, 5299, 127, 70, "Code",ExpressionUUID->"2cba6317-c707-4694-9f14-f7726956089a"], -Cell[176226, 4129, 5116, 120, 70, "Code",ExpressionUUID->"ebcc046c-7def-496c-be8d-162a779f2ba7"], -Cell[181345, 4251, 276, 7, 70, "Code",ExpressionUUID->"fb4b8dac-9fab-4dec-bb2f-1ac0c6187c97"], -Cell[181624, 4260, 2799, 75, 70, "Code",ExpressionUUID->"ef917c83-6883-4676-b5d8-a4269646b8eb"], -Cell[184426, 4337, 1601, 48, 70, "Code",ExpressionUUID->"6a3a65d3-f4e5-469f-9fee-5befa6c032ba"], -Cell[186030, 4387, 4824, 136, 70, "Code",ExpressionUUID->"dd302531-6560-462b-83fe-f135a9eb7e79"], -Cell[190857, 4525, 5206, 134, 70, "Code",ExpressionUUID->"723d9fdf-9e76-48fd-a7d8-fcdeba73c5fd"], -Cell[196066, 4661, 1662, 42, 70, "Code",ExpressionUUID->"0852eca1-7005-42cf-9e98-e52db7d08a63"], -Cell[197731, 4705, 6361, 157, 70, "Code",ExpressionUUID->"12ab05d3-2554-4963-9d12-337cb69d96fd"], -Cell[204095, 4864, 13077, 353, 70, "Code",ExpressionUUID->"2b1dde06-8a18-487f-87aa-605b262c1642"], -Cell[217175, 5219, 959, 25, 70, "Code",ExpressionUUID->"668c0860-e5d8-4d4f-a46b-4a39838be0f4"], -Cell[218137, 5246, 3319, 86, 70, "Code",ExpressionUUID->"b15f6c52-f013-4057-8aa8-2144008642c1"], -Cell[221459, 5334, 7029, 186, 70, "Code",ExpressionUUID->"07145e91-bfa2-4949-a7f6-141fd3c66c37"], -Cell[228491, 5522, 1134, 31, 70, "Code",ExpressionUUID->"a2a7b36c-09b0-4547-83db-178591a5e58d"], -Cell[229628, 5555, 692, 19, 70, "Code",ExpressionUUID->"a11e0676-b612-411c-90f4-93fa83b5592a"], -Cell[230323, 5576, 2932, 72, 70, "Code",ExpressionUUID->"b43f9828-948d-4f34-a690-c9f3a76ee4c3"], -Cell[233258, 5650, 25265, 645, 70, "Code",ExpressionUUID->"62663577-61d8-4aaf-aaac-72ed8f153e15"], -Cell[258526, 6297, 4185, 112, 70, "Code",ExpressionUUID->"0eb4bb59-5140-4af3-8a90-807347119ea7"], -Cell[262714, 6411, 5269, 146, 70, "Code",ExpressionUUID->"2cd25c76-b2c5-4415-9b69-59eed8f878c7"], -Cell[267986, 6559, 11688, 326, 70, "Code",ExpressionUUID->"df3315ce-e262-4d0a-b102-f282e4bffcaa"], -Cell[279677, 6887, 2478, 79, 70, "Code",ExpressionUUID->"1b2fc825-7a40-4265-aaa2-cd5845cecd46"], -Cell[282158, 6968, 4040, 116, 70, "Code",ExpressionUUID->"f78b3fb1-4585-4bd2-8c1e-5b65a7957b97"], -Cell[286201, 7086, 8895, 238, 70, "Code",ExpressionUUID->"c7da071e-5179-4381-95d2-9a7b60a375d1"], -Cell[295099, 7326, 713, 21, 70, "Code",ExpressionUUID->"ab173fcb-7d5c-404d-8dbc-bf4f92563803"], -Cell[295815, 7349, 16069, 422, 70, "Code",ExpressionUUID->"b62219f2-8cdd-45c8-9baa-4eb1ddcaa6a6"], -Cell[311887, 7773, 12838, 327, 70, "Code",ExpressionUUID->"4d9fa1d3-41d5-42b6-9459-e1bd867bc816"], -Cell[324728, 8102, 4361, 117, 70, "Code",ExpressionUUID->"10e2a838-3622-4c38-9c2d-279bd708c223"], -Cell[329092, 8221, 25317, 606, 70, "Code",ExpressionUUID->"3f3fb262-e9de-43ea-b1fa-742c0fa63807"], -Cell[354412, 8829, 7524, 191, 70, "Code",ExpressionUUID->"36a9aa0a-a11a-4ecd-8bc1-2bb9aca3d337"], -Cell[361939, 9022, 7897, 200, 70, "Code",ExpressionUUID->"298a643a-08b8-46b1-8499-cfe4133eb4c9"], -Cell[369839, 9224, 9432, 258, 70, "Code",ExpressionUUID->"77086b5f-df97-47b3-a8a4-f58a7873aab1"], -Cell[379274, 9484, 3743, 95, 70, "Code",ExpressionUUID->"e26fa1d3-ddfa-45e0-a268-41a6c7633955"], -Cell[383020, 9581, 6989, 174, 70, "Code",ExpressionUUID->"00d8ceba-ad8d-4649-ae20-440e1aaaf420"], -Cell[390012, 9757, 1317, 35, 70, "Code",ExpressionUUID->"6553b23c-0a13-4f24-884b-f9231324283d"], -Cell[391332, 9794, 1444, 37, 70, "Code",ExpressionUUID->"147287c5-5ec3-4c1a-bd33-8332e5d91c71"], -Cell[392779, 9833, 5829, 139, 70, "Code",ExpressionUUID->"538e4e81-ec0c-4ea2-be70-acfb0949557a"], -Cell[398611, 9974, 951, 24, 70, "Code",ExpressionUUID->"d90ce4f9-bd2c-482b-9d25-1dfc42d6ccd4"], -Cell[399565, 10000, 3723, 96, 70, "Code",ExpressionUUID->"23550718-7e81-4c2e-bb1b-585a87b55dda"], -Cell[403291, 10098, 1315, 34, 70, "Code",ExpressionUUID->"99733a63-c8ae-4060-bc9f-7a698998475d"], -Cell[404609, 10134, 1909, 52, 70, "Code",ExpressionUUID->"821c7117-a22c-48de-8bf3-e868c28ed305"], -Cell[406521, 10188, 1309, 34, 70, "Code",ExpressionUUID->"373cb6ab-5160-4f8e-84d9-24a5605d8b5c"], -Cell[407833, 10224, 1315, 34, 70, "Code",ExpressionUUID->"6f9b49f0-e9b6-4e89-baf9-3c07d4017770"], -Cell[409151, 10260, 4813, 127, 70, "Code",ExpressionUUID->"fc4771fe-0991-4fd8-b6b1-6faab7f1613d"], -Cell[413967, 10389, 7161, 193, 70, "Code",ExpressionUUID->"c07080e1-63a6-4f9b-bfe1-4e07052575dd"], -Cell[421131, 10584, 9871, 240, 70, "Code",ExpressionUUID->"f698577e-31df-428b-9828-99f72dfa2297"], -Cell[431005, 10826, 6200, 152, 70, "Code",ExpressionUUID->"9151d9a6-4d6a-4459-92e5-c7ec1b002fdf"], -Cell[437208, 10980, 2719, 75, 70, "Code",ExpressionUUID->"2aff29c5-4799-4341-ad5c-7b8141c8f7c9"], -Cell[439930, 11057, 358, 8, 70, "Code",ExpressionUUID->"d589fbdc-b5e1-4f55-8377-8103b9754828"], -Cell[440291, 11067, 5321, 125, 70, "Code",ExpressionUUID->"c96f4d10-08dc-40e8-ba28-711f07e36de3"], -Cell[445615, 11194, 12033, 292, 70, "Code",ExpressionUUID->"73fa0979-8b65-4577-a49c-3b744bc52801"], -Cell[457651, 11488, 10016, 254, 70, "Code",ExpressionUUID->"622316fc-ae74-4302-ad57-53752f536d70"], -Cell[467670, 11744, 4865, 128, 70, "Code",ExpressionUUID->"e20a2305-e2fa-4049-a374-7faada089dbf"], -Cell[472538, 11874, 14093, 362, 70, "Code",ExpressionUUID->"03928180-a727-4a8c-bb17-cb1c4f7321af"], -Cell[486634, 12238, 364, 8, 70, "Code",ExpressionUUID->"224ba2b4-26d1-45f4-ae8c-e32c0c215ae4"], -Cell[487001, 12248, 4637, 106, 70, "Code",ExpressionUUID->"f27caabd-e6b7-4f99-ac1a-a92de1fbb8d3"], -Cell[491641, 12356, 4748, 113, 70, "Code",ExpressionUUID->"1aa5cf7c-ab32-45e0-ab29-214d9d3e8ce5"], -Cell[496392, 12471, 5693, 138, 70, "Code",ExpressionUUID->"3bfdef6b-f9f7-45a4-bd2f-f4243cf1a8fa"], -Cell[502088, 12611, 227, 4, 70, "Code",ExpressionUUID->"f2b69b09-3f30-4cb9-9279-27cd81b6e42c"], -Cell[502318, 12617, 14394, 355, 70, "Code",ExpressionUUID->"604776d5-ab93-488b-b9ab-3052bfbcbbe4"], -Cell[516715, 12974, 5165, 133, 70, "Code",ExpressionUUID->"847ae1ed-1b62-41f2-bf3e-48d3e41afdda"], -Cell[521883, 13109, 4673, 116, 70, "Code",ExpressionUUID->"e232fcbf-89f0-4d24-be08-8137dbb5dcf7"], -Cell[526559, 13227, 8003, 201, 70, "Code",ExpressionUUID->"0cfb3e80-1141-4bbd-8d86-944617936a0a"], -Cell[534565, 13430, 9115, 242, 70, "Code",ExpressionUUID->"5136f461-2fc8-47bb-9ab5-0afc1b128274"], -Cell[543683, 13674, 5143, 124, 70, "Code",ExpressionUUID->"08b20745-c0da-4994-8652-89b689258d3f"], -Cell[548829, 13800, 1653, 44, 70, "Code",ExpressionUUID->"2930bd50-358b-49c8-b430-5525232c7824"], -Cell[550485, 13846, 5567, 132, 70, "Code",ExpressionUUID->"939f0b1a-8e86-458b-ac3d-ee0a84719afc"], -Cell[556055, 13980, 5773, 126, 70, "Code",ExpressionUUID->"db8829c7-f247-4282-b638-c8d672361a59"], -Cell[561831, 14108, 4837, 112, 70, "Code",ExpressionUUID->"823c59b8-532a-4124-b45d-fe8e9c25458d"], -Cell[566671, 14222, 3074, 74, 70, "Code",ExpressionUUID->"9f7e94a9-4b90-40cd-ad9a-c783667ea36b"], -Cell[569748, 14298, 14369, 364, 70, "Code",ExpressionUUID->"833964ee-3a07-44e1-ad8e-6ce92242d710"], -Cell[584120, 14664, 224, 5, 70, "Code",ExpressionUUID->"fc0fb39b-303b-4362-9c83-3d87c28d9b0f"], -Cell[584347, 14671, 2961, 72, 70, "Code",ExpressionUUID->"a36fdb75-7493-43cb-a00c-e800bb3b582a"], -Cell[587311, 14745, 1954, 50, 70, "Code",ExpressionUUID->"e4f50c81-b0d5-420c-9c8b-646749cd93c7"], -Cell[589268, 14797, 1815, 47, 70, "Code",ExpressionUUID->"08805861-dcc9-426e-98dd-bfe18b7e308f"], -Cell[591086, 14846, 1773, 51, 70, "Code",ExpressionUUID->"1c1db585-2a69-4466-8fa4-28393a23bd2e"], -Cell[592862, 14899, 2964, 87, 70, "Code",ExpressionUUID->"9d3aa22f-598a-474e-9b6d-372feac3ef3c"], -Cell[595829, 14988, 7746, 181, 70, "Code",ExpressionUUID->"8bd7ce90-53b6-4e64-9f9d-9b8e298fc947"], -Cell[603578, 15171, 23979, 579, 70, "Code",ExpressionUUID->"31d67677-6d61-4f4a-b2aa-e0254570595d"], -Cell[627560, 15752, 434, 11, 70, "Code",ExpressionUUID->"a530db33-6ca1-436f-b70f-c4e1afd23264"], -Cell[627997, 15765, 1705, 46, 70, "Code",ExpressionUUID->"10f6bc2c-6fee-4779-afc3-e3fe74b780e0"], -Cell[629705, 15813, 3002, 78, 70, "Code",ExpressionUUID->"6755731e-c88e-48aa-984c-f149b46e666d"], -Cell[632710, 15893, 5662, 144, 70, "Code",ExpressionUUID->"24890eea-7864-4289-a989-09b3318aa435"], -Cell[638375, 16039, 2316, 62, 70, "Code",ExpressionUUID->"10530774-9cca-4907-b9c2-3de5602bf2f9"], -Cell[640694, 16103, 4985, 118, 70, "Code",ExpressionUUID->"8b9ed0af-75b9-45b1-8541-9abde0ff18ac"], -Cell[645682, 16223, 2171, 52, 70, "Code",ExpressionUUID->"cf4e1bff-04a5-440b-b403-cc110c125447"], -Cell[647856, 16277, 264, 5, 70, "Code",ExpressionUUID->"a73ba9a3-8cd0-467c-ac51-6e0471e8c7e2"], -Cell[648123, 16284, 528, 13, 70, "Code",ExpressionUUID->"e759c170-05a9-4db7-8d60-07debcd1b3ec"], -Cell[648654, 16299, 3106, 94, 70, "Code",ExpressionUUID->"fd5193e3-fc3d-46ec-9ae5-a8001774ae29"], -Cell[651763, 16395, 3181, 83, 70, "Code",ExpressionUUID->"464b66d4-8587-4fc4-b457-dae7a6fdc6d9"], -Cell[654947, 16480, 3043, 77, 70, "Code",ExpressionUUID->"f80ac963-743e-4577-942a-49884e709d96"], -Cell[657993, 16559, 3743, 106, 70, "Code",ExpressionUUID->"dd1f03ec-34bf-4a28-9475-06d627bc3aeb"], -Cell[661739, 16667, 1973, 52, 70, "Code",ExpressionUUID->"3d5f4753-337e-421a-b14f-db6c92f29223"], -Cell[663715, 16721, 3388, 89, 70, "Code",ExpressionUUID->"52c2fa25-f475-4c01-a75e-79f7794563a4"], -Cell[667106, 16812, 8340, 211, 70, "Code",ExpressionUUID->"7f265886-fe75-4793-89e3-b34dd0505bc6"], -Cell[675449, 17025, 4692, 124, 70, "Code",ExpressionUUID->"dede3bc9-2fe4-46fa-82cd-c1f05080d199"], -Cell[680144, 17151, 1215, 34, 70, "Code",ExpressionUUID->"5ac080d9-299f-41cb-8b9b-f1cff0be1606"], -Cell[681362, 17187, 2049, 59, 70, "Code",ExpressionUUID->"a8a33f99-9671-4ea1-a5fa-48b40182d10f"], -Cell[683414, 17248, 8671, 218, 70, "Code",ExpressionUUID->"cf5135e5-3133-42b9-9b28-321274676440"], -Cell[692088, 17468, 15762, 351, 70, "Code",ExpressionUUID->"79f00fb9-54fe-4759-a6a7-86435fe40cc1"], -Cell[707853, 17821, 3364, 78, 70, "Code",ExpressionUUID->"de91b94d-9b5b-4e98-90f6-73390bd17de9"], -Cell[711220, 17901, 3558, 80, 70, "Code",ExpressionUUID->"a04b2361-f555-46d1-b255-0953c6a35af6"], -Cell[714781, 17983, 13734, 314, 70, "Code",ExpressionUUID->"face353a-c5fd-4326-bd68-c18d7a85b5da"], -Cell[728518, 18299, 7964, 200, 70, "Code",ExpressionUUID->"f1bae8e6-d171-40aa-894d-21806526f333"], -Cell[736485, 18501, 5687, 147, 70, "Code",ExpressionUUID->"bfd5ad0d-ea8c-4312-b8c8-03adb89b2c42"], -Cell[742175, 18650, 9799, 235, 70, "Code",ExpressionUUID->"8dc76b1d-fea2-4327-873d-25d5a8bb30a3"], -Cell[751977, 18887, 5244, 123, 70, "Code",ExpressionUUID->"55aa10fd-83ca-421d-8337-33eae7a85469"], -Cell[757224, 19012, 278, 6, 70, "Code",ExpressionUUID->"55bf4c0d-b0d0-4e23-9ffb-a4aae48c649b"], -Cell[757505, 19020, 2749, 64, 70, "Code",ExpressionUUID->"207328ea-1065-49c6-a79e-6d645faf66ed"], -Cell[760257, 19086, 4389, 104, 70, "Code",ExpressionUUID->"df374445-3d01-4ba8-a77c-2415e39d4ff7"], -Cell[764649, 19192, 13743, 321, 70, "Code",ExpressionUUID->"6baa7855-5f0a-4983-94cd-63fe5a276c94"], -Cell[778395, 19515, 13494, 316, 70, "Code",ExpressionUUID->"42c38b22-f040-43b2-8a50-6831558234b8"], -Cell[791892, 19833, 5717, 133, 70, "Code",ExpressionUUID->"8497c984-ce0a-4cca-9ed2-52e813ba379d"], -Cell[797612, 19968, 6064, 144, 70, "Code",ExpressionUUID->"84560a71-c5d4-4aa8-a165-a5ff2d8f9389"], -Cell[803679, 20114, 4830, 113, 70, "Code",ExpressionUUID->"74244cf1-6b2d-4abb-a45e-263acec790f8"], -Cell[808512, 20229, 9691, 252, 70, "Code",ExpressionUUID->"4fdd1f54-67e0-4e6c-bc61-d1708ee5d27d"], -Cell[818206, 20483, 3433, 81, 70, "Code",ExpressionUUID->"54bbf074-e65c-4de8-944f-8f5da2c8761a"], -Cell[821642, 20566, 3629, 86, 70, "Code",ExpressionUUID->"da51dbce-4bbb-4ece-ab29-1fb07e2c64f2"], -Cell[825274, 20654, 8715, 215, 70, "Code",ExpressionUUID->"c67c9e7a-c607-411e-9f65-8864a0e5b0c8"], -Cell[833992, 20871, 8606, 217, 70, "Code",ExpressionUUID->"594185b0-1509-4202-834f-ca20ed6bd1e8"], -Cell[842601, 21090, 6832, 187, 70, "Code",ExpressionUUID->"d0f2963c-c2a6-4461-9ff9-9f6b3fefdcef"], -Cell[849436, 21279, 693, 19, 70, "Code",ExpressionUUID->"9f5fc2c5-f6ed-48fc-9cb2-6d95501e2c4c"], -Cell[850132, 21300, 5079, 133, 70, "Code",ExpressionUUID->"8a63378d-3c8c-4a5e-9f21-273cb298668d"], -Cell[855214, 21435, 6415, 164, 70, "Code",ExpressionUUID->"5cc2059a-7f98-42f9-a2a9-b797f96bc8d8"], -Cell[861632, 21601, 3152, 77, 70, "Code",ExpressionUUID->"58884a74-7d17-4a38-a271-55a5c6d7d44b"], -Cell[864787, 21680, 2987, 77, 70, "Code",ExpressionUUID->"a1d98b8c-773b-475a-8032-c695f82cd278"], -Cell[867777, 21759, 9160, 221, 70, "Code",ExpressionUUID->"69ff03b1-8790-4c96-b0cb-4288aedf3b35"], -Cell[876940, 21982, 6239, 158, 70, "Code",ExpressionUUID->"a618e868-3783-45e6-ae84-d1787028c75d"], -Cell[883182, 22142, 10173, 249, 70, "Code",ExpressionUUID->"b3c3ba4a-b100-40e9-a5b5-21556ad59fb1"], -Cell[893358, 22393, 1081, 27, 70, "Code",ExpressionUUID->"85732a78-c71f-4f13-bc39-8cb21bec3391"], -Cell[894442, 22422, 3533, 91, 70, "Code",ExpressionUUID->"0f881549-cf89-4cf1-9bf9-254354ca6ffe"], -Cell[897978, 22515, 17200, 431, 70, "Code",ExpressionUUID->"6c0878e5-ed6a-4a43-9912-f7cb21c5128f"], -Cell[915181, 22948, 5113, 129, 70, "Code",ExpressionUUID->"18ae62cd-0674-459b-9bc4-587e16868932"], -Cell[920297, 23079, 6278, 163, 70, "Code",ExpressionUUID->"ea8c0b19-5e97-4d05-8986-8b84e2acb7e8"], -Cell[926578, 23244, 17176, 430, 70, "Code",ExpressionUUID->"6dbb3bce-25b5-4633-aefd-1abf149fbe2e"], -Cell[943757, 23676, 5963, 154, 70, "Code",ExpressionUUID->"fe4e51c5-478c-4367-8b38-69de68e99c7f"], -Cell[949723, 23832, 2919, 70, 70, "Code",ExpressionUUID->"c2fa5b0f-c9a8-48ad-801a-04de17f9d1dc"], -Cell[952645, 23904, 20405, 508, 70, "Code",ExpressionUUID->"bd2ebffc-8df7-4bd5-8202-378fa08ad563"], -Cell[973053, 24414, 374, 7, 70, "Code",ExpressionUUID->"0c965ad6-eb1e-414b-bd9a-bd7b8ac1a280"], -Cell[973430, 24423, 2510, 73, 70, "Code",ExpressionUUID->"b0e2dde6-1b0b-4213-8fea-ee4335432e29"], -Cell[975943, 24498, 8967, 227, 70, "Code",ExpressionUUID->"c3f523b5-846b-4478-a560-de65201e2b46"], -Cell[984913, 24727, 199, 4, 70, "Code",ExpressionUUID->"c704d20f-39e2-402d-8b43-47992fa58862"], -Cell[985115, 24733, 238, 5, 70, "Code",ExpressionUUID->"c7c0a15d-e552-4f1d-b5e6-3bf7c9bd575d"], -Cell[985356, 24740, 682, 20, 70, "Code",ExpressionUUID->"95c1416b-9e39-4252-9fa6-5a1f09e9eeac"], -Cell[986041, 24762, 4496, 143, 70, "Code",ExpressionUUID->"b414ca33-ef05-47c8-bc95-3d9efbed2450"], -Cell[990540, 24907, 8214, 257, 70, "Code",ExpressionUUID->"09d88cba-52fd-423a-820a-3ce5ad9afd41"], -Cell[998757, 25166, 1626, 52, 70, "Code",ExpressionUUID->"8d95ba51-9c8d-4e73-98d6-2e609d1f398c"], -Cell[1000386, 25220, 559, 16, 70, "Code",ExpressionUUID->"94c91725-c89e-4c0c-87fa-151467343c25"], -Cell[1000948, 25238, 4430, 128, 70, "Code",ExpressionUUID->"5e333d80-40fb-4524-b806-ceb0677de26f"], -Cell[1005381, 25368, 2319, 67, 70, "Code",ExpressionUUID->"17370861-c93f-4388-8c56-0ebfe8b9b26f"], -Cell[1007703, 25437, 236, 5, 70, "Code",ExpressionUUID->"70e6cb57-bf6a-4183-96e1-509e7b8405d1"], -Cell[1007942, 25444, 3816, 107, 70, "Code",ExpressionUUID->"b0c13e3e-d9a4-4fbf-8110-3b18f8b7134c"], -Cell[1011761, 25553, 1069, 31, 70, "Code",ExpressionUUID->"d74ac2a2-7438-4fb0-b6ae-8e4e522dba7c"], -Cell[1012833, 25586, 2658, 68, 70, "Code",ExpressionUUID->"ea11f0cf-78f3-406e-8468-2ad370b7948e"], -Cell[1015494, 25656, 7854, 220, 70, "Code",ExpressionUUID->"1e5bfb38-1460-4c8f-8693-36dd8b5d9626"], -Cell[1023351, 25878, 2939, 69, 70, "Code",ExpressionUUID->"8bdc3831-02a5-4cfc-a22c-6b14f72affdc"], -Cell[1026293, 25949, 2361, 63, 70, "Code",ExpressionUUID->"cb0b1d5d-5db6-460b-ba0c-78b9f8b14b41"], -Cell[1028657, 26014, 2071, 54, 70, "Code",ExpressionUUID->"04ab7793-2fd8-4e15-9076-4192db63563d"], -Cell[1030731, 26070, 4527, 126, 70, "Code",ExpressionUUID->"3f3e4fe0-c3cf-419f-a3af-a415c2b9b46a"], -Cell[1035261, 26198, 6611, 187, 70, "Code",ExpressionUUID->"a77f7671-1d72-431d-8bf4-5b409c39be69"], -Cell[1041875, 26387, 3298, 80, 70, "Code",ExpressionUUID->"ae00e533-9bf6-4d9d-82cb-ea61ba31c55a"], -Cell[1045176, 26469, 2205, 58, 70, "Code",ExpressionUUID->"92aeacb6-446c-4c1f-addc-10dfdb4bd23e"], -Cell[1047384, 26529, 1406, 37, 70, "Code",ExpressionUUID->"18bfd351-78db-4d74-92d8-ae57fa600bd7"], -Cell[1048793, 26568, 982, 25, 70, "Code",ExpressionUUID->"136731f2-e308-4377-967f-efbbeb7d0391"], -Cell[1049778, 26595, 2737, 68, 70, "Code",ExpressionUUID->"00b92373-fff3-478f-8bae-b8fd43384fe6"], -Cell[1052518, 26665, 4710, 125, 70, "Code",ExpressionUUID->"6922b04f-bc92-4473-90e3-00b42b92b48a"], -Cell[1057231, 26792, 7482, 197, 70, "Code",ExpressionUUID->"f10de453-7453-4efc-a070-209a5716206c"], -Cell[1064716, 26991, 2847, 73, 70, "Code",ExpressionUUID->"4270244a-c37c-481e-ae57-e42108b075c0"], -Cell[1067566, 27066, 3143, 90, 70, "Code",ExpressionUUID->"57adff55-dcf1-40ed-9a38-2414aabba167"], -Cell[1070712, 27158, 2299, 61, 70, "Code",ExpressionUUID->"43a091e3-5f38-49df-9306-4337063e6734"], -Cell[1073014, 27221, 5394, 132, 70, "Code",ExpressionUUID->"108bbbc7-e5c8-4c75-9428-fa9bcb05f25b"], -Cell[1078411, 27355, 2217, 61, 70, "Code",ExpressionUUID->"33074637-1df6-46b7-bdbc-d17c4e012299"], -Cell[1080631, 27418, 768, 21, 70, "Code",ExpressionUUID->"d86c4bba-2078-4ec8-b6c6-c2616a5ba742"] +Cell[558, 20, 24859, 530, 3651, "Code",ExpressionUUID->"6e90713c-1023-4c94-8452-0d9536c84cab"], +Cell[25420, 552, 15544, 306, 2415, "Code",ExpressionUUID->"86c90b3c-7e95-4c14-a153-1224f84e30ad"], +Cell[40967, 860, 377, 8, 105, "Code",ExpressionUUID->"7885ae85-4f14-4a42-a986-c66293e02ae6"], +Cell[41347, 870, 503, 11, 170, "Code",ExpressionUUID->"d40f526d-4f66-468c-b834-ad7741f52fbd"], +Cell[41853, 883, 3415, 73, 523, "Code",ExpressionUUID->"2ee71cf6-d89d-4b5c-b6b9-82d3aecb12c6"], +Cell[45271, 958, 2287, 57, 70, "Code",ExpressionUUID->"7ed2d7c7-3656-471d-81e9-4c90f17fbc36"], +Cell[47561, 1017, 3517, 82, 70, "Code",ExpressionUUID->"90155a2d-7e9a-496f-8a12-7b6880ff3f3f"], +Cell[51081, 1101, 410, 8, 70, "Code",ExpressionUUID->"f25d6aae-db59-4f0d-92a1-e65709bb1e93"], +Cell[51494, 1111, 2429, 66, 70, "Code",ExpressionUUID->"4a9b7909-d594-4d07-85ae-d3f64721bff1"], +Cell[53926, 1179, 4785, 90, 70, "Code",ExpressionUUID->"d049eb5e-a05c-476a-a3fc-39736e2bedc9"], +Cell[58714, 1271, 553, 9, 70, "Code",ExpressionUUID->"0504ea08-07a0-461f-bd00-b65742f0fde6"], +Cell[59270, 1282, 3911, 92, 70, "Code",ExpressionUUID->"a1a92790-3261-400d-ac2a-3e4d7b9ed092"], +Cell[63184, 1376, 4750, 118, 70, "Code",ExpressionUUID->"d274cc56-88f7-46b2-9254-63f86b0469f8"], +Cell[67937, 1496, 5684, 112, 70, "Code",ExpressionUUID->"67f6bf0a-5136-42aa-80ab-119f48d636ac"], +Cell[73624, 1610, 1130, 24, 70, "Code",ExpressionUUID->"c3bf17d5-e46b-4703-a90a-0f7ba28d108b"], +Cell[74757, 1636, 384, 7, 70, "Code",ExpressionUUID->"c1de78e7-ad3c-4878-9ed5-78317e91f2ef"], +Cell[75144, 1645, 1753, 35, 70, "Code",ExpressionUUID->"4df95570-a7d5-42da-8a6c-2bb2f6844cb8"], +Cell[76900, 1682, 454, 8, 70, "Code",ExpressionUUID->"3155f44f-090d-4ac3-9796-9c72d06f6600"], +Cell[77357, 1692, 3919, 85, 70, "Code",ExpressionUUID->"87b3ab76-85af-49fe-8669-7187453f81dc"], +Cell[81279, 1779, 19039, 464, 70, "Code",ExpressionUUID->"31db9215-1ad6-4b56-b6c8-7ba9324fd548"], +Cell[100321, 2245, 2249, 53, 70, "Code",ExpressionUUID->"e76b2c47-c79a-4266-a1b6-45a73bc5e9e3"], +Cell[102573, 2300, 526, 10, 70, "Code",ExpressionUUID->"609a611b-ea60-4e5c-90ee-58b52b0e6ccd"], +Cell[103102, 2312, 902, 17, 70, "Code",ExpressionUUID->"fe52f8b9-1215-4022-90b4-41ec9823c310"], +Cell[104007, 2331, 2160, 44, 70, "Code",ExpressionUUID->"b1c1b4cb-91f5-4b2b-8a2f-7e295aa442c3"], +Cell[106170, 2377, 5726, 113, 70, "Code",ExpressionUUID->"e3253276-75ab-4721-9552-9243a0336084"], +Cell[111899, 2492, 34396, 793, 70, "Code",ExpressionUUID->"1f025583-ef79-44f6-a23f-c64696650801"], +Cell[146298, 3287, 17016, 488, 70, "Code",ExpressionUUID->"2c05d30e-ec7c-4b41-8f16-7dac9353beca"], +Cell[163317, 3777, 8130, 230, 70, "Code",ExpressionUUID->"71d175b4-feb0-4299-a968-ab5bec45977e"], +Cell[171450, 4009, 5299, 127, 70, "Code",ExpressionUUID->"9f15ea88-d739-4e85-8e52-cb077a334f7e"], +Cell[176752, 4138, 5116, 120, 70, "Code",ExpressionUUID->"b26542bf-fe55-472c-ac0c-8f98c2ffa05d"], +Cell[181871, 4260, 276, 7, 70, "Code",ExpressionUUID->"65d8f992-6546-42c3-b52e-a6a05d197b80"], +Cell[182150, 4269, 2799, 75, 70, "Code",ExpressionUUID->"a9e28b5b-4488-4996-a7c5-ac26fce18b7f"], +Cell[184952, 4346, 1601, 48, 70, "Code",ExpressionUUID->"f3894796-d0d7-4afd-9751-ddc7723b78cd"], +Cell[186556, 4396, 4824, 136, 70, "Code",ExpressionUUID->"c4a85d94-2ae3-4940-83a2-e50c683f8334"], +Cell[191383, 4534, 5206, 134, 70, "Code",ExpressionUUID->"86dc8a83-88ef-4557-9f18-1a182ff37fbf"], +Cell[196592, 4670, 1662, 42, 70, "Code",ExpressionUUID->"6440eca2-c093-4edc-9cb4-e6c4b44b5e50"], +Cell[198257, 4714, 6360, 157, 70, "Code",ExpressionUUID->"8a3e44f1-54a8-4bc0-a1c5-da2346a9b6a1"], +Cell[204620, 4873, 13077, 353, 70, "Code",ExpressionUUID->"158c879f-fb2f-4a94-985b-8d039e58c1c7"], +Cell[217700, 5228, 959, 25, 70, "Code",ExpressionUUID->"58832112-b94f-4611-9098-fc764a2926a5"], +Cell[218662, 5255, 3319, 86, 70, "Code",ExpressionUUID->"b87c846e-e14c-4e48-b819-ffbf79006a0d"], +Cell[221984, 5343, 7029, 186, 70, "Code",ExpressionUUID->"3bd8b1cb-8612-46b3-8a17-614b4bb66046"], +Cell[229016, 5531, 1134, 31, 70, "Code",ExpressionUUID->"0b2f75d1-b9da-4e08-855c-ba0c7e9cf52b"], +Cell[230153, 5564, 692, 19, 70, "Code",ExpressionUUID->"aea2032a-bd28-418d-9c45-935fee26b38a"], +Cell[230848, 5585, 2932, 72, 70, "Code",ExpressionUUID->"c589db3b-0c41-464e-b0fa-d83e81f4bfe0"], +Cell[233783, 5659, 25265, 645, 70, "Code",ExpressionUUID->"8b44f068-588a-4447-aa7d-2b5c83c40a71"], +Cell[259051, 6306, 4185, 112, 70, "Code",ExpressionUUID->"85304359-1a2e-4364-8b8d-4fe8eef56885"], +Cell[263239, 6420, 5269, 146, 70, "Code",ExpressionUUID->"c66ddbfc-de35-4fc2-a33f-530911722050"], +Cell[268511, 6568, 11688, 326, 70, "Code",ExpressionUUID->"469e9d80-5b9b-4084-bb30-af62f2ad71f0"], +Cell[280202, 6896, 2478, 79, 70, "Code",ExpressionUUID->"56090248-43a1-421e-97dc-bfe46f37848e"], +Cell[282683, 6977, 4040, 116, 70, "Code",ExpressionUUID->"0cb81a2f-5eec-41d3-8a25-efa3486305fb"], +Cell[286726, 7095, 8895, 238, 70, "Code",ExpressionUUID->"45764c10-cd47-4ff0-936b-be8a76d2fb12"], +Cell[295624, 7335, 713, 21, 70, "Code",ExpressionUUID->"4e7cba3c-933c-46f7-89ef-1fc28034a541"], +Cell[296340, 7358, 16069, 422, 70, "Code",ExpressionUUID->"045bc4e7-c1d1-4a0f-905a-b58b65541a90"], +Cell[312412, 7782, 12838, 327, 70, "Code",ExpressionUUID->"8d31d4d8-f688-4129-bbdd-81d4e1548cc3"], +Cell[325253, 8111, 4361, 117, 70, "Code",ExpressionUUID->"6612f10c-4ce0-4312-8a14-e27d7ebc4828"], +Cell[329617, 8230, 25317, 606, 70, "Code",ExpressionUUID->"8a149f6b-d036-4fb1-98da-81785d7f9b93"], +Cell[354937, 8838, 7524, 191, 70, "Code",ExpressionUUID->"865b5b1f-37b0-4e4e-8dfa-ebba8e10710a"], +Cell[362464, 9031, 7959, 201, 70, "Code",ExpressionUUID->"e7dd3262-3633-40ea-b9ac-f45fc3da67e2"], +Cell[370426, 9234, 9432, 258, 70, "Code",ExpressionUUID->"02e8ac9f-c7db-491e-bdeb-f2f8f64c2031"], +Cell[379861, 9494, 3743, 95, 70, "Code",ExpressionUUID->"04133719-4496-42b2-889c-91bdcb6b69ba"], +Cell[383607, 9591, 6989, 174, 70, "Code",ExpressionUUID->"d6363f04-7dcb-4134-a1a5-c3d7d63c58a5"], +Cell[390599, 9767, 1317, 35, 70, "Code",ExpressionUUID->"4d20a9f6-e322-4725-ba13-221e33d3a22d"], +Cell[391919, 9804, 1444, 37, 70, "Code",ExpressionUUID->"27789aa2-55f4-4abc-9996-735c915cab5c"], +Cell[393366, 9843, 5829, 139, 70, "Code",ExpressionUUID->"9f5e7c4f-2c71-426f-bb14-a58e1106256f"], +Cell[399198, 9984, 951, 24, 70, "Code",ExpressionUUID->"7547be3b-021c-442a-8f3a-4205493f9bba"], +Cell[400152, 10010, 3723, 96, 70, "Code",ExpressionUUID->"75ad3fec-674d-4a29-a2c1-1314b5f7e4b4"], +Cell[403878, 10108, 1315, 34, 70, "Code",ExpressionUUID->"bb86f83a-5ea9-47ca-b7bb-e52ef9ee8b7b"], +Cell[405196, 10144, 1909, 52, 70, "Code",ExpressionUUID->"fc12077c-b430-4ad9-a814-6c6abc27aa2a"], +Cell[407108, 10198, 1309, 34, 70, "Code",ExpressionUUID->"e4fff97f-d99c-4143-9903-23ee051e4d38"], +Cell[408420, 10234, 1315, 34, 70, "Code",ExpressionUUID->"65774ee0-eee1-4068-a9d5-9a633eff6dc3"], +Cell[409738, 10270, 4813, 127, 70, "Code",ExpressionUUID->"597de0b0-37cb-4782-97fe-152769c8b1fa"], +Cell[414554, 10399, 7161, 193, 70, "Code",ExpressionUUID->"d3207580-6b8c-4294-a124-568a8ac1250b"], +Cell[421718, 10594, 9871, 240, 70, "Code",ExpressionUUID->"854d70f7-452d-43e3-8ccf-0f25fb309c12"], +Cell[431592, 10836, 6265, 154, 70, "Code",ExpressionUUID->"75127c2d-3e66-40ec-aa3e-20c864b3b111"], +Cell[437860, 10992, 2719, 75, 70, "Code",ExpressionUUID->"346395a0-8bb6-4ea4-9866-7e27e5523c1f"], +Cell[440582, 11069, 358, 8, 70, "Code",ExpressionUUID->"b6b28536-1170-4817-9d72-da27c186a0c2"], +Cell[440943, 11079, 5321, 125, 70, "Code",ExpressionUUID->"4282a7b3-10a0-487d-8aed-7e1635c21095"], +Cell[446267, 11206, 12098, 293, 70, "Code",ExpressionUUID->"e0c46000-ee87-4bf2-990f-48fe52c9760b"], +Cell[458368, 11501, 10016, 254, 70, "Code",ExpressionUUID->"ec18958b-b677-40da-9e7f-2f031e359cb4"], +Cell[468387, 11757, 4865, 128, 70, "Code",ExpressionUUID->"35c532e2-f47c-477a-8766-1e0fb335d851"], +Cell[473255, 11887, 14093, 362, 70, "Code",ExpressionUUID->"2bbe6506-c9a9-43bd-bdcf-820c3ec0d5a4"], +Cell[487351, 12251, 364, 8, 70, "Code",ExpressionUUID->"a9fab496-005a-4e7c-998a-f9e50ae19049"], +Cell[487718, 12261, 4637, 106, 70, "Code",ExpressionUUID->"f7815f80-92c9-44f7-ba5a-a29ec1839fd8"], +Cell[492358, 12369, 4811, 115, 70, "Code",ExpressionUUID->"72d56535-78d4-429b-a336-a0fab0a550d6"], +Cell[497172, 12486, 5756, 140, 70, "Code",ExpressionUUID->"e0906f39-0066-4cb0-b0e4-5eaa23acc4c0"], +Cell[502931, 12628, 227, 4, 70, "Code",ExpressionUUID->"add5a367-af53-4cc4-943c-66d9f9f50c7f"], +Cell[503161, 12634, 14503, 357, 70, "Code",ExpressionUUID->"9654015c-70ec-49cc-bdbb-dbcc6631f266"], +Cell[517667, 12993, 5165, 133, 70, "Code",ExpressionUUID->"088826e7-ff58-4199-bb0e-8c63f0ce53a0"], +Cell[522835, 13128, 4673, 116, 70, "Code",ExpressionUUID->"1a47ad92-50d4-4127-a246-80eebe1038f7"], +Cell[527511, 13246, 8061, 202, 70, "Code",ExpressionUUID->"1d9f7c98-3a3c-4bc6-91f9-5dffba516327"], +Cell[535575, 13450, 9115, 242, 70, "Code",ExpressionUUID->"1ce64c3a-eb55-4170-b5c2-230faa946df7"], +Cell[544693, 13694, 5210, 126, 70, "Code",ExpressionUUID->"7c7897dd-5bdd-4df0-9ad2-b89e72b36dd6"], +Cell[549906, 13822, 1714, 45, 70, "Code",ExpressionUUID->"912a5022-1ee6-4f9a-bf50-b130a7763383"], +Cell[551623, 13869, 5654, 134, 70, "Code",ExpressionUUID->"e40c8f95-af4e-448f-b4a4-a31f74ca35f0"], +Cell[557280, 14005, 5773, 126, 70, "Code",ExpressionUUID->"5079aeab-e885-4614-8033-4160713c7e1b"], +Cell[563056, 14133, 4837, 112, 70, "Code",ExpressionUUID->"f56c7217-cf9c-4ac3-b335-6ad103057b5e"], +Cell[567896, 14247, 3074, 74, 70, "Code",ExpressionUUID->"621c26ae-e7b7-484b-aca0-e9e0747f6277"], +Cell[570973, 14323, 14543, 368, 70, "Code",ExpressionUUID->"18748597-c8c3-4bf5-8932-0b74667cf7a9"], +Cell[585519, 14693, 224, 5, 70, "Code",ExpressionUUID->"17ee3079-34c3-4bb3-9d51-6c9a5af63172"], +Cell[585746, 14700, 2961, 72, 70, "Code",ExpressionUUID->"ab08505e-7edf-4c79-8ede-ecf6d90833fe"], +Cell[588710, 14774, 1954, 50, 70, "Code",ExpressionUUID->"828efa07-d1b8-4042-a5bf-078e6a342c9b"], +Cell[590667, 14826, 1815, 47, 70, "Code",ExpressionUUID->"be122f5a-8b9a-409c-a18a-ea58486ae2d5"], +Cell[592485, 14875, 1773, 51, 70, "Code",ExpressionUUID->"683f9a02-b6e5-4ebd-8f8c-23a9b0afaf9f"], +Cell[594261, 14928, 2964, 87, 70, "Code",ExpressionUUID->"7fd0e0b6-cc80-4009-90ee-bc46077e28af"], +Cell[597228, 15017, 7746, 181, 70, "Code",ExpressionUUID->"a0139972-5661-44f6-97b4-3055fd955056"], +Cell[604977, 15200, 23979, 579, 70, "Code",ExpressionUUID->"81ccedda-e6b1-4344-8c95-71d3e076c051"], +Cell[628959, 15781, 434, 11, 70, "Code",ExpressionUUID->"7bde080f-dc88-42d4-a0ec-5f38f4aa7e9d"], +Cell[629396, 15794, 1705, 46, 70, "Code",ExpressionUUID->"6a8ba6a6-2f8c-40d2-a152-5efb910c62cd"], +Cell[631104, 15842, 3002, 78, 70, "Code",ExpressionUUID->"51b655ff-b7d4-4727-a745-ec4c980e0e5e"], +Cell[634109, 15922, 5662, 144, 70, "Code",ExpressionUUID->"a1c69bbf-1a76-43c6-97d6-426b59aa5142"], +Cell[639774, 16068, 2316, 62, 70, "Code",ExpressionUUID->"45600b05-577b-4da2-b712-5c5e2834dd17"], +Cell[642093, 16132, 4985, 118, 70, "Code",ExpressionUUID->"3f7cec5b-f779-434e-ad47-012d01f88051"], +Cell[647081, 16252, 2171, 52, 70, "Code",ExpressionUUID->"5947cb3b-04e6-49d2-b3fb-f0af7234f0e4"], +Cell[649255, 16306, 264, 5, 70, "Code",ExpressionUUID->"301c66d1-4916-4b3d-835e-b607c7a6bd27"], +Cell[649522, 16313, 528, 13, 70, "Code",ExpressionUUID->"e9445ad6-ec0c-4c34-a3c1-d87f20a112f0"], +Cell[650053, 16328, 3106, 94, 70, "Code",ExpressionUUID->"91b55c2c-472a-4e45-8867-ea1ead671c0a"], +Cell[653162, 16424, 3181, 83, 70, "Code",ExpressionUUID->"c1c17fa7-89be-40a2-b294-103ffe73a5cd"], +Cell[656346, 16509, 751, 21, 70, "Code",ExpressionUUID->"11b7ed92-5966-4cab-be3b-9bb66d7f45be"], +Cell[657100, 16532, 2945, 75, 70, "Code",ExpressionUUID->"7666034b-e20c-4a3a-a3e3-2478bc0da448"], +Cell[660048, 16609, 713, 19, 70, "Code",ExpressionUUID->"5c6db5a6-2ddf-43db-aeec-72faf1be0b86"], +Cell[660764, 16630, 4872, 138, 70, "Code",ExpressionUUID->"98c92b9e-5228-474e-b001-2a8c289b8904"], +Cell[665639, 16770, 3105, 84, 70, "Code",ExpressionUUID->"9b61477f-8bea-49fa-a2ab-de548a2f839d"], +Cell[668747, 16856, 3388, 89, 70, "Code",ExpressionUUID->"de073201-7f03-408b-bef2-78626cecec10"], +Cell[672138, 16947, 8340, 211, 70, "Code",ExpressionUUID->"b4d958cf-2e22-40e0-ae9e-e2d448a74637"], +Cell[680481, 17160, 4692, 124, 70, "Code",ExpressionUUID->"b87fe9d4-fa00-4584-96ce-bcd9243777c8"], +Cell[685176, 17286, 1215, 34, 70, "Code",ExpressionUUID->"cebea53b-91bc-4d6f-9833-039f91be633b"], +Cell[686394, 17322, 2049, 59, 70, "Code",ExpressionUUID->"56349e60-723a-4be4-a615-14d9e20759ac"], +Cell[688446, 17383, 8671, 218, 70, "Code",ExpressionUUID->"e4b8f2b4-e00b-4bed-ab96-ed7da3bb1ac7"], +Cell[697120, 17603, 15762, 351, 70, "Code",ExpressionUUID->"a08bd211-07d7-411e-abfd-6f0fdfdcd1fe"], +Cell[712885, 17956, 3364, 78, 70, "Code",ExpressionUUID->"d6a58d8a-8336-4e24-8e02-1fdae3ad644a"], +Cell[716252, 18036, 3558, 80, 70, "Code",ExpressionUUID->"734f2e95-b2ec-4a82-92d6-f28d30fc992b"], +Cell[719813, 18118, 13734, 314, 70, "Code",ExpressionUUID->"5d16816f-5d60-4770-beb3-dc5cac83f374"], +Cell[733550, 18434, 7964, 200, 70, "Code",ExpressionUUID->"bfa3364d-db41-4b4b-a45b-2d70abe61595"], +Cell[741517, 18636, 5687, 147, 70, "Code",ExpressionUUID->"e52858b1-4eb3-4bc3-af61-6d68af24f9ce"], +Cell[747207, 18785, 9799, 235, 70, "Code",ExpressionUUID->"91e579cc-f3f5-483c-8a41-38b07943000b"], +Cell[757009, 19022, 5244, 123, 70, "Code",ExpressionUUID->"7abbc4c0-14f5-4786-b039-838d11f2b51a"], +Cell[762256, 19147, 278, 6, 70, "Code",ExpressionUUID->"b195da85-acf3-4c71-9a2c-ad2f25bc878b"], +Cell[762537, 19155, 2749, 64, 70, "Code",ExpressionUUID->"a4b4b848-c033-4d61-9fc3-8986f37b9337"], +Cell[765289, 19221, 4389, 104, 70, "Code",ExpressionUUID->"3afff4e4-06c1-4659-a3b6-13557a0a7224"], +Cell[769681, 19327, 13711, 320, 70, "Code",ExpressionUUID->"3220cb03-bf1b-40ee-b78c-edff38c5e920"], +Cell[783395, 19649, 13580, 317, 70, "Code",ExpressionUUID->"d41d805f-9896-49df-8a11-e83ae85c754a"], +Cell[796978, 19968, 5842, 136, 70, "Code",ExpressionUUID->"45911f9e-1fff-4a18-9247-cdd0c92a1a38"], +Cell[802823, 20106, 6188, 146, 70, "Code",ExpressionUUID->"fa1d7963-f332-4c8e-bbe7-f6c82d91d96e"], +Cell[809014, 20254, 4953, 116, 70, "Code",ExpressionUUID->"d07ef2ee-37ce-41f4-b3db-dfecb4b341b0"], +Cell[813970, 20372, 11141, 290, 70, "Code",ExpressionUUID->"a3b75251-821e-4a22-8a97-67bd6fa107bb"], +Cell[825114, 20664, 3617, 85, 70, "Code",ExpressionUUID->"78ffea1e-0a02-4df3-9ae5-ab5534afad96"], +Cell[828734, 20751, 3629, 86, 70, "Code",ExpressionUUID->"613d2358-f778-4849-a942-3056d77d64ac"], +Cell[832366, 20839, 8715, 215, 70, "Code",ExpressionUUID->"9662f492-8e51-47cd-9b5d-3067107cc040"], +Cell[841084, 21056, 8661, 218, 70, "Code",ExpressionUUID->"9767252f-a4e0-46dc-9956-58a73a3b660a"], +Cell[849748, 21276, 6832, 187, 70, "Code",ExpressionUUID->"21f79d75-4d1a-41e1-9351-29eceb48f21a"], +Cell[856583, 21465, 693, 19, 70, "Code",ExpressionUUID->"4dfa4641-6ffd-49d3-b212-63422a7f9694"], +Cell[857279, 21486, 5079, 133, 70, "Code",ExpressionUUID->"1089185d-99e0-4f80-a026-5e9b26f91f81"], +Cell[862361, 21621, 6415, 164, 70, "Code",ExpressionUUID->"e940376b-3ce4-4d8a-9cea-70a687d8dc70"], +Cell[868779, 21787, 3152, 77, 70, "Code",ExpressionUUID->"01a3cd28-6d05-4685-aede-5d9968725afc"], +Cell[871934, 21866, 2966, 76, 70, "Code",ExpressionUUID->"09bb3eaf-fdf7-4edd-a7f6-ef48f03c9569"], +Cell[874903, 21944, 9218, 221, 70, "Code",ExpressionUUID->"611a0466-7495-4ef6-b6ce-7ba0464f9a6b"], +Cell[884124, 22167, 6302, 160, 70, "Code",ExpressionUUID->"6e14daef-9442-4661-b33c-b32c057076ec"], +Cell[890429, 22329, 10173, 249, 70, "Code",ExpressionUUID->"43a36a01-0351-446f-a347-f1fdb35dde2b"], +Cell[900605, 22580, 1081, 27, 70, "Code",ExpressionUUID->"d546c0b0-5c00-497c-9781-a544c42b1196"], +Cell[901689, 22609, 3533, 91, 70, "Code",ExpressionUUID->"2cc2bb34-d2db-4c6a-a88a-f6afeede398f"], +Cell[905225, 22702, 17200, 431, 70, "Code",ExpressionUUID->"2d35a7aa-2061-4ebc-91dc-10d7c1a94b43"], +Cell[922428, 23135, 5113, 129, 70, "Code",ExpressionUUID->"15feae92-c734-46b3-9af6-6b936aa7d993"], +Cell[927544, 23266, 6278, 163, 70, "Code",ExpressionUUID->"e6ad8f9d-e998-4be5-8e8c-0dea47e3e83b"], +Cell[933825, 23431, 17176, 430, 70, "Code",ExpressionUUID->"2e765a17-43ad-423c-b5ff-d052f565aea3"], +Cell[951004, 23863, 5963, 154, 70, "Code",ExpressionUUID->"92c1dd61-3e5c-44e2-b667-c16bfbad77ef"], +Cell[956970, 24019, 2919, 70, 70, "Code",ExpressionUUID->"b7b550b7-7113-4e84-83b7-4c99279e5434"], +Cell[959892, 24091, 20405, 508, 70, "Code",ExpressionUUID->"5053c693-c10d-438d-939b-696cb115aa4c"], +Cell[980300, 24601, 374, 7, 70, "Code",ExpressionUUID->"721d06fb-ec94-4f80-8ce3-b74f843ffbad"], +Cell[980677, 24610, 2510, 73, 70, "Code",ExpressionUUID->"9f95f4e9-bf44-44e2-86cc-a9ed046ca1a9"], +Cell[983190, 24685, 8967, 227, 70, "Code",ExpressionUUID->"10f29875-e609-4880-b6e8-8617fc500cb7"], +Cell[992160, 24914, 199, 4, 70, "Code",ExpressionUUID->"652a4bcd-d490-4f96-99ff-8145423bca04"], +Cell[992362, 24920, 238, 5, 70, "Code",ExpressionUUID->"454a0734-1c17-4bf3-b1e3-1d984b5b08fc"], +Cell[992603, 24927, 682, 20, 70, "Code",ExpressionUUID->"ea077a60-a6e4-4ce7-9aed-5fd20329f223"], +Cell[993288, 24949, 4496, 143, 70, "Code",ExpressionUUID->"4f170821-35ec-4dae-951f-8d3383d43992"], +Cell[997787, 25094, 8214, 257, 70, "Code",ExpressionUUID->"62f30b2a-74fb-4a71-a8fa-7030db97f2e4"], +Cell[1006004, 25353, 1626, 52, 70, "Code",ExpressionUUID->"614ecac9-d6dc-48b1-b8de-cfcd692c379b"], +Cell[1007633, 25407, 559, 16, 70, "Code",ExpressionUUID->"a69c1279-cf38-4167-9252-2ad7805ec7e4"], +Cell[1008195, 25425, 4430, 128, 70, "Code",ExpressionUUID->"e33a6dde-92ee-4b10-b7a2-c6799e810f6e"], +Cell[1012628, 25555, 2319, 67, 70, "Code",ExpressionUUID->"d26162f0-bcd3-4aa6-a133-3c8fbdd44ce2"], +Cell[1014950, 25624, 236, 5, 70, "Code",ExpressionUUID->"f3ab445a-af11-4828-8885-115f3edd429b"], +Cell[1015189, 25631, 3816, 107, 70, "Code",ExpressionUUID->"005ac60c-9d4f-4a0a-91e3-0f37bec295e5"], +Cell[1019008, 25740, 1069, 31, 70, "Code",ExpressionUUID->"6d6816af-606a-46a5-be88-8789d477cdb0"], +Cell[1020080, 25773, 2658, 68, 70, "Code",ExpressionUUID->"30e62993-e562-4329-8604-4e9ec5efd2e1"], +Cell[1022741, 25843, 7854, 220, 70, "Code",ExpressionUUID->"e0c98fad-6847-4ee5-a0ff-8f9d7e5a2d75"], +Cell[1030598, 26065, 2939, 69, 70, "Code",ExpressionUUID->"6b8892a7-47ac-4cf6-bb7a-80bdbaf02b22"], +Cell[1033540, 26136, 2361, 63, 70, "Code",ExpressionUUID->"4d988ef0-a5de-4f42-8da0-b59d9bf3f8d9"], +Cell[1035904, 26201, 2071, 54, 70, "Code",ExpressionUUID->"ba8192a6-7862-4916-bc8b-bec7aa27af1a"], +Cell[1037978, 26257, 4588, 127, 70, "Code",ExpressionUUID->"1fc972da-87b8-40b7-98e6-b39ae53c82b9"], +Cell[1042569, 26386, 6611, 187, 70, "Code",ExpressionUUID->"aad0a816-1833-41d1-a002-d770ce80ddbd"], +Cell[1049183, 26575, 3298, 80, 70, "Code",ExpressionUUID->"0183e3b1-dadd-4742-a3d0-be9035643a08"], +Cell[1052484, 26657, 2205, 58, 70, "Code",ExpressionUUID->"6f63fb99-c110-4c46-88de-ffa0ba936787"], +Cell[1054692, 26717, 1406, 37, 70, "Code",ExpressionUUID->"77c17640-65f6-4d71-8e5c-0376228b5c14"], +Cell[1056101, 26756, 982, 25, 70, "Code",ExpressionUUID->"f5c78394-9127-4b7f-9274-b96ac0fc07b0"], +Cell[1057086, 26783, 2737, 68, 70, "Code",ExpressionUUID->"e226b795-960b-4aaf-8a46-c4924173ad71"], +Cell[1059826, 26853, 4710, 125, 70, "Code",ExpressionUUID->"97319a41-919e-4733-b6a0-dd7170e3d096"], +Cell[1064539, 26980, 7482, 197, 70, "Code",ExpressionUUID->"fcc72262-917c-403d-bbb2-2e316c0887c4"], +Cell[1072024, 27179, 2847, 73, 70, "Code",ExpressionUUID->"10158693-5bb1-45db-9ba2-21b27c800570"], +Cell[1074874, 27254, 3143, 90, 70, "Code",ExpressionUUID->"37782e73-a1bd-4f81-ba50-bf306622d599"], +Cell[1078020, 27346, 2299, 61, 70, "Code",ExpressionUUID->"56376c5f-26d6-410c-8c35-a30665a38ee9"], +Cell[1080322, 27409, 5394, 132, 70, "Code",ExpressionUUID->"ddc772ad-fa15-4e19-94ab-02fe991375d7"], +Cell[1085719, 27543, 2217, 61, 70, "Code",ExpressionUUID->"0740dcc4-5bc8-413c-8f89-f9f0a4c759a9"], +Cell[1087939, 27606, 768, 21, 70, "Code",ExpressionUUID->"54c76174-38ce-44bc-bac4-bf26e2286ed3"] } ] *) diff --git a/TuGames.wl b/TuGames.wl index e80cb2e..ef24d9d 100644 --- a/TuGames.wl +++ b/TuGames.wl @@ -18,7 +18,7 @@ Off[General::obspkg]; holger.meinhardt@wiwi.uni-karlsruhe.de *) -(* :Package Version: 2.6.0 *) +(* :Package Version: 2.6.1 *) (* :Mathematica Version: 8.x, 9.x, 10.x, 11.x, 12.x @@ -264,12 +264,17 @@ Off[General::obspkg]; 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: + Version 2.6.0 + Adding functions to compute the EPSD-Value, Chi-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 parallel. + *) @@ -318,8 +323,8 @@ If[SameQ[Global`$ParaMode,"False"], Print["==================================================="]; Print["Loading Package 'TuGames' for ", $OperatingSystem]; Print["==================================================="]; -Print["TuGames V2.6.0 by Holger I. Meinhardt"]; -Print["Release Date: 22.04.2020"]; +Print["TuGames V2.6.1 by Holger I. Meinhardt"]; +Print["Release Date: 05.05.2020"]; Print["Program runs under Mathematica Version 8.0 or later"]; Print["Version 8.x or higher is recommended"]; Print["==================================================="];, @@ -524,10 +529,10 @@ ModCoalArray::usage = "ModCoalArray[game,payoff] computes a modified coalition array of first, second, ..., kth maximal excess."; StandardSolution::usage = -"StandardSolution[game] computes the standard solution of a two-person TU-game." +"StandardSolution[game] computes the standard solution of a two-person TU-game."; NucleolusThreePerson::usage = -"NucleolusThreePerson[game] computes the nucleolus of zero-normalized super-additive three person games. Uses the formula of Leng and Parlar (2010)." +"NucleolusThreePerson[game] computes the nucleolus of zero-normalized super-additive three person games. Uses the formula of Leng and Parlar (2010)."; PreNucleolus::usage = "PreNucleolus[game,options] computes the pre-nucleolus from the set of pre-imputations. @@ -1011,7 +1016,7 @@ BelongToCoreQ::usage = BalancedInequalityQ::usage = "BalancedInequalityQ[game,coll] checks if the balanced system of sets satisfies a balanced inequality of the game. It returns True or False. The latter includes also the case that the system is not -balanced." +balanced."; ImputationQ::usage = @@ -1642,7 +1647,7 @@ WeightedMajority[T_,weight_List] := Block[{outersets,coalweights,sumweights,thre *) StandardSolution[args___]:=(Message[StandardSolution::argerr];$Failed); -StandardSolution[game_]:=Module[{dmQ}, +StandardSolution[game_]:=Block[{dmQ}, dmQ=SameQ[2^Length[T],2^2]; If[dmQ,v[{#}] + (v[T]-v[{1}]-v[{2}])/2 &/@ T, Print["Game has incorrect dimension!"];Return[]] @@ -2455,7 +2460,7 @@ SeqLP2[game_,obf_, cmat_List, bvect_List,bds_List,bA_:{}] := bA1=Cases[cmat1,{0,___}]; lb = Length[bA]; bA2=FlattenAt[Append[bA,bA1],lb+1]; - bA2=Take[#,-Length[T]] &/@ bA2; + bA2=Developer`ToPackedArray[Take[#,-Length[T]] &/@ bA2]; ons = Array[1 &,Length[T]]; wghs=PseudoInverse[Transpose[bA2]].ons; mr = MatrixRank[bA2]; @@ -2824,7 +2829,7 @@ IIMBalancedSelectionQ[selcoal_List, tol_,opts:OptionsPattern[BalancedSelectionQ] tig = OptionValue[Tight]; ufs=Union[Flatten[selcoal]]; If[SameQ[ufs,T],True,Return["False"]]; - sysvec = ConstVec[selcoal]; + sysvec = Developer`ToPackedArray[ConstVec[selcoal]]; mrk = MatrixRank[sysvec]; lt = Length[T]; If[SameQ[tig,True],True,If[mrk False, CalcStepSize -> optst, PseudoInv->pinv,Silent -> sil, SmallestCardinality -> smc]; + {optstep, doi} = Developer`ToPackedArray[DirectionOfImprovement[dcgame, payoff, MaximumSurpluses -> False, CalcStepSize -> optst, PseudoInv->pinv,Silent -> sil, SmallestCardinality -> smc]]; If[SameQ[sil,False], Print["doi=", doi], True]; If[SameQ[sil,False], Print["optstep=", optstep], True]; itpay = payoff + optstep*doi; @@ -3159,7 +3164,7 @@ BalancedSelectionQ[selcoal_List, opts:OptionsPattern[BalancedSelectionQ]]:= tig = OptionValue[Tight]; ufs=Union[Flatten[selcoal]]; If[SameQ[ufs,T],True,Return["False"]]; - sysvec = ConstVec[selcoal]; + sysvec = Developer`ToPackedArray[ConstVec[selcoal]]; mrk = MatrixRank[sysvec]; lt = Length[T]; If[SameQ[tig,True],True,If[mrk