Esercizio python con greedy e simulated annealing

di il
1 risposte

Esercizio python con greedy e simulated annealing

Ciao ragazzi,
apro questa discussione perché avrei bisogno di una mano per affrontare un problema in python, dato che mi si sta un po' ingarbugliando il cervello.
In sintesi, il problema è questo: ci sono 60 magazzini che riforniscono determinati rivenditori per un certo costo.
Devo scegliere i magazzini più convenienti affinché tutti i 30 venditori siano forniti.
Come dati ho un file txt che contiene la lista di magazzini associati ai rivenditori da fornire, ed il costo. Dopo aver estrapolato la matrice 60 x 30 di 0 e 1 (con gli 1 messi nella posizione dei venditori forniti) e la lista di costi di dimensione 60, ho calcolato il rapporto tra il numero di venditori forniti da ogni magazzino ed il costo, in modo da selezionare via via i magazzini a cui è associato rapporto maggiore. Quindi ho un array (chiamato ratio) con tutti questi rapporti.
Il problema è che non riesco a procedere in termini di codice. Dovrei ciclare sull'array ratio e trovare il valore massimo, prendere l'indice e prendere la riga della matrice che ha quell'indice, mettere a zero quel valore nell'array di ratio e cercare l'altro valore massimo successivo e il suo indice, sommando la riga associata nella matrice alla precedente, fino a quando la somma di tutti gli array della matrice non produrrà un array con elementi tutti diversi da 0 (solo così saprò che tutti i venditori sono stati riforniti). Infine dovrò produrre un array di dim 60 di 0 e 1 dove gli 1 saranno nella posizione dei ratio considerati. Questa per me sarebbe la soluzione greedy (che dovrò confrontare con l'applicazione del simulated annealing). Qualcuno potrebbe darmi un input per capire come cominciare a scrivere questa parte di codice?
Grazie

1 Risposte

  • Re: Esercizio python con greedy e simulated annealing

    Non so se si tratta di problema reale o esercizio, ma in questi casi io aggiungo sqlite al progetto, ci carico dentro tutti i dati che mi servono e lascio a lui le incombenze di trovare massimi, minimi, e mettere in ordine.
    Ovviamente si tratta di progettare attentamente le tabelle e le query...
Devi accedere o registrarti per scrivere nel forum
1 risposte