Algoritmo di allocazione delle risposte alle domande

0

Abbiamo una vasta serie di domande sul sondaggio, che distribuiamo agli utenti online. Raccogliamo l'invio dagli utenti e in base alla loro presentazione, decidiamo le risposte per tali domande. Ora, ogni utente riceve una serie di domande, ad esempio N . Per ogni invio dato dall'utente, ottiene alcuni punti (costo c ). Ora, c'è un limite massimo per le domande in modo che se una domanda riceve più di k invii, sarà disabilitata dal prossimo incarico.

Ora il problema è che, a volte, gli utenti fanno domande e non lo inoltrano per molto tempo. Pertanto, assegniamo la stessa domanda a molti utenti (ad esempio m , m > k ) e, dopo qualche tempo, ognuno invia la soluzione, quindi di richieste k , otteniamo l'invio m . Che alla fine aumenta il costo totale collegato al sondaggio. C'è qualche algoritmo per risolvere cose come questa.

Abbiamo pensato di creare un sistema di "prenotazione soft", in cui terremo traccia del conteggio delle assegnazioni di ogni domanda, in modo che se gli utenti k abbiano la stessa domanda, non le daremo ad altri utenti. Ma ha effetti collaterali che includono il controllo del timer per ogni domanda, indipendentemente dal fatto che la presentazione sia arrivata o meno. Che è piuttosto sporco

Altro che sembra strettamente correlato è un problema di assegnazione, un algoritmo ungherese, ma la sua soluzione non è quella che stiamo cercando. Per favore aiuto.

Aggiornamento -

C'è un'altra clausola di selezione casuale delle domande. Vogliamo dare una serie di domande diverse a ciascun utente. Così ora, se ho 50 utenti e 1000 domande e l'invio massimo di una domanda ( k ) è 5, come posso ottenere il risultato nel costo minimo speso.

    
posta theGamblerRises 28.08.2016 - 09:53
fonte

2 risposte

1

Scegli le domande una alla volta mentre l'utente procede attraverso il sondaggio anziché selezionarlo in anticipo.

***** modifica

Supponiamo che il sondaggio sia completato online tramite un sito web.

L'utente accede e apre il sondaggio

L'utente apre la prima domanda.

il sistema seleziona una domanda a cui non è stata ancora risposto il numero richiesto di volte

L'utente riempie la risposta

L'utente passa alla domanda successiva

il sistema seleziona una domanda a cui non è stata ancora risposto il numero richiesto di volte ....

Etc

Ogni domanda viene selezionata solo quando l'utente lo richiede. In questo modo è possibile applicare un timeout più breve a "l'utente ha aperto una singola domanda e ha lasciato il browser aperto". L'utente di Vs ha registrato per fare un sondaggio e non ci ha ancora restituito "

    
risposta data 28.08.2016 - 10:06
fonte
0

Avere una scadenza di 10 giorni

Hai una risposta di conteggio virtuale (v)
m ricevuto
d giorni per qualsiasi domanda fuori e scadenza

v = m + sum (e-d) / e

assegnare da un gruppo casuale con la v più bassa

    
risposta data 28.08.2016 - 12:40
fonte

Leggi altre domande sui tag