{"id":21142085,"url":"https://github.com/limitedeternity/knapsack","last_synced_at":"2025-03-14T13:20:21.791Z","repository":{"id":234275056,"uuid":"788562767","full_name":"limitedeternity/knapsack","owner":"limitedeternity","description":"Просто рюкзаки. Разные: ограниченные и неограниченные","archived":false,"fork":false,"pushed_at":"2024-04-25T15:24:59.000Z","size":114,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-21T07:09:29.097Z","etag":null,"topics":["bounded-knapsack-problem","knapsack-problem","knapsack-solver","unbounded-knapsack"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/limitedeternity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-04-18T16:53:35.000Z","updated_at":"2024-04-25T15:21:20.000Z","dependencies_parsed_at":"2024-04-25T16:37:06.084Z","dependency_job_id":null,"html_url":"https://github.com/limitedeternity/knapsack","commit_stats":null,"previous_names":["limitedeternity/knapsack"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/limitedeternity%2Fknapsack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/limitedeternity%2Fknapsack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/limitedeternity%2Fknapsack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/limitedeternity%2Fknapsack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/limitedeternity","download_url":"https://codeload.github.com/limitedeternity/knapsack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243581058,"owners_count":20314167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bounded-knapsack-problem","knapsack-problem","knapsack-solver","unbounded-knapsack"],"created_at":"2024-11-20T07:41:55.903Z","updated_at":"2025-03-14T13:20:21.745Z","avatar_url":"https://github.com/limitedeternity.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# knapsack\n\u003e Просто рюкзаки. Разные: ограниченные и неограниченные\n\n## Cборка:\n\n1. Нужен Go 1.22\n\n2. Просто `go build`, и всё\n\n## Использование:\n\n```powershell\n❯ .\\knapsack.exe -h\nOptions:\n\n  -h, --help                 Display help information\n  -i, --items               *Yaml file with an array of items\n  -c, --capacity            *Knapsack capacity\n  -k, --knapsack[=bounded]   Knapsack type\n```\n\n* Через `-i` указывается путь до .yaml-файла со списком предметов, которые нужно попробовать впихнуть в рюкзак (см. [items.yaml](https://github.com/limitedeternity/knapsack/blob/master/items.yaml))\n\n* Через `-c` задаётся ёмкость рюкзака, в которую надо вписаться\n\n* Через `-k` можно указать, какой тип рюкзака использовать: ограниченный (`bounded`; по-умолчанию) или неограниченный (`unbounded`)\n\n## Схема items.yaml:\n\n* `item`: `string` (required; название предмета)\n\n* `weight`: `integer` (required; вес предмета)\n\n* `value` : `integer` (required; ценность предмета)\n\n* `pieces`: `integer` (optional; количество единиц предмета)\n\nПоле `pieces` нужно для ограниченного рюкзака, неограниченному на него всё равно.\nЕсли его не указать для ограниченного рюкзака, то поле примет значение по-умолчанию (`1`), и будет решаться задача про рюкзак 0/1.\n\n## Пример:\n\n```powershell\n❯ .\\knapsack.exe -i items.yaml -c 8\nTaking:\n+ 2m: 1\n+ 6m: 1\nTotal value: 22\nTotal weight: 8\n```\n\nДа, это Rod Cutting, самый первый тест-кейс.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flimitedeternity%2Fknapsack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flimitedeternity%2Fknapsack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flimitedeternity%2Fknapsack/lists"}