@stamhoofd/structures 2.84.1 → 2.84.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/BundleDiscount.d.ts +1 -1
- package/dist/src/BundleDiscount.d.ts.map +1 -1
- package/dist/src/BundleDiscount.js +5 -48
- package/dist/src/BundleDiscount.js.map +1 -1
- package/dist/src/helpers/calculateHungarianAlgorithm.d.ts +7 -0
- package/dist/src/helpers/calculateHungarianAlgorithm.d.ts.map +1 -0
- package/dist/src/helpers/calculateHungarianAlgorithm.js +85 -0
- package/dist/src/helpers/calculateHungarianAlgorithm.js.map +1 -0
- package/dist/src/helpers/calculateHungarianAlgorithm.test.d.ts +2 -0
- package/dist/src/helpers/calculateHungarianAlgorithm.test.d.ts.map +1 -0
- package/dist/src/helpers/calculateHungarianAlgorithm.test.js +291 -0
- package/dist/src/helpers/calculateHungarianAlgorithm.test.js.map +1 -0
- package/esm/dist/src/BundleDiscount.d.ts +1 -1
- package/esm/dist/src/BundleDiscount.d.ts.map +1 -1
- package/esm/dist/src/BundleDiscount.js +5 -48
- package/esm/dist/src/BundleDiscount.js.map +1 -1
- package/esm/dist/src/helpers/calculateHungarianAlgorithm.d.ts +7 -0
- package/esm/dist/src/helpers/calculateHungarianAlgorithm.d.ts.map +1 -0
- package/esm/dist/src/helpers/calculateHungarianAlgorithm.js +82 -0
- package/esm/dist/src/helpers/calculateHungarianAlgorithm.js.map +1 -0
- package/package.json +2 -2
|
@@ -3,9 +3,9 @@ import { Group } from './Group.js';
|
|
|
3
3
|
import { GroupPriceDiscount } from './GroupPriceDiscount.js';
|
|
4
4
|
import { type RegisterCart } from './members/checkout/RegisterCart.js';
|
|
5
5
|
import { RegisterItem } from './members/checkout/RegisterItem.js';
|
|
6
|
+
import { RegistrationWithPlatformMember } from './members/checkout/RegistrationWithPlatformMember.js';
|
|
6
7
|
import { type PlatformMember } from './members/PlatformMember.js';
|
|
7
8
|
import { TranslatedString } from './TranslatedString.js';
|
|
8
|
-
import { RegistrationWithPlatformMember } from './members/checkout/RegistrationWithPlatformMember.js';
|
|
9
9
|
export declare class BundleDiscount extends AutoEncoder {
|
|
10
10
|
id: string;
|
|
11
11
|
name: TranslatedString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BundleDiscount.d.ts","sourceRoot":"","sources":["../../src/BundleDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAwC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"BundleDiscount.d.ts","sourceRoot":"","sources":["../../src/BundleDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAG9G,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,cAAe,SAAQ,WAAW;IAE3C,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,mBAA4B;IAGhC,SAAS,EAAE,kBAAkB,EAAE,CAAM;IAErC;;OAEG;IAEH,gBAAgB,UAAS;IAEzB;;;OAGG;IAEH,aAAa,UAAS;IAEtB,IAAI,gBAAgB,WASnB;IAED,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE;IAkBtD,IAAI,aAAa,WAEhB;IAED,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAyD7D,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;CAalE;AAED,cAAM,8BAA8B;IAChC,MAAM,EAAE,cAAc,CAAC;IAEvB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAa;gBAErD,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;KAC1B;IAID,SAAS;IAMT,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;CAqC9G;AAED,qBAAa,yBAAyB;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;OAGG;IACH,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,aAAa,EAAE,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IAE3D;;MAEE;IACF,mBAAmB,EAAE,8BAA8B,EAAE,CAAC;gBAE1C,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;KAClC;IAUD,IAAI,IAAI,WAWP;IAED;;MAEE;IACF,IAAI,KAAK,WAGR;IAED,IAAI,mBAAmB,WAUtB;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,gBAAgB,WASnB;IAED,IAAI,cAAc,WAEjB;IAED,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAU/D,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAWxE,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IASvD,MAAM,CAAC,YAAY,EAAE,8BAA8B;IAInD,IAAI,qBAAqB,sDAqCxB;IAED,SAAS;CA4CZ"}
|
|
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BundleDiscountCalculation = exports.BundleDiscount = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const simple_encoding_1 = require("@simonbackx/simple-encoding");
|
|
6
|
+
const utility_1 = require("@stamhoofd/utility");
|
|
7
|
+
const uuid_1 = require("uuid");
|
|
6
8
|
const GroupPriceDiscount_js_1 = require("./GroupPriceDiscount.js");
|
|
9
|
+
const calculateHungarianAlgorithm_js_1 = require("./helpers/calculateHungarianAlgorithm.js");
|
|
7
10
|
const RegisterItem_js_1 = require("./members/checkout/RegisterItem.js");
|
|
8
|
-
const uuid_1 = require("uuid");
|
|
9
|
-
const TranslatedString_js_1 = require("./TranslatedString.js");
|
|
10
11
|
const RegistrationWithPlatformMember_js_1 = require("./members/checkout/RegistrationWithPlatformMember.js");
|
|
11
|
-
const
|
|
12
|
+
const TranslatedString_js_1 = require("./TranslatedString.js");
|
|
12
13
|
class BundleDiscount extends simple_encoding_1.AutoEncoder {
|
|
13
14
|
constructor() {
|
|
14
15
|
super(...arguments);
|
|
@@ -318,7 +319,7 @@ class BundleDiscountCalculation {
|
|
|
318
319
|
}
|
|
319
320
|
priceMatrix.push(row);
|
|
320
321
|
}
|
|
321
|
-
const solved =
|
|
322
|
+
const solved = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(priceMatrix);
|
|
322
323
|
for (const [index, item] of arr.entries()) {
|
|
323
324
|
const nth = solved[index];
|
|
324
325
|
const discount = priceMatrix[index][nth];
|
|
@@ -332,48 +333,4 @@ class BundleDiscountCalculation {
|
|
|
332
333
|
}
|
|
333
334
|
}
|
|
334
335
|
exports.BundleDiscountCalculation = BundleDiscountCalculation;
|
|
335
|
-
/**
|
|
336
|
-
* Optimized algorithm to maximize the total discount
|
|
337
|
-
* Returns an array where each index corresponds to the nth discount for each item
|
|
338
|
-
* @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
|
|
339
|
-
*/
|
|
340
|
-
function hungarian(priceMatrix) {
|
|
341
|
-
// No items to process
|
|
342
|
-
if (priceMatrix.length === 0) {
|
|
343
|
-
return [];
|
|
344
|
-
}
|
|
345
|
-
const n = priceMatrix.length;
|
|
346
|
-
const assignment = new Array(n).fill(0);
|
|
347
|
-
// Pre-calculate max discounts for each item to avoid repeated calculations
|
|
348
|
-
const itemMaxDiscounts = [];
|
|
349
|
-
for (let i = 0; i < n; i++) {
|
|
350
|
-
// Find max discount (skip position 0)
|
|
351
|
-
let maxDiscount = 0;
|
|
352
|
-
for (let j = 1; j < priceMatrix[i].length; j++) {
|
|
353
|
-
maxDiscount = Math.max(maxDiscount, priceMatrix[i][j]);
|
|
354
|
-
}
|
|
355
|
-
itemMaxDiscounts.push({ index: i, maxDiscount });
|
|
356
|
-
}
|
|
357
|
-
// Sort indices by their maximum potential discount (descending)
|
|
358
|
-
itemMaxDiscounts.sort((a, b) => b.maxDiscount - a.maxDiscount);
|
|
359
|
-
// Track assigned positions
|
|
360
|
-
const assigned = new Set();
|
|
361
|
-
// For each item (in order of maximum discount potential)
|
|
362
|
-
for (const { index: i } of itemMaxDiscounts) {
|
|
363
|
-
let bestPos = 0;
|
|
364
|
-
let bestDiscount = priceMatrix[i][0];
|
|
365
|
-
// Find the best unassigned position for this item
|
|
366
|
-
for (let j = 1; j < priceMatrix[i].length; j++) {
|
|
367
|
-
if (!assigned.has(j) && priceMatrix[i][j] > bestDiscount) {
|
|
368
|
-
bestPos = j;
|
|
369
|
-
bestDiscount = priceMatrix[i][j];
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
assignment[i] = bestPos;
|
|
373
|
-
if (bestPos !== 0) {
|
|
374
|
-
assigned.add(bestPos);
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
return assignment;
|
|
378
|
-
}
|
|
379
336
|
//# sourceMappingURL=BundleDiscount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BundleDiscount.js","sourceRoot":"","sources":["../../src/BundleDiscount.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BundleDiscount.js","sourceRoot":"","sources":["../../src/BundleDiscount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optimized algorithm to maximize the total discount
|
|
3
|
+
* Returns an array where each index corresponds to the nth discount for each item
|
|
4
|
+
* @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
|
|
5
|
+
*/
|
|
6
|
+
export declare function calculateHungarianAlgorithm(priceMatrix: number[][]): number[];
|
|
7
|
+
//# sourceMappingURL=calculateHungarianAlgorithm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateHungarianAlgorithm.d.ts","sourceRoot":"","sources":["../../../src/helpers/calculateHungarianAlgorithm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAyF7E"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateHungarianAlgorithm = calculateHungarianAlgorithm;
|
|
4
|
+
/**
|
|
5
|
+
* Optimized algorithm to maximize the total discount
|
|
6
|
+
* Returns an array where each index corresponds to the nth discount for each item
|
|
7
|
+
* @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
|
|
8
|
+
*/
|
|
9
|
+
function calculateHungarianAlgorithm(priceMatrix) {
|
|
10
|
+
// No items to process
|
|
11
|
+
if (priceMatrix.length === 0) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
if (priceMatrix.length > 500) {
|
|
15
|
+
throw new Error('Too many items to process. Maximum is 500.');
|
|
16
|
+
}
|
|
17
|
+
// Convert to cost minimization problem by negating values (since we want to maximize discount)
|
|
18
|
+
const C = priceMatrix.map(row => row.map(val => -val));
|
|
19
|
+
const J = C.length; // height of the cost matrix
|
|
20
|
+
const W = C[0].length; // width of the cost matrix
|
|
21
|
+
if (J > W) {
|
|
22
|
+
throw new Error('Number of items cannot exceed number of positions');
|
|
23
|
+
}
|
|
24
|
+
// job[w] = job assigned to w-th worker, or -1 if no job assigned
|
|
25
|
+
// note: a W-th worker was added for convenience
|
|
26
|
+
const job = new Array(W + 1).fill(-1);
|
|
27
|
+
const ys = new Array(J).fill(0);
|
|
28
|
+
const yt = new Array(W + 1).fill(0); // potentials
|
|
29
|
+
const inf = Number.MAX_SAFE_INTEGER;
|
|
30
|
+
for (let jCur = 0; jCur < J; ++jCur) { // assign jCur-th job
|
|
31
|
+
let wCur = W;
|
|
32
|
+
job[wCur] = jCur;
|
|
33
|
+
// min reduced cost over edges from Z to worker w
|
|
34
|
+
const minTo = new Array(W + 1).fill(inf);
|
|
35
|
+
const prev = new Array(W + 1).fill(-1); // previous worker on alternating path
|
|
36
|
+
const inZ = new Array(W + 1).fill(false); // whether worker is in Z
|
|
37
|
+
while (job[wCur] !== -1) { // runs at most jCur + 1 times
|
|
38
|
+
inZ[wCur] = true;
|
|
39
|
+
const j = job[wCur];
|
|
40
|
+
let delta = inf;
|
|
41
|
+
let wNext = 0;
|
|
42
|
+
for (let w = 0; w < W; ++w) {
|
|
43
|
+
if (!inZ[w]) {
|
|
44
|
+
const q = C[j][w] - ys[j] - yt[w];
|
|
45
|
+
if (q < minTo[w]) {
|
|
46
|
+
minTo[w] = q;
|
|
47
|
+
prev[w] = wCur;
|
|
48
|
+
}
|
|
49
|
+
if (minTo[w] < delta) {
|
|
50
|
+
delta = minTo[w];
|
|
51
|
+
wNext = w;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// delta will always be nonnegative,
|
|
56
|
+
// except possibly during the first time this loop runs
|
|
57
|
+
// if any entries of C[jCur] are negative
|
|
58
|
+
for (let w = 0; w <= W; ++w) {
|
|
59
|
+
if (inZ[w]) {
|
|
60
|
+
ys[job[w]] += delta;
|
|
61
|
+
yt[w] -= delta;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
minTo[w] -= delta;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
wCur = wNext;
|
|
68
|
+
}
|
|
69
|
+
// update assignments along alternating path
|
|
70
|
+
let w;
|
|
71
|
+
for (; wCur !== W; wCur = w) {
|
|
72
|
+
w = prev[wCur];
|
|
73
|
+
job[wCur] = job[w];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Extract assignment indices for each job
|
|
77
|
+
const result = new Array(J);
|
|
78
|
+
for (let w = 0; w < W; ++w) {
|
|
79
|
+
if (job[w] !== -1) {
|
|
80
|
+
result[job[w]] = w;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=calculateHungarianAlgorithm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateHungarianAlgorithm.js","sourceRoot":"","sources":["../../../src/helpers/calculateHungarianAlgorithm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateHungarianAlgorithm.test.d.ts","sourceRoot":"","sources":["../../../src/helpers/calculateHungarianAlgorithm.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const calculateHungarianAlgorithm_js_1 = require("./calculateHungarianAlgorithm.js");
|
|
4
|
+
function test(matrix, expectedIndexes) {
|
|
5
|
+
const result = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix);
|
|
6
|
+
expect(result).toEqual(expectedIndexes);
|
|
7
|
+
}
|
|
8
|
+
function testOptimalSum(matrix) {
|
|
9
|
+
const result = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix);
|
|
10
|
+
// Verify result has correct length
|
|
11
|
+
expect(result).toHaveLength(matrix.length);
|
|
12
|
+
// Verify each index is used exactly once
|
|
13
|
+
const uniqueIndexes = new Set(result);
|
|
14
|
+
expect(uniqueIndexes.size).toBe(result.length);
|
|
15
|
+
// Verify all indexes are valid
|
|
16
|
+
result.forEach((colIndex, rowIndex) => {
|
|
17
|
+
expect(colIndex).toBeGreaterThanOrEqual(0);
|
|
18
|
+
expect(colIndex).toBeLessThan(matrix[rowIndex].length);
|
|
19
|
+
});
|
|
20
|
+
// Calculate sum for this assignment
|
|
21
|
+
const sum = result.reduce((total, colIndex, rowIndex) => {
|
|
22
|
+
return total + matrix[rowIndex][colIndex];
|
|
23
|
+
}, 0);
|
|
24
|
+
// Verify this is indeed optimal by checking all possible permutations for small matrices
|
|
25
|
+
if (matrix.length <= 10) {
|
|
26
|
+
const allPermutations = generatePermutations(Array.from({ length: Math.min(matrix.length, matrix[0].length) }, (_, i) => i));
|
|
27
|
+
let maxSum = -Infinity;
|
|
28
|
+
for (const perm of allPermutations) {
|
|
29
|
+
if (perm.length === matrix.length) {
|
|
30
|
+
const permSum = perm.reduce((total, colIndex, rowIndex) => {
|
|
31
|
+
return total + matrix[rowIndex][colIndex];
|
|
32
|
+
}, 0);
|
|
33
|
+
maxSum = Math.max(maxSum, permSum);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
expect(sum).toBe(maxSum);
|
|
37
|
+
}
|
|
38
|
+
return { result, sum };
|
|
39
|
+
}
|
|
40
|
+
function generatePermutations(arr) {
|
|
41
|
+
if (arr.length <= 1)
|
|
42
|
+
return [arr];
|
|
43
|
+
const result = [];
|
|
44
|
+
for (let i = 0; i < arr.length; i++) {
|
|
45
|
+
const rest = [...arr.slice(0, i), ...arr.slice(i + 1)];
|
|
46
|
+
const perms = generatePermutations(rest);
|
|
47
|
+
for (const perm of perms) {
|
|
48
|
+
result.push([arr[i], ...perm]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
describe('calculateHungarianAlgorithm', () => {
|
|
54
|
+
it('should returns the highest possible combination', () => {
|
|
55
|
+
test([
|
|
56
|
+
[0, 10, 20],
|
|
57
|
+
[0, 30, 45],
|
|
58
|
+
[0, 50, 60],
|
|
59
|
+
], [0, 2, 1]); // 45 + 50 = 95, which is the highest possible combination
|
|
60
|
+
});
|
|
61
|
+
describe('Handling indeterminate cases', () => {
|
|
62
|
+
it('when there are two equal options, it returns the lowest indexes', () => {
|
|
63
|
+
test([
|
|
64
|
+
[0, 10, 20],
|
|
65
|
+
[0, 30, 40],
|
|
66
|
+
[0, 50, 60],
|
|
67
|
+
], [0, 1, 2]); // not 0, 2, 1
|
|
68
|
+
test([
|
|
69
|
+
[0, 10, 20],
|
|
70
|
+
[0, 50, 60],
|
|
71
|
+
[0, 30, 40],
|
|
72
|
+
], [0, 1, 2]);
|
|
73
|
+
});
|
|
74
|
+
it('Last one in the list of indeterminate cases receives no discount 3x3', () => {
|
|
75
|
+
test([
|
|
76
|
+
[0, 10, 10],
|
|
77
|
+
[0, 10, 10],
|
|
78
|
+
[0, 10, 10],
|
|
79
|
+
], [1, 2, 0]);
|
|
80
|
+
});
|
|
81
|
+
it('Last one in the list of indeterminate cases receives no discount 4x4', () => {
|
|
82
|
+
test([
|
|
83
|
+
[0, 10, 10, 10],
|
|
84
|
+
[0, 10, 10, 10],
|
|
85
|
+
[0, 10, 10, 10],
|
|
86
|
+
[0, 10, 10, 10],
|
|
87
|
+
], [1, 2, 3, 0]);
|
|
88
|
+
});
|
|
89
|
+
it('Last two in the list of indeterminate cases receives no discount 4x4', () => {
|
|
90
|
+
test([
|
|
91
|
+
[0, 10, 10, 0],
|
|
92
|
+
[0, 10, 10, 0],
|
|
93
|
+
[0, 10, 10, 0],
|
|
94
|
+
[0, 10, 10, 0],
|
|
95
|
+
], [1, 2, 0, 3]);
|
|
96
|
+
});
|
|
97
|
+
it('Last three in the list of indeterminate cases receives no discount 5x5', () => {
|
|
98
|
+
test([
|
|
99
|
+
[0, 10, 10, 0, 0],
|
|
100
|
+
[0, 10, 10, 0, 0],
|
|
101
|
+
[0, 10, 10, 0, 0],
|
|
102
|
+
[0, 10, 10, 0, 0],
|
|
103
|
+
[0, 10, 10, 0, 0],
|
|
104
|
+
], [1, 2, 0, 3, 4]);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
describe('Edge cases', () => {
|
|
108
|
+
it('should handle 1x1 matrix', () => {
|
|
109
|
+
test([[42]], [0]);
|
|
110
|
+
});
|
|
111
|
+
it('should handle 2x2 matrix', () => {
|
|
112
|
+
test([
|
|
113
|
+
[10, 5],
|
|
114
|
+
[3, 8],
|
|
115
|
+
], [0, 1]);
|
|
116
|
+
});
|
|
117
|
+
it('should handle matrices with all zeros', () => {
|
|
118
|
+
test([
|
|
119
|
+
[0, 0, 0],
|
|
120
|
+
[0, 0, 0],
|
|
121
|
+
[0, 0, 0],
|
|
122
|
+
], [0, 1, 2]); // always prefer the lowest indexes for first items
|
|
123
|
+
});
|
|
124
|
+
it('should handle matrices with negative values', () => {
|
|
125
|
+
test([
|
|
126
|
+
[-10, -5, -1],
|
|
127
|
+
[-3, -8, -2],
|
|
128
|
+
[-6, -4, -9],
|
|
129
|
+
], [2, 0, 1]); // -1 + (-3) + (-4) = -8 is the maximum (least negative)
|
|
130
|
+
});
|
|
131
|
+
it('should handle matrices with mixed positive and negative values', () => {
|
|
132
|
+
testOptimalSum([
|
|
133
|
+
[10, -5, 3],
|
|
134
|
+
[-2, 8, 1],
|
|
135
|
+
[4, -1, 6],
|
|
136
|
+
]);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
describe('Larger matrices', () => {
|
|
140
|
+
it('should handle 4x4 matrix', () => {
|
|
141
|
+
testOptimalSum([
|
|
142
|
+
[82, 83, 69, 92],
|
|
143
|
+
[77, 37, 49, 92],
|
|
144
|
+
[11, 69, 5, 86],
|
|
145
|
+
[8, 9, 98, 23],
|
|
146
|
+
]);
|
|
147
|
+
});
|
|
148
|
+
it('should handle 5x5 matrix', () => {
|
|
149
|
+
testOptimalSum([
|
|
150
|
+
[12, 7, 9, 15, 3],
|
|
151
|
+
[8, 14, 6, 11, 18],
|
|
152
|
+
[13, 5, 16, 2, 10],
|
|
153
|
+
[4, 17, 1, 8, 12],
|
|
154
|
+
[19, 3, 11, 7, 14],
|
|
155
|
+
]);
|
|
156
|
+
});
|
|
157
|
+
it('should handle 6x6 matrix', () => {
|
|
158
|
+
testOptimalSum([
|
|
159
|
+
[23, 17, 31, 12, 8, 45],
|
|
160
|
+
[19, 28, 14, 33, 22, 11],
|
|
161
|
+
[36, 9, 25, 18, 41, 7],
|
|
162
|
+
[15, 34, 6, 29, 13, 38],
|
|
163
|
+
[42, 21, 39, 4, 27, 16],
|
|
164
|
+
[10, 35, 20, 46, 1, 32],
|
|
165
|
+
]);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
describe('Special patterns', () => {
|
|
169
|
+
it('should handle identity-like matrices (diagonal has highest values)', () => {
|
|
170
|
+
test([
|
|
171
|
+
[100, 1, 1],
|
|
172
|
+
[1, 100, 1],
|
|
173
|
+
[1, 1, 100],
|
|
174
|
+
], [0, 1, 2]); // Should pick the diagonal
|
|
175
|
+
});
|
|
176
|
+
it('should handle anti-diagonal pattern', () => {
|
|
177
|
+
test([
|
|
178
|
+
[1, 1, 100],
|
|
179
|
+
[1, 100, 1],
|
|
180
|
+
[100, 1, 1],
|
|
181
|
+
], [2, 1, 0]); // Should pick the anti-diagonal
|
|
182
|
+
});
|
|
183
|
+
it('should handle matrices with duplicate maximum values', () => {
|
|
184
|
+
testOptimalSum([
|
|
185
|
+
[50, 50, 10],
|
|
186
|
+
[10, 50, 50],
|
|
187
|
+
[50, 10, 50],
|
|
188
|
+
]);
|
|
189
|
+
});
|
|
190
|
+
it('should handle increasing sequences', () => {
|
|
191
|
+
testOptimalSum([
|
|
192
|
+
[1, 2, 3, 4],
|
|
193
|
+
[2, 3, 4, 5],
|
|
194
|
+
[3, 4, 5, 6],
|
|
195
|
+
[4, 5, 6, 7],
|
|
196
|
+
]);
|
|
197
|
+
});
|
|
198
|
+
it('should handle decreasing sequences', () => {
|
|
199
|
+
testOptimalSum([
|
|
200
|
+
[7, 6, 5, 4],
|
|
201
|
+
[6, 5, 4, 3],
|
|
202
|
+
[5, 4, 3, 2],
|
|
203
|
+
[4, 3, 2, 1],
|
|
204
|
+
]);
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
describe('Performance and stress tests', () => {
|
|
208
|
+
it('should handle larger matrices correctly', () => {
|
|
209
|
+
const size = 10;
|
|
210
|
+
const matrix = Array.from({ length: size }, (_, i) => Array.from({ length: size }, (_, j) => Math.floor(Math.random() * 1000)));
|
|
211
|
+
testOptimalSum(matrix); // because it is 10x10 the result will still be checked against all permutations
|
|
212
|
+
}, 1000);
|
|
213
|
+
it('should handle larger matrices efficiently', () => {
|
|
214
|
+
const size = 500;
|
|
215
|
+
const matrix = Array.from({ length: size }, (_, i) => Array.from({ length: size }, (_, j) => Math.floor(Math.random() * 1000)));
|
|
216
|
+
testOptimalSum(matrix);
|
|
217
|
+
}, 1000);
|
|
218
|
+
it('throws at 501 matrix', () => {
|
|
219
|
+
const size = 501;
|
|
220
|
+
const matrix = Array.from({ length: size }, (_, i) => Array.from({ length: size }, (_, j) => Math.floor(Math.random() * 1000)));
|
|
221
|
+
expect(() => (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix)).toThrow('Too many items to process. Maximum is 500.');
|
|
222
|
+
}, 1000);
|
|
223
|
+
it('should be deterministic (same input produces same output)', () => {
|
|
224
|
+
const matrix = [
|
|
225
|
+
[15, 23, 7, 31],
|
|
226
|
+
[12, 8, 25, 19],
|
|
227
|
+
[28, 16, 4, 22],
|
|
228
|
+
[9, 33, 18, 5],
|
|
229
|
+
];
|
|
230
|
+
const result1 = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix);
|
|
231
|
+
const result2 = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix);
|
|
232
|
+
const result3 = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix);
|
|
233
|
+
expect(result1).toEqual(result2);
|
|
234
|
+
expect(result2).toEqual(result3);
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
describe('Real-world scenarios', () => {
|
|
238
|
+
it('should handle cost minimization by negating values', () => {
|
|
239
|
+
// Original cost matrix (we want to minimize cost)
|
|
240
|
+
const costMatrix = [
|
|
241
|
+
[4, 6, 8],
|
|
242
|
+
[2, 9, 1],
|
|
243
|
+
[7, 3, 5],
|
|
244
|
+
];
|
|
245
|
+
// Convert to maximization problem by negating
|
|
246
|
+
const maxMatrix = costMatrix.map(row => row.map(val => -val));
|
|
247
|
+
// Verify this gives minimum cost assignment
|
|
248
|
+
test(maxMatrix, [
|
|
249
|
+
0,
|
|
250
|
+
2,
|
|
251
|
+
1,
|
|
252
|
+
]);
|
|
253
|
+
});
|
|
254
|
+
it('should handle worker-task assignment scenario', () => {
|
|
255
|
+
// Productivity scores for workers assigned to tasks
|
|
256
|
+
const productivityMatrix = [
|
|
257
|
+
[85, 92, 78, 88], // Worker 1's productivity on tasks 1-4
|
|
258
|
+
[90, 76, 85, 82], // Worker 2's productivity on tasks 1-4
|
|
259
|
+
[78, 88, 92, 85], // Worker 3's productivity on tasks 1-4
|
|
260
|
+
[88, 85, 80, 90], // Worker 4's productivity on tasks 1-4
|
|
261
|
+
];
|
|
262
|
+
testOptimalSum(productivityMatrix);
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
describe('Boundary value testing', () => {
|
|
266
|
+
it('should handle very large values', () => {
|
|
267
|
+
testOptimalSum([
|
|
268
|
+
[1000000, 999999, 1000001],
|
|
269
|
+
[999998, 1000002, 999997],
|
|
270
|
+
[1000003, 999996, 1000000],
|
|
271
|
+
]);
|
|
272
|
+
});
|
|
273
|
+
it('should handle small values', () => {
|
|
274
|
+
testOptimalSum([
|
|
275
|
+
[1, 2, 3],
|
|
276
|
+
[2, 1, 4],
|
|
277
|
+
[3, 4, 1],
|
|
278
|
+
]);
|
|
279
|
+
});
|
|
280
|
+
it('should handle zero and one combinations', () => {
|
|
281
|
+
test([
|
|
282
|
+
[0, 1, 0],
|
|
283
|
+
[1, 0, 1],
|
|
284
|
+
[0, 1, 0],
|
|
285
|
+
], [
|
|
286
|
+
1, 0, 2, // Last one doesn't receive a discount (least priority)
|
|
287
|
+
]);
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
//# sourceMappingURL=calculateHungarianAlgorithm.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateHungarianAlgorithm.test.js","sourceRoot":"","sources":["../../../src/helpers/calculateHungarianAlgorithm.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,9 @@ import { Group } from './Group.js';
|
|
|
3
3
|
import { GroupPriceDiscount } from './GroupPriceDiscount.js';
|
|
4
4
|
import { type RegisterCart } from './members/checkout/RegisterCart.js';
|
|
5
5
|
import { RegisterItem } from './members/checkout/RegisterItem.js';
|
|
6
|
+
import { RegistrationWithPlatformMember } from './members/checkout/RegistrationWithPlatformMember.js';
|
|
6
7
|
import { type PlatformMember } from './members/PlatformMember.js';
|
|
7
8
|
import { TranslatedString } from './TranslatedString.js';
|
|
8
|
-
import { RegistrationWithPlatformMember } from './members/checkout/RegistrationWithPlatformMember.js';
|
|
9
9
|
export declare class BundleDiscount extends AutoEncoder {
|
|
10
10
|
id: string;
|
|
11
11
|
name: TranslatedString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BundleDiscount.d.ts","sourceRoot":"","sources":["../../../src/BundleDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAwC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"BundleDiscount.d.ts","sourceRoot":"","sources":["../../../src/BundleDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAG9G,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,cAAe,SAAQ,WAAW;IAE3C,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,mBAA4B;IAGhC,SAAS,EAAE,kBAAkB,EAAE,CAAM;IAErC;;OAEG;IAEH,gBAAgB,UAAS;IAEzB;;;OAGG;IAEH,aAAa,UAAS;IAEtB,IAAI,gBAAgB,WASnB;IAED,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE;IAkBtD,IAAI,aAAa,WAEhB;IAED,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAyD7D,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;CAalE;AAED,cAAM,8BAA8B;IAChC,MAAM,EAAE,cAAc,CAAC;IAEvB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAa;gBAErD,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;KAC1B;IAID,SAAS;IAMT,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;CAqC9G;AAED,qBAAa,yBAAyB;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;OAGG;IACH,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,aAAa,EAAE,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IAE3D;;MAEE;IACF,mBAAmB,EAAE,8BAA8B,EAAE,CAAC;gBAE1C,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;KAClC;IAUD,IAAI,IAAI,WAWP;IAED;;MAEE;IACF,IAAI,KAAK,WAGR;IAED,IAAI,mBAAmB,WAUtB;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,gBAAgB,WASnB;IAED,IAAI,cAAc,WAEjB;IAED,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAU/D,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAWxE,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IASvD,MAAM,CAAC,YAAY,EAAE,8BAA8B;IAInD,IAAI,qBAAqB,sDAqCxB;IAED,SAAS;CA4CZ"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { ArrayDecoder, AutoEncoder, BooleanDecoder, field, StringDecoder } from '@simonbackx/simple-encoding';
|
|
3
|
+
import { Sorter } from '@stamhoofd/utility';
|
|
4
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
5
|
import { GroupPriceDiscount } from './GroupPriceDiscount.js';
|
|
6
|
+
import { calculateHungarianAlgorithm } from './helpers/calculateHungarianAlgorithm.js';
|
|
4
7
|
import { RegisterItem } from './members/checkout/RegisterItem.js';
|
|
5
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
6
|
-
import { TranslatedString } from './TranslatedString.js';
|
|
7
8
|
import { RegistrationWithPlatformMember } from './members/checkout/RegistrationWithPlatformMember.js';
|
|
8
|
-
import {
|
|
9
|
+
import { TranslatedString } from './TranslatedString.js';
|
|
9
10
|
export class BundleDiscount extends AutoEncoder {
|
|
10
11
|
constructor() {
|
|
11
12
|
super(...arguments);
|
|
@@ -314,7 +315,7 @@ export class BundleDiscountCalculation {
|
|
|
314
315
|
}
|
|
315
316
|
priceMatrix.push(row);
|
|
316
317
|
}
|
|
317
|
-
const solved =
|
|
318
|
+
const solved = calculateHungarianAlgorithm(priceMatrix);
|
|
318
319
|
for (const [index, item] of arr.entries()) {
|
|
319
320
|
const nth = solved[index];
|
|
320
321
|
const discount = priceMatrix[index][nth];
|
|
@@ -327,48 +328,4 @@ export class BundleDiscountCalculation {
|
|
|
327
328
|
}
|
|
328
329
|
}
|
|
329
330
|
}
|
|
330
|
-
/**
|
|
331
|
-
* Optimized algorithm to maximize the total discount
|
|
332
|
-
* Returns an array where each index corresponds to the nth discount for each item
|
|
333
|
-
* @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
|
|
334
|
-
*/
|
|
335
|
-
function hungarian(priceMatrix) {
|
|
336
|
-
// No items to process
|
|
337
|
-
if (priceMatrix.length === 0) {
|
|
338
|
-
return [];
|
|
339
|
-
}
|
|
340
|
-
const n = priceMatrix.length;
|
|
341
|
-
const assignment = new Array(n).fill(0);
|
|
342
|
-
// Pre-calculate max discounts for each item to avoid repeated calculations
|
|
343
|
-
const itemMaxDiscounts = [];
|
|
344
|
-
for (let i = 0; i < n; i++) {
|
|
345
|
-
// Find max discount (skip position 0)
|
|
346
|
-
let maxDiscount = 0;
|
|
347
|
-
for (let j = 1; j < priceMatrix[i].length; j++) {
|
|
348
|
-
maxDiscount = Math.max(maxDiscount, priceMatrix[i][j]);
|
|
349
|
-
}
|
|
350
|
-
itemMaxDiscounts.push({ index: i, maxDiscount });
|
|
351
|
-
}
|
|
352
|
-
// Sort indices by their maximum potential discount (descending)
|
|
353
|
-
itemMaxDiscounts.sort((a, b) => b.maxDiscount - a.maxDiscount);
|
|
354
|
-
// Track assigned positions
|
|
355
|
-
const assigned = new Set();
|
|
356
|
-
// For each item (in order of maximum discount potential)
|
|
357
|
-
for (const { index: i } of itemMaxDiscounts) {
|
|
358
|
-
let bestPos = 0;
|
|
359
|
-
let bestDiscount = priceMatrix[i][0];
|
|
360
|
-
// Find the best unassigned position for this item
|
|
361
|
-
for (let j = 1; j < priceMatrix[i].length; j++) {
|
|
362
|
-
if (!assigned.has(j) && priceMatrix[i][j] > bestDiscount) {
|
|
363
|
-
bestPos = j;
|
|
364
|
-
bestDiscount = priceMatrix[i][j];
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
assignment[i] = bestPos;
|
|
368
|
-
if (bestPos !== 0) {
|
|
369
|
-
assigned.add(bestPos);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
return assignment;
|
|
373
|
-
}
|
|
374
331
|
//# sourceMappingURL=BundleDiscount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BundleDiscount.js","sourceRoot":"","sources":["../../../src/BundleDiscount.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BundleDiscount.js","sourceRoot":"","sources":["../../../src/BundleDiscount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optimized algorithm to maximize the total discount
|
|
3
|
+
* Returns an array where each index corresponds to the nth discount for each item
|
|
4
|
+
* @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
|
|
5
|
+
*/
|
|
6
|
+
export declare function calculateHungarianAlgorithm(priceMatrix: number[][]): number[];
|
|
7
|
+
//# sourceMappingURL=calculateHungarianAlgorithm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateHungarianAlgorithm.d.ts","sourceRoot":"","sources":["../../../../src/helpers/calculateHungarianAlgorithm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAyF7E"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optimized algorithm to maximize the total discount
|
|
3
|
+
* Returns an array where each index corresponds to the nth discount for each item
|
|
4
|
+
* @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
|
|
5
|
+
*/
|
|
6
|
+
export function calculateHungarianAlgorithm(priceMatrix) {
|
|
7
|
+
// No items to process
|
|
8
|
+
if (priceMatrix.length === 0) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
if (priceMatrix.length > 500) {
|
|
12
|
+
throw new Error('Too many items to process. Maximum is 500.');
|
|
13
|
+
}
|
|
14
|
+
// Convert to cost minimization problem by negating values (since we want to maximize discount)
|
|
15
|
+
const C = priceMatrix.map(row => row.map(val => -val));
|
|
16
|
+
const J = C.length; // height of the cost matrix
|
|
17
|
+
const W = C[0].length; // width of the cost matrix
|
|
18
|
+
if (J > W) {
|
|
19
|
+
throw new Error('Number of items cannot exceed number of positions');
|
|
20
|
+
}
|
|
21
|
+
// job[w] = job assigned to w-th worker, or -1 if no job assigned
|
|
22
|
+
// note: a W-th worker was added for convenience
|
|
23
|
+
const job = new Array(W + 1).fill(-1);
|
|
24
|
+
const ys = new Array(J).fill(0);
|
|
25
|
+
const yt = new Array(W + 1).fill(0); // potentials
|
|
26
|
+
const inf = Number.MAX_SAFE_INTEGER;
|
|
27
|
+
for (let jCur = 0; jCur < J; ++jCur) { // assign jCur-th job
|
|
28
|
+
let wCur = W;
|
|
29
|
+
job[wCur] = jCur;
|
|
30
|
+
// min reduced cost over edges from Z to worker w
|
|
31
|
+
const minTo = new Array(W + 1).fill(inf);
|
|
32
|
+
const prev = new Array(W + 1).fill(-1); // previous worker on alternating path
|
|
33
|
+
const inZ = new Array(W + 1).fill(false); // whether worker is in Z
|
|
34
|
+
while (job[wCur] !== -1) { // runs at most jCur + 1 times
|
|
35
|
+
inZ[wCur] = true;
|
|
36
|
+
const j = job[wCur];
|
|
37
|
+
let delta = inf;
|
|
38
|
+
let wNext = 0;
|
|
39
|
+
for (let w = 0; w < W; ++w) {
|
|
40
|
+
if (!inZ[w]) {
|
|
41
|
+
const q = C[j][w] - ys[j] - yt[w];
|
|
42
|
+
if (q < minTo[w]) {
|
|
43
|
+
minTo[w] = q;
|
|
44
|
+
prev[w] = wCur;
|
|
45
|
+
}
|
|
46
|
+
if (minTo[w] < delta) {
|
|
47
|
+
delta = minTo[w];
|
|
48
|
+
wNext = w;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// delta will always be nonnegative,
|
|
53
|
+
// except possibly during the first time this loop runs
|
|
54
|
+
// if any entries of C[jCur] are negative
|
|
55
|
+
for (let w = 0; w <= W; ++w) {
|
|
56
|
+
if (inZ[w]) {
|
|
57
|
+
ys[job[w]] += delta;
|
|
58
|
+
yt[w] -= delta;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
minTo[w] -= delta;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
wCur = wNext;
|
|
65
|
+
}
|
|
66
|
+
// update assignments along alternating path
|
|
67
|
+
let w;
|
|
68
|
+
for (; wCur !== W; wCur = w) {
|
|
69
|
+
w = prev[wCur];
|
|
70
|
+
job[wCur] = job[w];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Extract assignment indices for each job
|
|
74
|
+
const result = new Array(J);
|
|
75
|
+
for (let w = 0; w < W; ++w) {
|
|
76
|
+
if (job[w] !== -1) {
|
|
77
|
+
result[job[w]] = w;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=calculateHungarianAlgorithm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateHungarianAlgorithm.js","sourceRoot":"","sources":["../../../../src/helpers/calculateHungarianAlgorithm.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stamhoofd/structures",
|
|
3
|
-
"version": "2.84.
|
|
3
|
+
"version": "2.84.2",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./esm/dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "27083cc1d641a8182a51370f982858c073873c66"
|
|
48
48
|
}
|