1
0
mirror of https://github.com/kalmarek/SmallHyperbolic synced 2024-11-23 23:40:28 +01:00

allow to choose optimizer at top level

This commit is contained in:
kalmarek 2020-01-19 17:29:41 +01:00
parent ba58bd60c8
commit e3addcae0f
2 changed files with 11 additions and 8 deletions

View File

@ -23,12 +23,13 @@ include(joinpath("src", "utils.jl"))
const HALFRADIUS = 3 const HALFRADIUS = 3
using SCS using SCS
with_SCS() = with_optimizer(SCS.Optimizer,
with_SCS(iters=30_000, acceleration=10) = with_optimizer(SCS.Optimizer,
linear_solver=SCS.Direct, linear_solver=SCS.Direct,
max_iters=100_000, max_iters=iters,
eps=1e-9, eps=1e-9,
alpha=1.5, alpha=(acceleration == 0 ? 1.95 : 1.5),
acceleration_lookback=10, acceleration_lookback=acceleration,
warm_start=true) warm_start=true)
groups = parse_grouppresentations("data/presentations_4_4_4.txt") groups = parse_grouppresentations("data/presentations_4_4_4.txt")
@ -36,6 +37,8 @@ groups = parse_grouppresentations("data/presentations_3_3_4.txt")
for (group_name, G) in groups for (group_name, G) in groups
@info "" group_name @info "" group_name
check_propertyT(G, "log/$(group_name)_r$HALFRADIUS",
HALFRADIUS, Inf, AutomaticStructure) check_propertyT(groups[group_name], "log/$(group_name)_r$HALFRADIUS",
HALFRADIUS, Inf, AutomaticStructure, with_SCS(50_000, 50))
end end

View File

@ -1,11 +1,11 @@
function check_propertyT(G::FPGroup, name::AbstractString, function check_propertyT(G::FPGroup, name::AbstractString,
halfradius::Integer=2, upper_bound=Inf, reduction=KnuthBendix; kwargs...) halfradius::Integer=2, upper_bound=Inf, reduction=KnuthBendix, with_optimizer=with_SCS(), kwargs...)
@info "GAP code defining group:\n $(GAP_code(G))" @info "GAP code defining group:\n $(GAP_code(G))"
S = gens(G) S = gens(G)
S = unique([S; inv.(S)]) S = unique([S; inv.(S)])
sett = PropertyT.Settings(name, G, S, with_SCS(); sett = PropertyT.Settings(name, G, S, with_optimizer;
halfradius=halfradius, upper_bound=upper_bound, force_compute=true) halfradius=halfradius, upper_bound=upper_bound, force_compute=true)
fp = PropertyT.fullpath(sett) fp = PropertyT.fullpath(sett)