Sto lavorando a un progetto personale in cui ho un insieme di (almeno 1) entità e due insiemi di date disgiunte. Devo assegnare coppie ordinate delle entità alle date. Non mi interessa quali date specifiche vengono assegnate a quali entità, solo che i compiti corrispondono. Le entità dovrebbero essere tutte assegnate a (il più vicino possibile a) lo stesso numero di date l'una rispetto all'altra in ciascuna serie di date e in ciascuna voce della coppia ordinata. Ad esempio, con 3 date di tipo 1, 4 date di tipo 2 e le entità a, b e c, un possibile risultato è:
Coppie di date di tipo 1: (b, c), (c, a), (a, b)
Coppie di date di tipo 2: (a, b), (b, c), (c, a), (a, b)
Totali:
+---------+--------------+--------------+--------------+-------------+
| entity | type-1 1st | type-1 2nd | type-2 1st | type-2 2nd |
+---------+--------------+--------------+--------------+-------------+
| a | 1 | 1 | 2 | 1 |
| b | 1 | 1 | 1 | 2 |
| c | 1 | 1 | 1 | 1 |
+---------+--------------+--------------+--------------+-------------+
Penso che questo dia una spiegazione più formale (e spero accurata) di ciò che devo fare in termini di grafici:
Data:
- un set R di bordi diretti X (date tipo 1)
- un set B di bordi diretti Y (date di tipo 2)
- un insieme non vuoto di vertici Z (entità)
- R e B sono disgiunti
Trova una serie di coppie di vertici ordinate per ogni serie di bordi R e B tale che:
- nessun vertice è associato a se stesso
- ogni spigolo è R e B viene assegnata una corrispondente coppia ordinata
- ogni vertice è la fonte del minimo numero possibile di bordi di ogni serie di bordi R e B
- ogni vertice è l'obiettivo del numero minimo possibile di bordi di ogni serie di bordi R e B
- ogni vertice è la fonte del minimo numero possibile di spigoli
- ogni vertice è l'obiettivo del numero minimo possibile di spigoli
- i vertici in ogni coppia sono in qualche modo pseudocasuali (le coppie non sono probabilmente ripetute spesso)
Qualche idea? In precedenza stavo eseguendo il loop delle date e afferrando le entità casuali da assegnare, ma le condizioni per bilanciare il numero di assegnazioni per entità per ogni coppia ordinata per set di date si sono rivelate troppo complicate per il debug.