Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

fractional_chromatic_index in sage-7.6 gets stuck in loop adding constraints

I have a researcher that's trying to use fractional_chromatic_index, but depending on the solver used, it appears to get stuck in an endless loop adding constraints. For example, the PPL solver works fine:

sage: g=graphs.PetersenGraph()
sage: g.fractional_chromatic_index(solver="PPL")
3

But if I use the default (GLPK) or the CBC/Coin solver, it just seems to hang. By adding verbose_constraints=1 as an option, you can see that it just goes and goes and goes:

sage: g.fractional_chromatic_index(solver="glpk",verbose_constraints=1)
Adding a constraint on matching : [(0, 5, 1.0), (1, 6, 1.0), (2, 7, 1.0), (3, 8, 1.0), (4, 9, 1.0)]
Adding a constraint on matching : [(0, 5, 1.0), (1, 2, 1.0), (3, 4, 1.0), (6, 8, 1.0), (7, 9, 1.0)]
Adding a constraint on matching : [(0, 4, 1.0), (2, 3, 1.0), (5, 8, 1.0), (6, 9, 1.0)]
Adding a constraint on matching : [(0, 4, 1.0), (1, 6, 1.0), (5, 7, 1.0)]
Adding a constraint on matching : [(0, 1, 1.0), (2, 3, 1.0), (5, 7, 1.0)]
Adding a constraint on matching : [(1, 6, 1.0), (5, 8, 1.0)]
Adding a constraint on matching : [(0, 4, 0.5), (1, 2, 1.0), (5, 8, 0.5)]
Adding a constraint on matching : [(0, 1, 1.0), (2, 7, 0.5), (3, 4, 1.0), (5, 8, 0.5)]
Adding a constraint on matching : [(6, 9, 1.0), (1, 2, 1.0)]
Adding a constraint on matching : [(0, 1, 1.0), (3, 8, 0.5), (6, 9, 0.5)]
Adding a constraint on matching : [(0, 1, 1.0), (4, 9, 1.0), (6, 8, 1.0)]
Adding a constraint on matching : [(0, 4, 0.25), (1, 2, 0.5), (3, 8, 0.25), (5, 7, 0.75), (6, 9, 0.5)]
Adding a constraint on matching : [(1, 6, 0.5000000000000001), (2, 3, 5.551115123125783e-17), (5, 8, 0.5), (7, 9, 1.0)]
Adding a constraint on matching : [(0, 1, 0.3333333333333333), (3, 4, 0.6666666666666666), (5, 7, 0.33333333333333337), (6, 9, 0.3333333333333334)]
Adding a constraint on matching : [(0, 4, 0.33333333333333437), (2, 3, 0.3333333333333328), (6, 8, 0.6666666666666642), (7, 9, 0.33333333333333626)]
Adding a constraint on matching : [(2, 3, 0.1999999999999997), (4, 9, 0.5999999999999989), (5, 7, 0.8000000000000005), (6, 8, 0.40000000000000113)]
Adding a constraint on matching : [(0, 4, 0.49999999999999994), (1, 2, 1.6653345369377348e-16), (5, 8, 0.5000000000000001), (7, 9, 0.5)]
Adding a constraint on matching : [(0, 1, 0.5), (2, 3, 0.1666666666666668), (4, 9, 0.1666666666666666), (5, 7, 0.33333333333333326), (6, 8, 0.33333333333333337)]
Adding a constraint on matching : [(0, 1, 0.5999999999999998), (2, 7, 0.20000000000000012), (5, 8, 0.20000000000000018), (6, 9, 0.4000000000000003)]
Adding a constraint on matching : [(0, 4, 0.4374999999999998), (1, 6, 0.5625), (5, 8, 0.2500000000000003), (7, 9, 0.18750000000000006)]
Adding a constraint on matching : [(0, 1, 0.33333333333333326), (2, 7, 0.3333333333333335), (3, 4, 0.33333333333333315), (6, 9, 0.3333333333333335)]
Adding a constraint on matching : [(0, 1, 0.6249999999999999), (2, 3, 0.3750000000000001), (5, 8, 0.125), (7, 9, 0.2499999999999999)]
Adding a constraint on matching : [(0, 4, 0.4999999999999999), (1, 6, 0.5), (2, 3, 0.5000000000000001)]
Adding a constraint on matching : [(0, 1, 0.4999999999999994), (2, 7, 8.326672684688677e-17), (3, 4, 0.2500000000000002), (5, 8, 0.2500000000000003), (6, 9, 0.25000000000000044)]
Adding a constraint on matching : [(0, 4, 0.3999999999999996), (1, 6, 0.20000000000000012), (2, 3, 0.40000000000000024), (5, 7, 0.40000000000000024)]
Adding a constraint on matching : [(0, 4, 0.39999999999999936), (1, 6, 0.20000000000000026), (2, 3, 0.40000000000000036), (5, 8, 0.20000000000000018), (7, 9, 0.1999999999999999)]
Adding a constraint on matching : [(0, 5, 0.9999999999999999), (1, 2, 3.3306690738754696e-16), (6, 9, 1.4802973661668753e-16)]
Adding a constraint on matching : [(0, 5, 0.9999999999999999), (1, 2, 3.3306690738754696e-16), (6, 9, 1.4802973661668753e-16)]
Adding a constraint on matching : [(0, 5, 0.9999999999999999), (1, 2, 3.3306690738754696e-16), (6, 9, 1.4802973661668753e-16)]
...

I tried this on both the prebuilt OSX command-line build as well as the linux source tarball.

Any idea what's going on here?

