Overfitting (5 lettori)

Cren

Forumer storico
Dunque puoi andare semplicemente qui:
http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe
Installi, crei un nuovo progetto "Console Application", prendi il file di codice che ti si apre e lo sovrascrivi con quel codice li', infine clicchi "Compila & Esegui".
Grazie!
Il problema pero' e' che se devi usare il codice in modo generale e non conosci il C la cosa diventa un po' complicata. :D
Boh, ho letto il tuo codice abbastanza agevolmente con le reminiscenze di C++, tanto mi servirebbe solo per quello... proviamo.
 

Cren

Forumer storico
Comunque al limite provo a scriverti uno script di excel (2007 va bene ?)
Se lo fai in 2003 mi genufletto :bow:

...però mi preoccupi un po', ragazzo mio: mi ricordo che il terzo anno di università i pomeriggi liberi li passavo con la mia ragazza in altre faccende affaccendato, non a leggere i matti come me, Imar e Sig. Ernesto su Internet :D

...quello è subentrato dopo ed è diventato una droga, ma vabbè...
 
Ultima modifica:

pprllo

Nuovo forumer
Vedi un po' se ti funziona, l'ho scritto in Excel 2007 e salvato in modalita' compatibile.

E' un po' scarparo ma ammette dimensione del vettore variabile e numero di vincoli variabile senza pasticciare con il codice. Ricordati solo di mantenere il "formato" (i.e. dimensione vettore - numero vincoli - riga di spazio - matrice dei vincoli - colonna di spazio - vettore dei vincoli - riga di spazio - punto di inizio/fine)
 

Allegati

  • TrovaPunto.xls
    43,5 KB · Visite: 239
Ultima modifica:

Cren

Forumer storico
Vedi un po' se ti funziona, l'ho scritto in Excel 2007 e salvato in modalita' compatibile.

E' un po' scarparo ma ammette dimensione del vettore variabile e numero di vincoli variabile senza pasticciare con il codice. Ricordati solo di mantenere il "formato" (i.e. dimensione vettore - numero vincoli - riga di spazio - matrice dei vincoli - colonna di spazio - vettore dei vincoli - riga di spazio - punto di inizio/fine)
Sei un fottuto genio.
 

pprllo

Nuovo forumer
Sei un fottuto genio.
Lieto di essere d'aiuto. :)
Comunque riscaricatelo che ho fatto un minuscolo update (per evitare che lo script si inceppi lo faccio fermare dopo 1000 iterazioni, ma avevo fatto in modo che il messaggio di errore comparisse in una cella di excel e avevo dimenticato di azzerare il contenuto della cella ad ogni riavvio dello script, per cui si doveva cancellare il messaggio d'errore a manina, invece ora appare in un message box e buonanotte).
 

Cren

Forumer storico
Lieto di essere d'aiuto. :)
Comunque riscaricatelo che ho fatto un minuscolo update (per evitare che lo script si inceppi lo faccio fermare dopo 1000 iterazioni, ma avevo fatto in modo che il messaggio di errore comparisse in una cella di excel e avevo dimenticato di azzerare il contenuto della cella ad ogni riavvio dello script, per cui si doveva cancellare il messaggio d'errore a manina, invece ora appare in un message box e buonanotte).
Ok, il problema è che all'algoritmo che uso non piace nemmeno la soluzione trovata dal tuo ammenucolo :wall:

Roba da matti.
 

pprllo

Nuovo forumer
Ok, il problema è che all'algoritmo che uso non piace nemmeno la soluzione trovata dal tuo ammenucolo :wall:

Roba da matti.
Hai provato a ballonzolare attorno ai valori che escono ? Controllando ho notato che il mio algoritmo si e' fermato proprio sul valore "=" per l'ultima condizione, potrebbero esserci problemi di approssimazione. :D
Magari per stare sul "safe side" potresti provare a mettere nel mio algoritmo delle condizioni piu' restrittive di quelle dell'algoritmo che devi usare tu.

Es.
Nel mio algoritmo metti 1 <= Somma <= 1 - Nel tuo algoritmo metti 0.99 <= Somma <= 1.01
Nel mio algoritmo l'ultima condizione la metti con 0.0317 - Nel tuo algoritmo la metti con 0.03161189
Ecc.

A questo punto se non accetta puoi pacificamente cestinare il tuo algoritmo (d'altronde la verifica che le condizioni sono "buone" si fa in un minuto su Excel). :D
 
Ultima modifica:

Cren

Forumer storico
Nel mio algoritmo l'ultima condizione la metti con 0.0317 - Nel tuo algoritmo la metti con 0.03161189
Già trovato, è lì il problema (scrivere un ciclo for per trovare un problema in un algoritmo fa già ridere di suo ma ha funzionato): l'arrotondamento del vincolo alla seconda cifra decimale consente di partire dalla regione ammissibile, almeno per quanto riguarda la terza iterazione.
 

pprllo

Nuovo forumer
Già trovato, è lì il problema (scrivere un ciclo for per trovare un problema in un algoritmo fa già ridere di suo ma ha funzionato): l'arrotondamento del vincolo alla seconda cifra decimale consente di partire dalla regione ammissibile, almeno per quanto riguarda la terza iterazione.
Evviva. :V
 

Cren

Forumer storico
Ne mancano altre due...

Originariamente dovevo generare 20 iterazioni, ma dopo aver visto il lavoro di mano che serve per la regione ammissibile ho deciso furbescamente che mi limiterò a cinque iterazioni manuali e interpolerò i cinque punti risultanti con un polinomio di secondo grado per ottenere tutti i casi.

Non ditelo in giro :S
 

Users who are viewing this thread

Alto