Ho un gruppo di persone e per ognuna di esse una lista di amici e una lista di nemici. Voglio allinearli (senza cerchio come su un tavolo) in modo che preferibile nessun nemico ma solo gli amici sono uno accanto all'altro.Algoritmo per trovare "buoni" vicini - colorazione del grafico?
Esempio con l'ingresso: https://gist.github.com/solars/53a132e34688cc5f396c
penso di aver bisogno di usare grafico colorazione per risolvere questo, ma non sono sicuro di come - penso di avere a lasciare fuori i tuoi amici (o nemici) lista di fare è più facile e mappa su un grafico.
Qualcuno sa come risolvere questi problemi e può dirmi se sono sulla strada giusta?
Esempi di codice o esempi online sarebbe anche bello, non mi dispiace il linguaggio di programmazione, io di solito uso Ruby, Java, Python, Javascript
grazie mille per il vostro aiuto!
cercare "percorso hamiltoniano" –
Tutti saranno sempre amici o nemici, oppure si può essere indifferenti? Il tuo esempio suggerisce che è possibile essere indifferenti. Devi essere seduto accanto a un amico o puoi essere seduto da qualcuno che non è un nemico? –
se non si hanno troppe persone suggerirei di scrivere un algoritmo per provare tutti i possibili ordini seduti. E fermati al primo che soddisfa tutte le condizioni. – RomCoo