click to hide/show revision 2
retagged

fractional_chromatic_index in sage-7.6 gets stuck in loop adding constraints

I have a researcher that's trying to use fractional_chromatic_index, but depending on the solver used, it appears to get stuck in an endless loop adding constraints. For example, the PPL solver works fine:

sage: g=graphs.PetersenGraph()
sage: g.fractional_chromatic_index(solver="PPL")
3

But if I use the default (GLPK) or the CBC/Coin solver, it just seems to hang. By adding verbose_constraints=1 as an option, you can see that it just goes and goes and goes:

sage: g.fractional_chromatic_index(solver="glpk",verbose_constraints=1)
Adding a constraint on matching : [(0, 5, 1.0), (1, 6, 1.0), (2, 7, 1.0), (3, 8, 1.0), (4, 9, 1.0)]
Adding a constraint on matching : [(0, 5, 1.0), (1, 2, 1.0), (3, 4, 1.0), (6, 8, 1.0), (7, 9, 1.0)]
Adding a constraint on matching : [(0, 4, 1.0), (2, 3, 1.0), (5, 8, 1.0), (6, 9, 1.0)]
Adding a constraint on matching : [(0, 4, 1.0), (1, 6, 1.0), (5, 7, 1.0)]
Adding a constraint on matching : [(0, 1, 1.0), (2, 3, 1.0), (5, 7, 1.0)]
Adding a constraint on matching : [(1, 6, 1.0), (5, 8, 1.0)]
Adding a constraint on matching : [(0, 4, 0.5), (1, 2, 1.0), (5, 8, 0.5)]
Adding a constraint on matching : [(0, 1, 1.0), (2, 7, 0.5), (3, 4, 1.0), (5, 8, 0.5)]
Adding a constraint on matching : [(6, 9, 1.0), (1, 2, 1.0)]
Adding a constraint on matching : [(0, 1, 1.0), (3, 8, 0.5), (6, 9, 0.5)]
Adding a constraint on matching : [(0, 1, 1.0), (4, 9, 1.0), (6, 8, 1.0)]
Adding a constraint on matching : [(0, 4, 0.25), (1, 2, 0.5), (3, 8, 0.25), (5, 7, 0.75), (6, 9, 0.5)]
Adding a constraint on matching : [(1, 6, 0.5000000000000001), (2, 3, 5.551115123125783e-17), (5, 8, 0.5), (7, 9, 1.0)]
Adding a constraint on matching : [(0, 1, 0.3333333333333333), (3, 4, 0.6666666666666666), (5, 7, 0.33333333333333337), (6, 9, 0.3333333333333334)]
Adding a constraint on matching : [(0, 4, 0.33333333333333437), (2, 3, 0.3333333333333328), (6, 8, 0.6666666666666642), (7, 9, 0.33333333333333626)]
Adding a constraint on matching : [(2, 3, 0.1999999999999997), (4, 9, 0.5999999999999989), (5, 7, 0.8000000000000005), (6, 8, 0.40000000000000113)]
Adding a constraint on matching : [(0, 4, 0.49999999999999994), (1, 2, 1.6653345369377348e-16), (5, 8, 0.5000000000000001), (7, 9, 0.5)]
Adding a constraint on matching : [(0, 1, 0.5), (2, 3, 0.1666666666666668), (4, 9, 0.1666666666666666), (5, 7, 0.33333333333333326), (6, 8, 0.33333333333333337)]
Adding a constraint on matching : [(0, 1, 0.5999999999999998), (2, 7, 0.20000000000000012), (5, 8, 0.20000000000000018), (6, 9, 0.4000000000000003)]
Adding a constraint on matching : [(0, 4, 0.4374999999999998), (1, 6, 0.5625), (5, 8, 0.2500000000000003), (7, 9, 0.18750000000000006)]
Adding a constraint on matching : [(0, 1, 0.33333333333333326), (2, 7, 0.3333333333333335), (3, 4, 0.33333333333333315), (6, 9, 0.3333333333333335)]
Adding a constraint on matching : [(0, 1, 0.6249999999999999), (2, 3, 0.3750000000000001), (5, 8, 0.125), (7, 9, 0.2499999999999999)]
Adding a constraint on matching : [(0, 4, 0.4999999999999999), (1, 6, 0.5), (2, 3, 0.5000000000000001)]
Adding a constraint on matching : [(0, 1, 0.4999999999999994), (2, 7, 8.326672684688677e-17), (3, 4, 0.2500000000000002), (5, 8, 0.2500000000000003), (6, 9, 0.25000000000000044)]
Adding a constraint on matching : [(0, 4, 0.3999999999999996), (1, 6, 0.20000000000000012), (2, 3, 0.40000000000000024), (5, 7, 0.40000000000000024)]
Adding a constraint on matching : [(0, 4, 0.39999999999999936), (1, 6, 0.20000000000000026), (2, 3, 0.40000000000000036), (5, 8, 0.20000000000000018), (7, 9, 0.1999999999999999)]
Adding a constraint on matching : [(0, 5, 0.9999999999999999), (1, 2, 3.3306690738754696e-16), (6, 9, 1.4802973661668753e-16)]
Adding a constraint on matching : [(0, 5, 0.9999999999999999), (1, 2, 3.3306690738754696e-16), (6, 9, 1.4802973661668753e-16)]
Adding a constraint on matching : [(0, 5, 0.9999999999999999), (1, 2, 3.3306690738754696e-16), (6, 9, 1.4802973661668753e-16)]
...

I tried this on both the prebuilt OSX command-line build as well as the linux source tarball.

Any idea what's going on here?