Supponiamo che io abbia 400 studenti (che sono in una grande università) che devono fare un progetto di informatica e che devono lavorare da soli (nessun gruppo di studenti). Un esempio di progetto potrebbe essere quello di "implementare un algoritmo di trasformazione di Fourier veloce in fortran" (lo so, non sembra sexy ma rende la mia domanda più semplice). Sono il correttore e voglio inviare routine per verificare se ci sono gruppi di studenti che hanno proposto l'implementazione "troppo simili per essere scritti in modo veramente indipendente".
Questa è la ricerca senza supervisione dei cluster. Penso che la domanda sia più su quali attributi usare piuttosto che su quale algoritmo di clustering usare. La prima cosa che vorrei fare è un istogramma lettera per lettera. Idealmente, poiché gli imbroglioni sono più intelligenti di così, alla fine proverei le permutazioni casuali di lettere ben scelte per vedere se esiste una buona corrispondenza dell'istogramma della lettera (con permutazione). Inoltre quelli che non esplorano la struttura del codice, solo la distribuzione marginale delle lettere ... quale soluzione hai? esistono software o pacchetti esistenti dedicati a quel problema? (in realtà ai miei vecchi tempi gli insegnanti di informatica sostenevano di avere quel tipo di strumento, ma ora sospetto che avessero qualcosa di molto semplice)
Suppongo che l'avvocato degli sviluppi software abbia anche quel tipo di problemi (non con 1000 studenti, ma con 2 codici di grandi dimensioni ... che rendono le cose più difficili)?