Skip to content

Conversation

@ImkoMarijnissen
Copy link
Contributor

No description provided.

@maartenflippo maartenflippo merged commit 4d419f7 into main Sep 18, 2025
8 checks passed
@maartenflippo maartenflippo deleted the chore/debug-integer-variable branch September 18, 2025 12:06
maartenflippo added a commit that referenced this pull request Sep 26, 2025
commit a30b7401ed8d53510411bbd0b5a56a86c3ad31a3
Merge: f1d5e22d 28c598d
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Fri Sep 26 11:08:30 2025 +0200

    Merge branch 'refactor/drcp-format' into testing

commit 28c598d
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Fri Sep 26 11:05:43 2025 +0200

    refactor(drcp-format): Factor out a lineparser in the reader

commit f1d5e22d54e298424bdb4e0cf18c3c6563105956
Merge: 1fdf489e 6d83f56
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Fri Sep 26 10:27:13 2025 +0200

    Merge branch 'refactor/drcp-format' into testing

commit 6d83f56
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Fri Sep 26 10:25:55 2025 +0200

    refactor(drcp-format): Simplify parser further after removing chumsky

    Now the parser can immediately resolve atomics as well as intern
    identifiers.

commit 1fdf489e73b7b7a432fdc7ff8f97fe42e131926d
Merge: a86b475 d7885a6
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Fri Sep 26 09:50:50 2025 +0200

    Merge branch 'refactor/drcp-format' into testing

commit d7885a6
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Thu Sep 25 16:50:56 2025 +0200

    refactor(drcp-format): Rewrite the parser to remove chumsky

    Profiling shows that the chumsky parser is slow, especially
    the `Choice` combinator. A custom parser is much simpler and
    hopefully more performant.

commit 826fe58
Author: Imko Marijnissen <50290518+ImkoMarijnissen@users.noreply.github.com>
Date:   Thu Sep 25 18:08:23 2025 +0900

    feat: Allow unbounded integers (#285)

    We saw in the MiniZinc challenge that we were not able to solve
    instances where integers were unbounded; this PR aims to address this by
    creating "unbounded" integers as regular variables with some predefined
    bounds.

    The original idea was to make it `[i32::MIN, i32::MAX]`, but this led to
    overflows in affine views on these instances. For now, I have taken the
    bounds which are used by Chuffed, but any comments about this would be
    welcome!

    _Some small adjustments to the random splitter since it does not work
    well with extreme bounds at the moment_

commit d38e990
Author: Imko Marijnissen <50290518+ImkoMarijnissen@users.noreply.github.com>
Date:   Thu Sep 25 18:04:39 2025 +0900

    fix: Reduce cost of predicate notification (#259)

    One of the bottlenecks of the solver is the notification system; this PR
    proposes several changes to address this:
    1. Moving the traversal of the holes in the domains to only be done if
    they are being tracked
    2. Introducing a method which checks whether a tracker is fixed, and
    thus, cannot generate any more updates
    3. Rewrite the equality tracker for disequality predicates to be more
    efficient
    4. Introducing an `IndexMap` to keep track of the values so that, when
    we are inserting a new value, that we do not have to traverse the entire
    list

commit 4d419f7
Author: Imko Marijnissen <50290518+ImkoMarijnissen@users.noreply.github.com>
Date:   Thu Sep 18 21:06:41 2025 +0900

    chore: add debug bound to integer variable (#288)

commit bb2cca4
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Thu Sep 18 14:05:32 2025 +0200

    chore(pumpkin-solver-py): Fix the release process of the python library (#289)

commit bf7ff80
Author: Imko Marijnissen <50290518+ImkoMarijnissen@users.noreply.github.com>
Date:   Fri Sep 12 13:57:20 2025 +0900

    fix: Add pumpkin-crates to default-members (#286)

    `pumpkin-crates/*` was not part of the default members, meaning that
    **none** of the `--lib` tests were run (nor the doc tests).

    This PR addresses this by adding `pumpkin-crates/*` to the
    default-members and fixing the raised issues.

commit 8c7e010
Author: Imko Marijnissen <50290518+ImkoMarijnissen@users.noreply.github.com>
Date:   Thu Sep 11 22:32:33 2025 +0900

    refactor: Minimising and lifting the explanations for empty domains (#283)

    Currently, the explanations for empty domain explanations contain the
    explanation of the last-propagated predicate and the bounds at the time
    of that propagation of the domain which became empty.

    However, based on the predicate which was propagated, it is possible to
    simplify the explanation. In all cases, this reduces the number of added
    predicates from two to one while also allowing the possibility of
    lifting the explanation.

    On certain scheduling instances, this improved the number of nodes
    reached to find the same solution and it decreased the time to this same
    solution.

    ## TODO
    - [x] Profile on a larger benchmark set

    ## MiniZinc Score
    - Before Change: 172.42
    - After Change: 187.58

    ## Primal Integral
    - Before Change: 34.49
    - After Change: 32.92

commit 04739ff
Author: Konstantin Sidorov <133598581+k-sidorov@users.noreply.github.com>
Date:   Wed Sep 10 10:45:39 2025 +0100

    Big-M redefinition for `int_lin_le_reif` (#229)

    This PR proposes a reformulation that replaces reified ≤ constraints
    with two big-M linear constraints.

commit c27934b
Author: Imko Marijnissen <50290518+ImkoMarijnissen@users.noreply.github.com>
Date:   Tue Sep 9 19:13:16 2025 +0900

    refactor: Avoid unnecessary allocation in notifications (#281)

    Avoids the call to `.to_vec()` when calling
    `get_affected_propagator(..)`

commit 12af76e
Author: Imko Marijnissen <50290518+ImkoMarijnissen@users.noreply.github.com>
Date:   Mon Sep 1 16:57:24 2025 +0900

    docs: Update README (#279)

    Includes the following:
    - Fixing of links
    - Mentioning the bronze medal in the 2025 MiniZinc Challenge
    - Adding the publications that use Pumpkin

commit a5e4c2c
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Mon Aug 18 16:41:55 2025 +0200

    fix(pumpkin-solver): Only compile solution checkers for integration tests (#278)

    Don't compile the C binaries unnecessarily. If `NO_CHECKERS=true`
    is set, then the C binaries will not be compiled.

    This becomes evident when building python wheels for different
    platforms. The C programs can't be built on some of those.

commit 8f1c41c
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Mon Aug 18 15:40:48 2025 +0200

    chore: Remove unnecessary targets from python distribution

commit ad8318b
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Mon Aug 18 15:32:22 2025 +0200

    chore: Fix release workflow of python package

commit c195c2e
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Mon Aug 18 15:24:29 2025 +0200

    feat(pumpkin-solver-py): Setup publishing of the python interface (#277)

    This PR sets up the python interface for publishing to PyPi. It includes
    a workflow that builds the library for all platforms and uploads them to
    the package repository. For now that workflow is triggered manually, but
    in future it should be integrated into the publishing of the rest of the
    solver's packages.

commit 270c179
Author: Imko Marijnissen <50290518+ImkoMarijnissen@users.noreply.github.com>
Date:   Thu Aug 14 09:53:02 2025 +0100

    fix(pumpkin-solver): Pass  between pumpkin-solver and pumpkin-core (#276)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants