knapsack_dynamic, a MATLAB code which uses dynamic programming to solve a knapsack problem.
All the problem data, weights, values, and knapsack capacity, must be integers.
The computer code and data files described and made available on this web page are distributed under the MIT license
knapsack_dynamic is available in a MATLAB version.
change_diophantine, a MATLAB code which sets up a Diophantine equation to solve the change making problem, which counts the number of ways a given sum can be formed using coins of various denominations.
change_dynamic, a MATLAB code which uses dynamic programming to solve the change making problem, which counts the number of ways a given sum can be formed using coins of various denominations.
change_greedy, a MATLAB code which uses the greedy method to seek a solution to the change making problem, which tries to match a given amount by selecting coins of various denominations.
change_polynomial, a MATLAB code which uses a polynomial multiplication algorithm to count the ways of making various sums using a given number of coins.
combination_lock, a MATLAB code which simulates the process of determining the secret combination of a lock.
combo, a MATLAB code which includes many combinatorial routines.
football_dynamic, a MATLAB code which uses dynamic programming to count the ways of achieving a given score in football.
knapsack_01_brute, a MATLAB code which uses brute force to solve small versions of the 0/1 knapsack problem;
knapsack_greedy, a MATLAB code which uses a greedy algorithm to estimate a solution to a knapsack problem;
mcnuggets, a MATLAB code which counts M(N), the number of ways a given number N of Chicken McNuggets can be assembled, given that they are only available in packages of 6, 9, and 20.
partition_brute, a MATLAB code which uses a brute force method to find solutions of the partition problem, in which a set of integers must be split into two subsets with equal sum.
partition_greedy, a MATLAB code which uses a greedy algorithm to seek a solution of the partition problem, in which a given set of integers is to be split into two groups whose sums are as close as possible.
satisfy_brute, a MATLAB code which uses brute force to find all assignments of values to a set of logical variables which make a complicated logical statement true.
subset, a MATLAB code which enumerates, generates, ranks and unranks combinatorial objects including combinations, partitions, subsets, index sets, and trees.
subset_sum, a MATLAB code which seeks solutions of the subset sum problem, in which it is desired to find a subset of a set of integers which has a given sum.
subset_sum_brute, a MATLAB code which uses brute force to solve the subset sum problem, to find a subset of a set of integers which has a given sum.
tsp_brute, a MATLAB code which is given a city-to-city distance table, and solves the traveling salesperson problem, using brute force.
tsp_descent, a MATLAB code which is given a city-to-city distance map, chooses an initial tour at random, and then tries simple variations, seeking to quickly find a tour of lower cost for the traveling salesperson problem (TSP).
tsp_greedy, a MATLAB code which is given a city-to-city distance table, and solves a small traveling salesperson problem (TSP) using the greedy algorithm. It picks a starting city at random, and then successively visits the nearest unvisited city.
tsp_random, a MATLAB code which is given a city-to-city distance table, seeks a solution of the Traveling Salesperson Problem (TSP), by randomly generating round trips that visit every city, returning the tour of shortest length.