Gecode / Gecode/gecode

Try moving the decomposition of the MiniZinc `gecode_cumulatives` constraint into MiniZinc

Open
#81 0 comments 0 reactions 0 assignees View on GitHub
good first issue help wanted
Dominant language
C++
Stars
335
Forks
88
Avg merge
1h 28m
Merged PRs (30d)
1

Description

The [`gecode_cumulatives`](https://github.com/Gecode/gecode/blob/develop/gecode/flatzinc/mznlib/fzn_cumulative.mzn#L40) MiniZinc constraint is used for implementing `fzn_cumulative`. The [registry post function](https://github.com/Gecode/gecode/blob/87a464b9d7d67616c1b4c6b98600d38a782d014b/gecode/flatzinc/registry.cpp#L1210) does a lot of inspection of the arguments, posting different variants of the constraint.

This requires first fixing #80 so that the relevant Gecode scheduling constraints are available in MiniZinc.

One potential benefit of this, is that the required `start[i] + duration[i] = end[i]` constraints would be available for common subexpression elimination for MiniZinc.

Contributor guide

No contributing guide indexed for this repository

Research direction

First resolve #80 so the relevant Gecode scheduling constraints are available in MiniZinc. Then compare the decomposition in fzn_cumulative.mzn with the argument inspection and variant posting in gecode/flatzinc/registry.cpp; done means the decomposition is moved into MiniZinc and the start-plus-duration constraints are available for common subexpression elimination.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.