perf: Node unlinking in Constraint Streams when it can be determined a constraint can never fire.
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
The issue names no files or tests. Start by tracing the Constraint Streams implementation for root-node emptiness and constraint weighting; done means impossible constraints stop evaluating expensive joins and the disabled constraints are reported, potentially through logs.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Consider the following constraint:
constraintFactory.forEach(Rule.class)
.join(Shift.class, Joiners.equal(Shift::getRuleProperty, Rule::getProperty))
.penalize(HardSoftScore.ONE_HARD)
.asConstraint("Rule violated");
Assume Shift::getRuleProperty is an expensive method to evaluate.
If a problem has no Rule instances, this constraint can never fire, since one side of the join is empty.
However, Shift::getRuleProperty is pointless re-evaluated whenever a Shift changes.
If we can detect if a root node (precompute and forEach variants) is empty, we can disable all constraints (set their weight to 0) that can never fire.
When a constraint is disabled this way, it should be reported somewhere, potentially in the logs.
- Lenguaje dominante
- Java
- Estrellas
- 1.8k
- Forks
- 238
- Merge medio
- 3 d 2 h
- PR fusionados (30 d)
- 59
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TimefoldAI/timefold-solver
-
component/docs
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
TimefoldAI/timefold-solver#2671 ·
Los mantenedores suelen responder en 1 día
-
Swap move selector applies entity value range filtering to entity classes without entity-level rangesPosiblemente ocupada @zepfred la tomó hoy. Abiertoprocess/needs triage
TimefoldAI/timefold-solver#2761 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
SDK: Waypoints class has not OpenAPI Spec annotations.Posiblemente ocupada @TomCools la tomó hoy. Abiertocomponent/service
TimefoldAI/timefold-solver#2759 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
process/needs triage
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
TimefoldAI/timefold-solver#2755 ·
Los mantenedores suelen responder en 1 día
-
fix: Partitioned Search error with list variablesPosiblemente ocupada @zepfred la tomó hace 2 días. Abiertoprocess/needs triage
TimefoldAI/timefold-solver#2749 · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de TimefoldAI/timefold-solver
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
MCModderAnchor/TACZ#758 ·
-
agent-java community triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
elastic/apm-agent-java#4594 ·
Los mantenedores suelen responder en 1 día
-
area/plugin good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
kestra-io/plugin-soda#137 ·
-
area/plugin good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
kestra-io/plugin-aws#816 ·
Los mantenedores suelen responder en 2 días
-
area/plugin good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
kestra-io/plugin-kestra#200 ·
Los mantenedores suelen responder en 1 día