Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::sat::CompiledNoOverlap2dConstraint Class Reference

#include <constraint_violation.h>

Inheritance diagram for operations_research::sat::CompiledNoOverlap2dConstraint:
operations_research::sat::CompiledConstraintWithProto operations_research::sat::CompiledConstraint

Public Member Functions

 CompiledNoOverlap2dConstraint (const ConstraintProto &ct_proto, const CpModelProto &cp_model)
 
 ~CompiledNoOverlap2dConstraint () override=default
 
int64_t ComputeViolation (absl::Span< const int64_t > solution) override
 
- Public Member Functions inherited from operations_research::sat::CompiledConstraintWithProto
 CompiledConstraintWithProto (const ConstraintProto &ct_proto)
 --— CompiledConstraintWithProto --—
 
 ~CompiledConstraintWithProto () override=default
 
const ConstraintProto & ct_proto () const
 
std::vector< int > UsedVariables (const CpModelProto &model_proto) const final
 This just returns the variables used by the stored ct_proto_.
 
- Public Member Functions inherited from operations_research::sat::CompiledConstraint
 CompiledConstraint ()=default
 
virtual ~CompiledConstraint ()=default
 
void InitializeViolation (absl::Span< const int64_t > solution)
 Recomputes the violation of the constraint from scratch.
 
virtual void PerformMove (int var, int64_t old_value, absl::Span< const int64_t > solution_with_new_value)
 Updates the violation with the new value.
 
virtual int64_t ViolationDelta (int var, int64_t old_value, absl::Span< const int64_t > solution_with_new_value)
 Returns the delta if var changes from old_value to solution[var].
 
int64_t violation () const
 The cached violation of this constraint.
 

Additional Inherited Members

- Protected Member Functions inherited from operations_research::sat::CompiledConstraint
- Protected Attributes inherited from operations_research::sat::CompiledConstraint
int64_t violation_
 

Detailed Description

Definition at line 571 of file constraint_violation.h.

Constructor & Destructor Documentation

◆ CompiledNoOverlap2dConstraint()

operations_research::sat::CompiledNoOverlap2dConstraint::CompiledNoOverlap2dConstraint ( const ConstraintProto & ct_proto,
const CpModelProto & cp_model )
explicit

Definition at line 1231 of file constraint_violation.cc.

◆ ~CompiledNoOverlap2dConstraint()

operations_research::sat::CompiledNoOverlap2dConstraint::~CompiledNoOverlap2dConstraint ( )
overridedefault

Member Function Documentation

◆ ComputeViolation()

int64_t operations_research::sat::CompiledNoOverlap2dConstraint::ComputeViolation ( absl::Span< const int64_t > solution)
overridevirtual

Computes the violation of a constraint.

This is called by InitializeViolation() and also the default implementation of ViolationDelta().

Todo
(user): Experiment with violation += std::max(std::min(NoOverlapMinRepairDistance(x_i, x_j, solution), NoOverlapMinRepairDistance(y_i, y_j, solution)), int64_t{0}); Currently, the effect is unclear on 2d packing problems.

Implements operations_research::sat::CompiledConstraint.

Definition at line 1235 of file constraint_violation.cc.


The documentation for this class was generated from the following files: