GithubHelp home page GithubHelp logo

limitedeternity / knapsack Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 114 KB

Просто рюкзаки. Разные: ограниченные и неограниченные

License: MIT License

Go 100.00%
bounded-knapsack-problem knapsack-problem unbounded-knapsack knapsack-solver

knapsack's Introduction

knapsack

Просто рюкзаки. Разные: ограниченные и неограниченные

Cборка:

  1. Нужен Go 1.22

  2. Просто go build, и всё

Использование:

❯ .\knapsack.exe -h
Options:

  -h, --help                 Display help information
  -i, --items               *Yaml file with an array of items
  -c, --capacity            *Knapsack capacity
  -k, --knapsack[=bounded]   Knapsack type
  • Через -i указывается путь до .yaml-файла со списком предметов, которые нужно попробовать впихнуть в рюкзак (см. items.yaml)

  • Через -c задаётся ёмкость рюкзака, в которую надо вписаться

  • Через -k можно указать, какой тип рюкзака использовать: ограниченный (bounded; по-умолчанию) или неограниченный (unbounded)

Схема items.yaml:

  • item: string (required; название предмета)

  • weight: integer (required; вес предмета)

  • value : integer (required; ценность предмета)

  • pieces: integer (optional; количество единиц предмета)

Поле pieces нужно для ограниченного рюкзака, неограниченному на него всё равно. Если его не указать для ограниченного рюкзака, то поле примет значение по-умолчанию (1), и будет решаться задача про рюкзак 0/1.

Пример:

❯ .\knapsack.exe -i items.yaml -c 8
Taking:
+ 2m: 1
+ 6m: 1
Total value: 22
Total weight: 8

Да, это Rod Cutting, самый первый тест-кейс.

knapsack's People

Contributors

limitedeternity avatar

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.