Calcola le permutazioni per un insieme di numeri e poi esegui ciascuna per trovare ogni possibile pianificazione che si adatti ai vincoli del cliente

0

Sto costruendo un programma Java che calcola le permutazioni per un insieme di numeri e poi esegue ognuna di quelle permutazioni per trovare ogni singola pianificazione possibile che si adatti ai vincoli del cliente.

La complessità di questo problema è nella migliore delle ipotesi (n * n!) basata sulla mia ricerca e posso eseguire circa 10.000.000 di programmi al minuto (controllando se sono validi). Questo non è un problema per nulla sotto le squadre 11-12ish in quanto ci vogliono circa 4 minuti per fare 11 squadre e circa 40 minuti per fare 12 squadre, ma in realtà inizia a diventare un problema dopo.

A questo punto vorrei iniziare a suddividere il lavoro tra diversi computer e poi farli inviare le risposte a un hub principale. Vorrei anche offrire questo programma online per consentire agli utenti di vedere il loro programma, apportare modifiche ai nomi delle squadre, ecc.

Andando avanti qual è il miglior design per questo programma? Nella mia testa ho questo come un sito web che invia dati al mio programma, il programma che usa più di un (computer? Server? È questo il cloud computing?) Se necessario, inizia a formulare tutte le soluzioni e ad aggiornarle in un database (spazio problema?). L'utente può quindi accedere al database e visualizzare gli orari possibili.

Le implementazioni di questo programma per i clienti con vincoli unici dovrebbero ovviamente essere ampliate per soddisfare le loro esigenze.

È un design intelligente? Ho esperienza nella programmazione ma non riesco a portare tutto questo insieme per fornire un'esperienza del cliente ben pensata. Vorrei alcuni consigli e luoghi generali per iniziare a fare ricerche perché non ho idea di dove andare dopo.

Il fatto è che la NFL ha 32 team e 167 computer per produrre oltre 5 milioni di possibilità in questa stagione 2015 per 4 ragazzi da recensire.

    
posta Stevenfowler16 24.12.2015 - 20:16
fonte

0 risposte

Leggi altre domande sui tag