Skip to content

0.7.0

Latest

Choose a tag to compare

@arcondello arcondello released this 11 May 17:45
· 3 commits to main since this release

New Features

  • Make C++ BufferIterator always shaped.
  • Implicit sum constraints added to NumberNode.
    • Users may define a sum constraint over the entire array or along
      an single axis.
    • Enabled at the Python level for BinaryVariable and
      IntegerVariable. See #216.
    • Added NumberNode::sum_constraints() (returns sum constraint).
    • Added NumberNode::sum_constraints_lhs() (returns
      state-dependent sums associated with sum constraint).
    • Modified NumberNode::exchange() to accept optional slice
      arguments.
    • Modified NumberNode::clip_and_set_value() to accept optional
      slice argument.
    • Modified IntegerNode::set_value() to accept optional slice
      argument.
    • Modified BinaryNode::flip() to accept optional slice argument.
  • BinaryNode optionally tracks indices with buffer value 1 and 0.
    • Enabled when users define a sum constraint.
    • Added BinaryNode::num_true() (return # of indices with buffer
      value 1 in slice given sum constraint).
    • Added BinaryNode::num_false() (return # of indices with
      buffer value 0 in slice given sum constraint).
    • Added BinaryNode::ith_true_index() (returns ith index with
      buffer value 1 in slice given sum constraint).
    • Added BinaryNode::ith_false_index() (returns ith index with
      buffer value 0 in slice given sum constraint).
  • Add three methods to the model returned by the job-shop scheduling
    model generator: model.get_global_task_ordering(),
    model.get_start_times(), and model.get_end_times().

Upgrade Notes

  • Drop support for contiguous C++ BufferIterator. This means that
    one must always provide a shape and strides argument when
    constructing the iterator.
  • Change Array::view to use std::default_sentinel. This means
    Array::view is no longer a std::common_range.
  • Drop the Array::View type declaration.
  • Update job-shop scheduling generator to use a list variable for the
    global ordering of all tasks from which the model constructs a
    feasible schedule.

Deprecation Notes

  • Remove NumberNode and BinaryNode random state initialization.
  • Remove mutate methods set() and unset() from BinaryNode.

Bug Fixes

  • Add missing includes to dwave-optimization/functional.hpp