-
-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Add vertex enumeration. #64
base: main
Are you sure you want to change the base?
Conversation
|
|
Maybe open an issue at Polyhedra.jl for a feature request? |
Codecov Report
@@ Coverage Diff @@
## master #64 +/- ##
===========================================
- Coverage 93.33% 82.55% -10.79%
===========================================
Files 6 6
Lines 390 384 -6
===========================================
- Hits 364 317 -47
- Misses 26 67 +41
Continue to review full report at Codecov.
|
After discussion in JuliaPolyhedra/Polyhedra.jl#60, I tried to use julia> A = [3 3; 2 5; 0 6];
julia> B = [3 2 3; 2 6 1];
julia> g = NormalFormGame(Player(A), Player(B));
julia> @time vertex_enumeration(g)
0.017728 seconds (52.14 k allocations: 2.496 MiB)
3-element Array{Tuple{Array{Real,1},Array{Real,1}},1}:
(Real[0.0, 0.333333, 0.666667], Real[0.333333, 0.666667])
(Real[0.8, 0.2, 0.0], Real[0.666667, 0.333333])
(Real[1.0, 0.0, 0.0], Real[1.0, 0.0])
julia> @time support_enumeration(g);
0.000196 seconds (331 allocations: 17.609 KiB)
3-element Array{Tuple{Array{Real,1},Array{Real,1}},1}:
(Real[1.0, 0.0, 0.0], Real[1.0, 0.0])
(Real[0.8, 0.2, 0.0], Real[0.666667, 0.333333])
(Real[0.0, 0.333333, 0.666667], Real[0.333333, 0.666667]) Because the method now I am using is still trying to find out labelings after However, what I concerned is that even the "time lower bound" for I wrote a function julia> using Polyhedra
julia> using LRSLib
julia> @time construction_BRP(g, getlibraryfor(2, Float64));
0.014271 seconds (43.54 k allocations: 2.088 MiB)
julia> @time construction_BRP(g, LRSLib.LRSLibrary());
0.003624 seconds (6.42 k allocations: 254.492 KiB) The needed time for transformation is higher than the total time |
11d7fd1
to
8ee9e73
Compare
Did you try And also try |
It turns out that |
That operation, commented in that line, is to guarantee that the BR polytope has a nonempty interior. Read the docstring of |
1 similar comment
@shizejin The test is not testing |
bf2fb7c
to
1e21d16
Compare
@oyamad Sorry for pushing the wrong file. Modified. |
1 similar comment
1e21d16
to
db21341
Compare
db21341
to
fd1f096
Compare
Closes #43
Had a rough try to implement vertex enumeration using
Polyhedra.jl
.However, the speed is much slower than
support_enumeration
, as the implementation is quite inefficient.The very possible reason is that I am finding the labels of vertices in a very inefficient way (by checking the binded inequalities one by one for each vertex pair). So far I haven't found an efficient way to get labels using
Polyhedra.SimpleHRepresentation
andPolyhedra.SimpleVRepresentation
. Maybe another direction is to useConvexHull.jl
and follow the style of the Python implementation.It would be great if we can talk about this in the next meeting. @oyamad