Skip to content

Commit

Permalink
Symbolic bound tightening over absolute values (#251)
Browse files Browse the repository at this point in the history
* test

* basic interval artihmetic bound propagation

* another test case

* initialize an SBT within the NLR. Pass topology, weights and biases

* wip

* SBT functionality into NLR

* wip

* bug fix

* cleanup

* cleanup

* wip

* handle eliminated relus

* cleanup: remove symbolic bound tightener

* oops

* additional cleanup

* oops

* first unit test

* unit tests for NLR

* basic support for symbolic bound propagations over ABS constraints

* unit test - evalue abs + relus

* a test for interval bound propagation, for abs constraints

* unit tests, and some consequent corrections, to AbsConstraint SBT

* set lblb to 0 for both Relu and Abs

* always initialize the scalar to 0 by default

* consistency

* oops

Co-authored-by: Guy Katz <guykatz@cs.huji.ac.il>
  • Loading branch information
guykatzz and GuyKatzHuji authored Apr 27, 2020
1 parent 61cd41c commit db0593d
Show file tree
Hide file tree
Showing 6 changed files with 745 additions and 117 deletions.
4 changes: 3 additions & 1 deletion src/engine/AbsoluteValueConstraint.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -259,8 +259,10 @@ PiecewiseLinearCaseSplit AbsoluteValueConstraint::getValidCaseSplit() const
return getNegativeSplit();
}

void AbsoluteValueConstraint::eliminateVariable( unsigned /* variable */, double /* fixedValue */ )
void AbsoluteValueConstraint::eliminateVariable( unsigned variable, double /* fixedValue */ )
{
ASSERT( variable = _b );

// In an absolute value constraint, if a variable is removed the
// entire constraint can be discarded
_haveEliminatedVariables = true;
Expand Down
6 changes: 4 additions & 2 deletions src/engine/Equation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,14 @@ bool Equation::Addend::operator==( const Addend &other ) const
}

Equation::Equation()
: _type( Equation::EQ )
: _scalar( 0 )
, _type( Equation::EQ )
{
}

Equation::Equation( EquationType type )
: _type( type )
: _scalar( 0 )
, _type( type )
{
}

Expand Down
Loading

0 comments on commit db0593d

Please sign in to comment.