Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Aiuto su un algoritmo al quanto complicato
Forum - C# / VB.NET - Aiuto su un algoritmo al quanto complicato

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 11:23
Mercoledì, 23/09/2009
Salve a tutti, siccome nell'azienda di mio padre usano un software al costo equivalente 20.000€, sarebbe un programma per ottimizzazione da taglio per vetri.

Esempio carico 54 misure differenti di vetri.
150x54   57x84  27x94  82x120 ecc. ecc.

Il programma fa questo.

Abbiamo lastroni da 321 x 210
il programma non fà altro che prendere tutte queste misure capovolgerle,
ruotarle affiancarle in modo da far meno sfrido possibile su quei lastroni
ottimizzando tutte le misure.

la limitazione di questo programma e che contiene una chiavetta su LPT1 contenente un Chip al suo interno. Se il programma non rileva il CHIP nella chiavetta sulla porta LPT1 non si apre.

eheh quindi non credo sia conveniente comprare tipo 10 programmi del genere per aiutare gli operai a inserire le misure lol.

tuttavia ho riuscito a comprendere il salvataggio di quei file. o meglio la struttura dei salvataggi.

l'unico problema e che mi servirebbe un algoritmo per poter generare tramide directX o pictureBox un qualcosa del genere,
insomma un algoritmo che fa la stessa cosa di quel programma, ovviamente non può mai essere come quello, perchè li ci lavorano persone da tutto il mondo.

quindi chiedo semplicemente un aiuto o meglio un idea su come possa fare un qualcosa del genere.

grazie.

Ultima modifica effettuata da Thejuster il 23/09/2009 alle 11:28


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
the_angel (Normal User)
Expert


Messaggi: 471
Iscritto: 02/04/2009

Segnala al moderatore
Postato alle 14:07
Mercoledì, 23/09/2009
Testo quotato



il programma non fà altro che prendere tutte queste misure capovolgerle,
ruotarle affiancarle in modo da far meno sfrido possibile su quei lastroni
ottimizzando tutte le misure.




In pratica, quello che deve fare il programma, è questo?

Cioè, in input gli arrivano n misure di n vetri, e "trovare" il modo
di comsumare meno vetro per avere tutti i pezzi?

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 14:12
Mercoledì, 23/09/2009
Si e non solo.

dovrei poi stampare un grafico o tramide DX o GDI del risultato di come vengono disposti i pezzi.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
the_angel (Normal User)
Expert


Messaggi: 471
Iscritto: 02/04/2009

Segnala al moderatore
Postato alle 14:26
Mercoledì, 23/09/2009
Testo quotato

Postato originariamente da Thejuster:

Si e non solo.

dovrei poi stampare un grafico o tramide DX o GDI del risultato di come vengono disposti i pezzi.



Non sono esperto di matematica.

Partendo dal primo problema, potresti calcolarti l'area dei vari pezzi,
e sottrarla dall'area del grezzo...però non saprei è un'ipotesi...

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 14:42
Mercoledì, 23/09/2009
io proverei con gli algoritmi della ricerca operativa
prova a vedere...visto che ci sono n variabili con al minimo un vincolo secondo me potrebbe essere anche un problema da simplesso ma forse mi sbaglio. Bisognerebbe analizzare bene i dati

prova a documentarti sulla ROP(ricerca operativa :D)

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:21
Mercoledì, 23/09/2009
già perché credo che sia un algoritmo impressionante,
visto dei tantissimi calcoli da eseguire sull'area da disporre i pezzi.

il guaio e che dovrà anche ruotarli per cercare di sfruttare quanto più meno spazio possibile.

guardate questa screenshoot
è un abbozzo del programma

Il rettangoli Arancioni, rappresentano un vetro.
il rettangoli azzurri rappresenta l'area del Ricavo.
che sarebbero pezzi di vetro che andranno conservati per ulteriori modifiche.

http://img14.imageshack.us/img14/76/prospetto.png

l'idea e fare questo.
anche se non preciso al millessimo. ma se avrei già un piccolo risultato
dopo potrei sperimentare altri calcoli per la rotazione e per i ricavi.

per di più se guardate la screen i tagli (contorni del vetro) dovranno essere fattibili.
del tipo non posso inserire un quadrato o rettangolo in una parte del vetro impossibile da tagliare. eh si non è una cosa facile per questo immagino che chiedano tutti quei soldi per un programma del genere.

anche perché quel programma esportando i file con le varie cordinate di ogni taglio

X inizio X fine  Y inizio Y Fine

Permette ad un macchinario di muoversi in quegli assi, seguendo le cordinate salvate nel file.

Ultima modifica effettuata da Thejuster il 23/09/2009 alle 15:26


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
ingMark (Ex-Member)
Pro


Messaggi: 176
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 11:16
Giovedì, 24/09/2009
non so se può esserti d'aiuto, ma il tuo problema mi ha incredibilmente ricordato il mio esame di tecniche e linguaggi di programmazione.

http://ulisse.polito.it/matdid/3ing_eln_L2170_TO_0/mat_com ...

(il tema d'esame è TLPT090630.doc)

il testo dell'esercizio dava in ingresso dei rettangoli disordinati e spiegava come ordinarli (in modo da eliminare spazi inutilizzati), poi bisognava calcolarne l'area.
Mi sembra un problema simile.

http://ulisse.polito.it/matdid/3ing_eln_L2170_TO_0/mat_com ...

qua c'è la soluzione dell'esame, purtroppo è solo in c :k:

Ultima modifica effettuata da ingMark il 24/09/2009 alle 11:17
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:49
Giovedì, 24/09/2009
azz grazie mille!
Tranquillo riesco perfettamente a leggere il C.

grazie mille :)
solo che alla fine l'esame prevede di di unire dei punti tramite il piano cartesiano.

questo si, e abbastanza logico connettere i vari punti per formare rettangoli.
ma l'operazione di quel sorgente semplicemente unisce tutti i rettangoli in uno solo.
non che li ordina bordi per bordi senza sovrapporli.
eheh a me servirebbe questo.

Ultima modifica effettuata da Thejuster il 24/09/2009 alle 16:08


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:41
Giovedì, 24/09/2009
Ho provato a implementare un algoritmo genetico per questo compito ma non funziona (ristagna spesso su una soluzione pessima e comunque ci mette troppo tempo). Posso provare a chiedere a qualcuno...

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo