2017 © Pedro Peláez
 

library partition

image

mikegarde/partition

  • Tuesday, May 8, 2018
  • by MikeGarde
  • Repository
  • 1 Watchers
  • 0 Stars
  • 753 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 301 % Grown

The README.md

The Partition Problem

Packagist Packagist GitHub PHP from Travis config GitHub code size in bytes Travis (.org), (*1)

A PHP function to partition a set of values into equal sets or near equal sets (partitions). Read more about the partition problem on wikipedia., (*2)

Installing

Find on packagist.org, (*3)

composer require mikegarde/partition, (*4)

Example

<?php

require 'vendor/autoload.php';

use partition\partition;

$data = [
    [
        'id'    => 'A',
        'value' => 5,
    ],
    [
        'id'    => 'B',
        'value' => 5,
    ],
    [
        'id'    => 'C',
        'value' => 15,
    ],
    [
        'id'    => 'D',
        'value' => 5,
    ],
    [
        'id'    => 'E',
        'value' => 9,
    ],
    [
        'id'    => 'F',
        'value' => 3,
    ],
    [
        'id'    => 'G',
        'value' => 7,
    ],
    [
        'id'    => 'H',
        'value' => 12,
    ],
];

$partition = new partition($data, 4);
$partition->process();

$results = $partition->getResults();
$part    = $partition->getPartition(0);

A JSON representation of $results and $part, (*5)

{
  "summary": [
    15,
    17,
    14,
    15
  ],
  "partitions": [
    [
      {
        "id": "C",
        "value": 15
      }
    ],
    [
      {
        "id": "H",
        "value": 12
      },
      {
        "id": "D",
        "value": 5
      }
    ],
    [
      {
        "id": "E",
        "value": 9
      },
      {
        "id": "B",
        "value": 5
      }
    ],
    [
      {
        "id": "G",
        "value": 7
      },
      {
        "id": "A",
        "value": 5
      },
      {
        "id": "F",
        "value": 3
      }
    ]
  ]
}
[
  {
    "id": "C",
    "value": 15
  }
]

TODO:

  • [ ] Replace dusank/knapsack with a custom implementation
  • [ ] Move/Duplicate to GitHub Actions

The Versions

08/05 2018

dev-master

9999999-dev

  Sources   Download

GPL-3.0

The Requires

 

The Development Requires

by Mike Garde

08/05 2018

v0.2.0

0.2.0.0

  Sources   Download

GPL-3.0

The Requires

 

The Development Requires

by Mike Garde

04/05 2018

v0.1.3

0.1.3.0

  Sources   Download

GPL-3.0

The Requires

 

The Development Requires

by Mike Garde

30/04 2018

v0.1.2

0.1.2.0

  Sources   Download

GPL-3.0

The Requires

 

The Development Requires

by Mike Garde

17/04 2018

v0.1.1

0.1.1.0

  Sources   Download

GPL-3.0

The Requires

 

The Development Requires

by Mike Garde

03/04 2018

v0.1.0

0.1.0.0

  Sources   Download

GPL-3.0

The Requires

 

The Development Requires

by Mike Garde