change_greedy


change_greedy, an Octave 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.

If there is a coin of value 1, then there is always at least one solution to the change making problem.

If the coin denominations are ``canonical'', then the greedy method is always guaranteed to come up with a solution, and this solution will involve the fewest possible number of coins.

If the coin denominations are not canonical, then the greedy method may return a solution which does not use the minimum number of coins, or it may fail to find a correct solution at all.

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

change_greedy is available in a MATLAB version and an Octave version and a Python version.

Related Data and Programs:

change_greedy_test

change_diophantine, an Octave 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, an Octave 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.

combo, an Octave code which includes many combinatorial routines.

football_dynamic, an Octave code which uses dynamic programming to count the ways of achieving a given score in football.

knapsack_greedy, an Octave code which uses a greedy algorithm to estimate a solution of the knapsack problem;

mcnuggets, an Octave 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, an Octave code which uses brute force to seek solutions of the partition problem, splitting a set of integers into two subsets with equal sum.

satisfy, an Octave code which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem.

subset, an Octave code which enumerates, generates, ranks and unranks combinatorial objects including combinations, partitions, subsets, index sets, and trees.

subset_sum, an Octave 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, an Octave 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, an Octave code which reads a file of city-to-city distances and solves the traveling salesperson problem, using brute force.

tsp_descent, an Octave code which is given a city-to-city distance table, 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, an Octave 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, an Octave 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.

Source Code:


Last revised on 19 October 2022.