23 Commits

Author SHA1 Message Date
2147d7ad5e Redo simulations lifecycle ()
## Why

The current way of creating and deleting simulations doesn't scale for big instances. We cannot generate 50 simulations every time a guest confirms attendance, and we should not delete existing valuable simulations. For example, if a guest confirms attendance and declines right after, previously generated simulations should still be valid.

## What

In this PR we are introducing a series of changes that make simulations management easier:

1. We're removing the automatic creation of simulations.
2. Simulations are not removed anymore, neither manually nor automatically.
3. A new endpoint has been defined to create simulations on demand.
4. A digest property has been defined to determine whether a simulation is still valid (meaning there have not been any change in the list of guests involved).

Reviewed-on: 
Co-authored-by: Manuel Bustillo <bustikiller@bustikiller.com>
Co-committed-by: Manuel Bustillo <bustikiller@bustikiller.com>
2025-01-26 12:53:21 +00:00
8c12884212 Add copyright notice 2025-01-23 21:34:23 +00:00
6cead51bb9 Remove all copyright notices to force recreation 2025-01-23 22:29:26 +01:00
74ca20d3e8 Add copyright notice 2025-01-23 21:18:12 +00:00
1f0c6c2aac Use group affinities in discomfort calculator 2025-01-19 20:58:42 +01:00
91bbae1c63 Add copyright notice 2025-01-13 20:38:47 +00:00
e20a366410 Update copyright assignment to cover 2025 and include all contributors 2025-01-13 21:37:02 +01:00
55e6cfcd36 Fix order of Ruby's magic string comment and Copyright assignment 2024-12-28 18:37:47 +01:00
02fcd03b0e Run Rubocop autocorrect on app/services 2024-12-28 18:20:09 +01:00
6c6ae62e5a Define model and endpoints to store affinity between group pairs 2024-12-26 20:29:06 +01:00
3bfe889747 Redo TablesArrangements#show to display arrangement ID and discomfort breakdown 2024-12-16 18:52:34 +01:00
bd5c4f5482 Merge first and last name and expose guest update endpoint 2024-11-11 07:55:03 +01:00
5b36526c59 Increase penalty for tables under minimum capacity 2024-11-10 18:40:26 +01:00
1fcca38576 Implement shift perturbation 2024-11-10 17:53:52 +01:00
29d9d21916 Use sets instead of arrays to represent tables 2024-11-10 17:30:01 +01:00
021b82b28e Use average discomfort instead of sum 2024-11-10 11:34:26 +01:00
f3b70f5a31 Apply a penalty if table sizes are not honored 2024-11-10 11:22:51 +01:00
19d309a2cf Modify initial distribution of tables to guarantee there is no single-person table 2024-11-10 10:16:22 +01:00
d37dd44cd3 Update discomfort calculator to use group ids 2024-11-01 12:04:15 +01:00
b7cabc1661 Add copyright notice 2024-10-27 21:42:45 +00:00
7f12fcba18 Implement a cache at table level to avoid duplicate evaluations 2024-08-01 21:14:28 +02:00
2dd11bb83d Initial tests for the swap class 2024-08-01 20:45:01 +02:00
8c4e6a0109 Initial version of VNS algorithm ()
Reviewed-on: 
Co-authored-by: Manuel Bustillo <bustikiller@bustikiller.com>
Co-committed-by: Manuel Bustillo <bustikiller@bustikiller.com>
2024-08-01 18:27:41 +00:00