Project

General

Profile

Task #4802

[solver][constraint] создание Constraint без указания variables

Added by Sergey Smolov about 6 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Andrei Tatarnikov
Category:
-
Target version:
Start date:
03/31/2014
Due date:
% Done:

100%

Estimated time:
Detected in build:
svn
Published in build:
140915

Description

При создании объекта Constraint с помощью вызова метода ConstraintBuilder.build() требуется подать на вход билдеру Node-выражение (с помощью метода setInnerRep) и набор деклараций переменных (с помощью методов addVariable\addVariables). Это не всегда удобно и, отчасти, избыточно, т.к. информация об используемых переменных уже, по сути, хранится в объектах класса Node.

Предлагаю реализовать создание Constraint с возможностью не указывать переменные. Т.е. если билдеру не дали ни одной переменной, то он должен выполнить обход Formulas и достать оттуда декларации переменных самостоятельно.

History

#1

Updated by Sergey Smolov about 6 years ago

  • Subject changed from создание Constraint без указания variables to [solver][constraint] создание Constraint без указания variables
#2

Updated by Andrei Tatarnikov almost 6 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Возможность реализована в r538. В Formulas добавлен метод getVariables, позволяющий получить список всех переменных, используемых формулами. A в ConstraintBuilder добавлен метод addVariables, который позволяет добавить полученные переменные в сигнатуру ограничения.

#3

Updated by Sergey Smolov almost 6 years ago

  • Status changed from Resolved to Verified

Добавил в проект jUnit-тест ru.ispras.fortress.solver.NoVariableDeclarationTestCase, проверяющий описанную функциональность.
Тест проходит.

#4

Updated by Andrei Tatarnikov over 5 years ago

  • Status changed from Verified to Closed
  • Published in build set to 140915

Also available in: Atom PDF