Giter Site home page Giter Site logo

dwave-examples / knapsack Goto Github PK

View Code? Open in Web Editor NEW
33.0 5.0 38.0 126 KB

Implementation of knapsack problem, set up for scaling to large problem size

License: Apache License 2.0

Python 100.00%
hybrid-solution constraint-satisfaction-problem cqm beginner

knapsack's People

Contributors

arcondello avatar hemantdwave avatar joelgdwave avatar joelpasvolsky avatar m3ller avatar randomir avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

knapsack's Issues

Improve code explanation

The readme can be improved with:

  • explanation on Lucas' equations
  • images of Lucas' equations
  • obey column 80

The idea is to get this demo's explanation to work better as a standalone (rather than needing a user to go and read a paper)

Use the proper function for the knapsack inequality constraint

currently, the way the inequality constraint is built is very involved. The code can be simplified significantly by using .add_linear_inequality_constraint.

If the goal is to teach users how to work with slack variables, using a higher-level function is not needed. However, more users can expand this example to an application, if it's simplified.

Correct README

According to this paper, https://arxiv.org/pdf/1302.5843.pdf, a constraint is used to make sure only one value of y equals one.

\sum_i y_i = 1

However, in the code, another implementation is used in which a logarithmic number of binary variables are used to create values between 1-N. Any combination is feasible.

Test failures: ExactSolver doesn't expect 'label' argument

A couple of the examples use the ExactSolver in tests (it's passed in as the sampler). The ExactSolver does not take in any keyword arguments, so passing in 'label' causes the test to fail with TypeError: sample() got an unexpected keyword argument 'label'.

I'm wondering if we should update the ExactSolver to just swallow keyword arguments. Or if this is considered bad practice, in which case we just need to modify a few examples including this one.

Improve readme

Reformat the ReadMe so it's consistent with the other code examples (add Problem Formulation section)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.