partition_greedy


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

Licensing:

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

Languages:

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

Related Data and Programs:

partition_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.

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.

change_polynomial, an Octave code which uses a polynomial multiplication algorithm to count the ways of making various sums using a given number of coins.

combo, an Octave code which includes many combinatorial routines.

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 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.

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.

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 map, chooses an initial tour at random, and then tries a number of simple variations, seeking to quickly find a tour of lower cost.

tsp_greedy, an Octave code which reads a file of city-to-city distances, 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 reads a file of city-to-city distances, and then randomly samples a number of possible tours, to quickly seek a tour of lower length.

Reference:

  1. Alexander Dewdney,
    The Turing Omnibus,
    Freeman, 1989,
    ISBN13: 9780716781547,
    LC: QA76.D45.
  2. Brian Hayes,
    The Easiest Hard Problem,
    American Scientist,
    Volume 90, Number 2, March-April 2002, pages 113-117.
  3. Silvano Martello, Paolo Toth,
    Knapsack Problems: Algorithms and Computer Implementations,
    Wiley, 1990,
    ISBN: 0-471-92420-2,
    LC: QA267.7.M37.

Source Code:


Last revised on 16 October 2022.