2147d7ad5e
Redo simulations lifecycle ( #222 )
...
## 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: #222
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
9f7f99f3f4
Fix error loading arrangements
2025-01-22 20:39:09 +01: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
dfb50ed2dc
Avoid stack too deep erros due to excessive recursion
2024-12-09 18:14:21 +01:00
5f01741943
Validate the Captcha challenge for account signup
2024-12-01 19:57:01 +01:00
be9ca9e6b0
Add copyright notice
2024-12-01 18:43:28 +00:00
b237239a1f
Define an endpoint to retrieve a LibreCaptcha captcha
2024-12-01 19:42:25 +01:00
918bc0c1a8
Remove noisy log messages
2024-11-30 19:10:16 +01:00
bd5c4f5482
Merge first and last name and expose guest update endpoint
2024-11-11 07:55:03 +01:00
8d74d25574
Merge pull request 'Increase penalty for tables under minimum capacity' ( #113 ) from increase-penalty-undercapacity-tables into main
...
Reviewed-on: #113
2024-11-10 18:01:16 +00:00
f2e91c8d7a
Run perturbations in both orders
2024-11-10 18:55:04 +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
b5693f549e
Load groups hierarchy from data in DB
2024-11-01 11:55:32 +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 ( #8 )
...
Reviewed-on: #8
Co-authored-by: Manuel Bustillo <bustikiller@bustikiller.com>
Co-committed-by: Manuel Bustillo <bustikiller@bustikiller.com>
2024-08-01 18:27:41 +00:00
726470267d
Define an initializer with a hierarchy of affinity groups
2024-07-31 20:58:47 +02:00