Skip to content

Commit

Permalink
Merge pull request #317 from appKom/update-algorithm-docs
Browse files Browse the repository at this point in the history
Oppdaterte algoritme-docsene
  • Loading branch information
jorgengaldal authored Sep 22, 2024
2 parents acd0fa6 + 9e44e94 commit e5033a7
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 22 deletions.
15 changes: 4 additions & 11 deletions algorithm/README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,16 @@
# Algoritme

Algoritmen baserer seg på MIP-programmering (Mixed Integer Linear Programming).
**mip_matching** er en pakke for å tildele intervjutider til søkere basert på ledige tider for søkere og komitéer.

Algoritmen baserer seg på MIP-programmering (Mixed Integer Linear Programming). Se [Modellering.md](./src/Modellering.md) for detaljer.

## Setup Python Venv

```bash
cd algorithm
python -m venv ".venv"
```

```
.\.venv\Scripts\activate
pip install -e .
pip install -r requirements.txt
pip install pymongo[srv]
```

## TODOs

- [x] Lage funksjon som deler opp fra en komités slot
- [x] Sette opp begrensningene fra modelleringen
- [ ] Flikke litt på modelleringen.
- [ ] Finn ut hvordan man kan preprosessere dataen for å få ned kjøretiden (f. eks ved å lage lister av personer for hver komité.)
22 changes: 11 additions & 11 deletions algorithm/src/Modellering.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
# Modellering av problem gjennom Mixed Integer Linear Programming

## Nyttige ressurser

- https://python-mip.readthedocs.io/en/latest/quickstart.html
- https://towardsdatascience.com/mixed-integer-linear-programming-1-bc0ef201ee87
- https://towardsdatascience.com/mixed-integer-linear-programming-formal-definition-and-solution-space-6b3286d54892
- https://www.gurobi.com/resources/mixed-integer-programming-mip-a-primer-on-the-basics/
# Modellering av møtetildelingsproblem gjennom Mixed Integer Linear Programming

## Variabler

Expand All @@ -19,7 +12,7 @@

`t`

- Timeslot (Må gjøres til intervaller etter hvert)
- Timeslot

`m(p, k, t)`

Expand Down Expand Up @@ -55,8 +48,15 @@ For alle `k`:

## Mål

Maksimere `sum(m(p, k, t))` for alle `p`, `k` og `t`
Maksimere `sum(m(p, k, t))` for alle `p`, `k` og `t`. Altså: Maksimere antall intervjuer som tildeles.

### Sekundærmål

- [Ikke enda implementert] La det være færrest mulig og minst mulig mellomrom mellom intervjuene for komitéene.
- La intervjuene klumpe seg rundt klokken 12 og dermed også minske hvor mange hull komitéene får i sin intervjuplan.

## Nyttige ressurser

- https://python-mip.readthedocs.io/en/latest/quickstart.html
- https://towardsdatascience.com/mixed-integer-linear-programming-1-bc0ef201ee87
- https://towardsdatascience.com/mixed-integer-linear-programming-formal-definition-and-solution-space-6b3286d54892
- https://www.gurobi.com/resources/mixed-integer-programming-mip-a-primer-on-the-basics/

0 comments on commit e5033a7

Please sign in to comment.