Giter Club home page Giter Club logo

ok_projekt's Introduction

OK_Projekt

Solver for multiple Knapsack Problem variants

Status

project in development

Done so far

  • Brute Force Methods
  • Primitive Branch and Bound Methods
  • Greedy algorithms
  • Dynamic Programming
  • measure calculation time
  • json format support

To Do

  • Heuristics
  • Multi threading
  • GPU support

Problems

  • Multi dimentional knapsack problem, but items are given as a graph, where each vertex in the graph is an item to pack. The problem is to find either path, cycle or tree in this graph, that fits in the knapsack and has maximum value.
  • Knapsack Problem
  • Multi Dimentional Knapsack Problem

Using

Requirements

  • C++17 standard or more recent

ok_projekt's People

Contributors

pwalig avatar

Watchers

 avatar

ok_projekt's Issues

Random Fit and Frist Fit

Take Greedy algorithm as a base.
For random fit: sort items randomly.
For First fit: dont sort the items.

Requires extending GetSortedItemIds() method in class Problem.

True Iterative Brute Force

Implement true iterative Brute Force.
Name the fuction IterativeBruteForce.
Rename old brute force to some BranchAndBound

Batch-generate-solve-forget

this should NOT save problem files to disc. Generate one problem, solve it, (optionally save solution), repeat.

Document Functions in Wiki

Add pages for each solving function.
Lay out theory: sources, complexity, result, error margin.
Paste code.
Provide example.
Explain arguments.

True DFS Brute Force

Implement true DFS Brute force.
It should first reach full depth and then check value of the solution it came up with.
For non full depth calls it should return better solution of all sub calls.
Name function DFSBruteForce
Rename old Brute force to some BranchAndBound

Cross Algorithm cross problem variant validation

Solve one problem in each variant with every algorithm and check if for example brute force gives better results than greedy or if solutions for path variant are better than for cycle variant.

Average solve time and quality

In Batch Solve output additional .json file with average solve time and quality.
And average found max_value and remaining spaces.

Greedy Floyd

Implement Greedyfied version of Floyd Approximation Algorithm.

Continuous knapsack problem

Add method for solving continuous knapsack problem.
And use it as a bounding method in branch and bound algorithm.

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.