Skip to content

Optimization errors with k > 7~ and poor scaling with k #1

Description

@deklanw

Testing on empirical networks I noticed that past around 7 communities the constrained optimization will fail sometimes,

 Warning: Problem status NUMERICAL_ERROR; solution may be inaccurate.

Also that the optimization succeeded is never checked. I think spurious solutions can be accepted. Tweaking it to just ignore those cases in eval_relocate is easy enough

solve!(problem, ECOS.Optimizer(verbose=false))

# println("Optval = ", -problem.optval)
return problem.status, -problem.optval
problem_status, sbm_cost = solve_convex(sol.data, m_, kappa_, omega)

if sbm_cost < sol.ll && problem_status == Convex.MOI.OPTIMAL

I'm not sure if there is some ECOS setting that can be tweaked to solve these problematic cases or not. Around the same number of communities (7~) (and above) the algorithm slows down considerably. When I flip the CONSTRAINED flag the algorithm doesn't slow down noticeably at the same point. I wonder now if these optimization errors can be worked around will the algorithm scale more closely with the unconstrained case?

Thanks for any thoughts

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions