Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
diffn_util.h File Reference
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <limits>
#include <optional>
#include <string>
#include <string_view>
#include <tuple>
#include <utility>
#include <vector>
#include "absl/container/flat_hash_set.h"
#include "absl/container/inlined_vector.h"
#include "absl/log/check.h"
#include "absl/random/bit_gen_ref.h"
#include "absl/strings/str_format.h"
#include "absl/types/optional.h"
#include "absl/types/span.h"
#include "ortools/sat/integer_base.h"
#include "ortools/sat/scheduling_helpers.h"
#include "ortools/sat/util.h"
#include "ortools/util/saturated_arithmetic.h"
#include "ortools/util/strong_integers.h"

Go to the source code of this file.

Classes

struct  operations_research::sat::Rectangle
 
struct  operations_research::sat::IndexedInterval
 
struct  operations_research::sat::IndexedInterval::ComparatorByStartThenEndThenIndex
 
struct  operations_research::sat::IndexedInterval::ComparatorByStart
 
struct  operations_research::sat::ItemWithVariableSize
 
struct  operations_research::sat::ItemWithVariableSize::Interval
 
struct  operations_research::sat::PairwiseRestriction
 
class  operations_research::sat::CapacityProfile
 
struct  operations_research::sat::CapacityProfile::Rectangle
 
struct  operations_research::sat::RectangleInRange
 
class  operations_research::sat::ProbingRectangle
 
struct  operations_research::sat::FindRectanglesResult
 

Namespaces

namespace  operations_research
 In SWIG mode, we don't want anything besides these top-level includes.
 
namespace  operations_research::sat
 

Functions

double operations_research::sat::CenterToCenterL2Distance (const Rectangle &a, const Rectangle &b)
 Returns the L2 distance between the centers of the two rectangles.
 
double operations_research::sat::CenterToCenterLInfinityDistance (const Rectangle &a, const Rectangle &b)
 
CompactVectorVector< int > operations_research::sat::GetOverlappingRectangleComponents (absl::Span< const Rectangle > rectangles)
 
bool operations_research::sat::BoxesAreInEnergyConflict (absl::Span< const Rectangle > rectangles, absl::Span< const IntegerValue > energies, absl::Span< const int > boxes, Rectangle *conflict)
 
bool operations_research::sat::ReportEnergyConflict (Rectangle bounding_box, absl::Span< const int > boxes, SchedulingConstraintHelper *x, SchedulingConstraintHelper *y)
 
bool operations_research::sat::AnalyzeIntervals (bool transpose, absl::Span< const int > local_boxes, absl::Span< const Rectangle > rectangles, absl::Span< const IntegerValue > rectangle_energies, IntegerValue *x_threshold, IntegerValue *y_threshold, Rectangle *conflict)
 
absl::Span< int > operations_research::sat::FilterBoxesAndRandomize (absl::Span< const Rectangle > cached_rectangles, absl::Span< int > boxes, IntegerValue threshold_x, IntegerValue threshold_y, absl::BitGenRef random)
 
absl::Span< int > operations_research::sat::FilterBoxesThatAreTooLarge (absl::Span< const Rectangle > cached_rectangles, absl::Span< const IntegerValue > energies, absl::Span< int > boxes)
 
void operations_research::sat::ConstructOverlappingSets (absl::Span< IndexedInterval > intervals, CompactVectorVector< int > *result, absl::Span< const int > order)
 
void operations_research::sat::GetOverlappingIntervalComponents (std::vector< IndexedInterval > *intervals, std::vector< std::vector< int > > *components)
 
std::vector< int > operations_research::sat::GetIntervalArticulationPoints (std::vector< IndexedInterval > *intervals)
 
void operations_research::sat::AppendPairwiseRestrictions (absl::Span< const ItemWithVariableSize > items, std::vector< PairwiseRestriction > *result)
 
void operations_research::sat::AppendPairwiseRestrictions (absl::Span< const ItemWithVariableSize > items, absl::Span< const ItemWithVariableSize > other_items, std::vector< PairwiseRestriction > *result)
 
IntegerValue operations_research::sat::Smallest1DIntersection (IntegerValue range_min, IntegerValue range_max, IntegerValue size, IntegerValue interval_min, IntegerValue interval_max)
 
FindRectanglesResult operations_research::sat::FindRectanglesWithEnergyConflictMC (const std::vector< RectangleInRange > &intervals, absl::BitGenRef random, double temperature, double candidate_energy_usage_factor)
 
std::string operations_research::sat::RenderDot (std::optional< Rectangle > bb, absl::Span< const Rectangle > solution, std::string_view extra_dot_payload)
 
std::vector< Rectangleoperations_research::sat::FindEmptySpaces (const Rectangle &bounding_box, std::vector< Rectangle > ocupied_rectangles)
 
std::vector< Rectangleoperations_research::sat::PavedRegionDifference (std::vector< Rectangle > original_region, absl::Span< const Rectangle > area_to_remove)
 
bool operations_research::sat::RegionIncludesOther (absl::Span< const Rectangle > region, absl::Span< const Rectangle > other)
 The two regions must be defined by non-overlapping rectangles.
 
std::vector< std::pair< int, int > > operations_research::sat::FindPartialRectangleIntersections (absl::Span< const Rectangle > rectangles)
 
std::optional< std::pair< int, int > > operations_research::sat::FindOneIntersectionIfPresent (absl::Span< const Rectangle > rectangles)
 
std::optional< std::pair< int, int > > operations_research::sat::FindOneIntersectionIfPresentWithZeroArea (absl::Span< const Rectangle > rectangles)