Skip to content

Benchmarks on KaHyPar selector and greedy merge #45

Description

@nzy1997

CPU Info

M4

Setup:

using Test
using OptimalBranchingMIS
using OptimalBranchingCore
using OptimalBranchingMIS.Graphs


g = random_regular_graph(200, 3; seed = 2134)

1. MinBoundarySelector(2)

mis1, count1 = mis_branch_count(g)

(mis1, count1) = (88, 6496)

2. KaHyParSelector(20)

bs = BranchingStrategy(table_solver = TensorNetworkSolver(), selector = KaHyParSelector(20), measure = D3Measure())
misk, countk = mis_branch_count(g; branching_strategy = bs)

(misk, countk) = (88, 3595)

3. KaHyParSelector(15)

bs = BranchingStrategy(table_solver = TensorNetworkSolver(), selector = KaHyParSelector(15), measure = D3Measure())
misk, countk = mis_branch_count(g; branching_strategy = bs)

(misk, countk) = (88, 4501)

4. KaHyPar(15) + GreedyMerge()

bs = BranchingStrategy(table_solver = TensorNetworkSolver(), selector = KaHyParSelector(15), measure = D3Measure(), set_cover_solver = OptimalBranchingCore.GreedyMerge())
miskg, countkg = mis_branch_count(g; branching_strategy = bs)

(miskg, countkg) = (88, 6248)

3. KaHyPar(15) + NaiveBranch()

The naive branch maximizes the length of each clause.

bs = BranchingStrategy(table_solver = TensorNetworkSolver(), selector = KaHyParSelector(15), measure = D3Measure(), set_cover_solver = OptimalBranchingCore.NaiveBranch())
miskn, countkn = mis_branch_count(g; branching_strategy = bs)

miskn, countkn = (88, 107727)

Profile on greedy merge

Count  Overhead File                                          Line Function
331         0 @OptimalBranchingCore/src/greedymerge.jl        29 greedymerge(cls::Vector{Vector{Clause{LongLongUInt{1}}…
23         0 @OptimalBranchingMIS/src/graphs.jl              34 removed_vertices(vertices::Vector{Int64}, g::SimpleGra…
34         0 @OptimalBranchingMIS/src/tablesolver.jl         17 _reduced_alpha_configs(g::SimpleGraph{Int64}, openvert…
50         0 @OptimalBranchingMIS/src/tablesolver.jl         27 reduced_alpha_configs
46         0 @OptimalBranchingMIS/src/tablesolver.jl         27 reduced_alpha_configs(::TensorNetworkSolver, graph::Si…
30         0 @OptimalBranchingMIS/src/types.jl               89 size_reduction(p::MISProblem, m::D3Measure, cl::Clause…
301         0 @OptimalBranchingMIS/src/types.jl               95 size_reduction(p::MISProblem, m::D3Measure, cl::Clause…
22         0 @OptimalBranchingMIS/src/types.jl               97 size_reduction(p::MISProblem, m::D3Measure, cl::Clause…
Total snapshots: 693.

btime on greedy merge

9s for optimal branching, γ = 1.0814

246.635ms for greedy merge, γ = 1.0842073740067577

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions