Algoritmo per il miglior sottoinsieme di elementi

2

Ho una matrice M con dimensione NxN dove ogni posizione M (i, j) è un numero intero che rappresenta la relazione tra gli elementi i e j. Se io e j siamo la stessa voce allora le posizioni M (i, j) e M (j, i) sono 0.

Quello di cui ho bisogno è di raggruppare questi N elementi in sottogruppi di 5 elementi ciascuno. Il valore di ciascun gruppo sarebbe Σ (M (i, j) per ogni i, j nel gruppo).
E avrei bisogno di massimizzare il valore totale di tutti i gruppi.

Ho studiato molti algoritmi più di 15 anni fa e ne ho dimenticato la maggior parte, e al giorno d'oggi ci sono molti nuovi algoritmi, quindi sono un po 'perso nel cercare di trovare il migliore per questi casi.

Un amico mi ha detto di investigare sugli algoritmi di Clustering ma hanno un sacco di versioni e specializzazioni diverse, quindi non so quale dare un'occhiata in primo luogo.

E ancora una cosa, oltre a questo algoritmo per massimizzare ogni gruppo, avrei bisogno di un algoritmo per massimizzare il valore totale di tutti i gruppi, scartando le selezioni non ottimali? Ricordo algoritmi che hanno reso questo, ma non ricordo nemmeno il loro nome.

    
posta Wonton 23.12.2015 - 11:07
fonte

1 risposta

1

La quantità di combinazioni possibili cresce molto grande, anche con valori relativamente piccoli di N, quindi una cosa che potresti considerare è una variante del ricerca locale se è accettabile. Tali algoritmi non sono tuttavia in grado di trovare l'optima globale.

Hai bisogno di due cose per questo: una funzione di costo e una relazione di vicinato. La funzione di costo che hai già dato e la relazione di vicinato possono essere qualcosa di semplice come scambiare due elementi tra i gruppi.

    
risposta data 23.12.2015 - 12:24
fonte

Leggi altre domande sui tag