Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1490 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  optimisation de place

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

optimisation de place

n°1220896
willynuisa​nce
Posté le 11-10-2005 à 23:36:19  profilanswer
 

Bonjour à tous!!
J'ai un petit problème d'algo...
Voila je voudrai faire un petit programme (certainement un script, mais je n'ai pas encore choisi de language) pour optimiser la place de mes fichier à graver.
En gros j'ai une liste de fichiers de différentes taille et je voudrai les graver sur des dvd de 4.5Go
Je voudrai que mon programme soit capable de me dire quoi graver sur chaque dvd pour utiliser le moin de DVD possibles.
J'ai environ 100 Go de données répartie en 49 fichiers insécables de 80 Mo à 4,2Go
 
Exemple:
Fic1 : 2.8Go
Fic2 : 3.4Go
Fic3 : 500 Mo  
Fic4 : 900 Mo
Fic5 : 1 Go
 
Je voudrai que le prog me dise :  
DVD1 : Fic1 + Fic3 + Fic4 = 4.3Go
DVD2 : Fic2 + Fic5 = 4.4Go
 :)  
 
et pas bêtement:
DVD1 : Fic1 = 2.8Go
DVD2 : Fic2 = 3.4Go
DVD3 : Fic3 + Fic4 +Fic5 = 2.4Go
 :non:  
 
Et donc le pb c'est que je me retourne la cervelle la dessus sans trouver la moindre solution... Peu être du récursif, mais mon crane de débutant décroche trop vite... :pt1cable:  
Vous pouvez m'aider? :bounce:

mood
Publicité
Posté le 11-10-2005 à 23:36:19  profilanswer
 

n°1220909
Taz
bisounours-codeur
Posté le 12-10-2005 à 00:49:11  profilanswer
 

algo : sac à dos

n°1220915
willynuisa​nce
Posté le 12-10-2005 à 01:38:48  profilanswer
 

Taz a écrit :

algo : sac à dos

.... :pfff:  

n°1220919
olivthill
Posté le 12-10-2005 à 02:27:55  profilanswer
 

Pauvre willynuisance, tu en fais une drôle de tête !
 
Pourtant, Taz a raison. C'est exactement le "knapsack problem" comme on dit chez nos voisins de la fière Albion. Avec le moteur de recherche de lunettes de protection (google), tu trouveras beaucoup de sites qui en parlent, par exemple pour la théorie, voir http://www.nist.gov/dads/HTML/knapsackProblem.html ; pour du code C, voir
http://www.darkridge.com/~jpr5/arc [...] de160.html ; pour du code Java, voir http://www.aridolan.com/ga/gaa/gaa.html ; et le meilleur pour la fin, pour du code en Lisp, voir http://www.cs.usu.edu/~vkulyukin/v [...] index.html
 
Bon courage !


Message édité par olivthill le 12-10-2005 à 11:00:49
n°1220921
Taz
bisounours-codeur
Posté le 12-10-2005 à 02:52:56  profilanswer
 

google != goggle

n°1221016
willynuisa​nce
Posté le 12-10-2005 à 10:29:29  profilanswer
 

Salut!
Merci olivthill, mais je ne connaissai pas du tout ce concept, et avec ce que Taz me disai..... :heink:  
Mais merci quand même a toi aussi taz, en cherchant après sur le forum, j'ai que Taz avait déja répondu à plusieur topic de ce genre :sarcastic:  
Donc apparement je n'invente rien :lol:  
Encore merci à vous deux!! :jap:

n°1221039
sircam
I Like Trains
Posté le 12-10-2005 à 11:01:20  profilanswer
 

Taz a écrit :

google != goggle


[:mlc]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1221044
olivthill
Posté le 12-10-2005 à 11:09:30  profilanswer
 

Oui, je me suis trompé, et je suis content que la remarque m'ait été faite, parce que sinon j'aurais refait plusieurs fois la même erreur et me serait rendu ridicule à nouveau comme je le suis actuellement. Les lunettes de protections sont des goggles et non pas des googles. :ange:

n°1221053
sircam
I Like Trains
Posté le 12-10-2005 à 11:23:43  profilanswer
 

Drapal sur ta remarque. Chaque fois que tu feras une intervention, on pourra mettre un lien pour rappeler comment, ce jour, tu t'es ridiculisé.
 
:D


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1221172
willynuisa​nce
Posté le 12-10-2005 à 14:19:21  profilanswer
 

euuhh..... OK pr google,  
Sinon pour le code j'ai compris beacoup de chose, mais je pense pas être capable de coder un truc comme ça.....
quelqu'un aurait-il un code à proposé pour ça?

mood
Publicité
Posté le 12-10-2005 à 14:19:21  profilanswer
 

n°1221308
sircam
I Like Trains
Posté le 12-10-2005 à 16:11:48  profilanswer
 

willynuisance a écrit :

Sinon pour le code j'ai compris beacoup de chose, mais je pense pas être capable de coder un truc comme ça.....
quelqu'un aurait-il un code à proposé pour ça?


 :non: Ce n'est pas charte-compliant. Et accessoirement, c'est stupide.
 
Si tu ne comprends pas la théorie, tu ne comprendras rien au code tout fait. Si c'est au-dessus de tes capacités, soit mets-toi à jour, soit fais qq chose à ta portée.
 
Inutile d'essayer de conduire une F1 si tu t'en sors pas avec une C2, n'est-ce pas.   [:pingouino]  


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1221340
willynuisa​nce
Posté le 12-10-2005 à 16:42:03  profilanswer
 

Je suis bien d'accord avec toi Sircam, et je ne compte pas m'arrêter la en dévloppement!  :)  
Mais ceci ne remet pas en cause le fait que j'ai besoin de trouver un prog qui fait le travaille dont j'ai besoin... :sarcastic:  
Donc je me disai, dans la foullé,  :ange: si quelqu'un savai ou trouver un code qui fait ça, ou quelquechose qui s'en approche et que je pourrai adapter ça me rendrai bien service pour éviter de gaspiller 2 ou 3 DVD(au prix qu'ils coutent :fou: )
Sinon vous n'êtes pas d'accord avec ça tant pis, je ne veux froisser personne, je me débrouillerai d'une manière ou d'une autre :(
Merci à vous


Message édité par willynuisance le 12-10-2005 à 16:43:16
n°1221350
sircam
I Like Trains
Posté le 12-10-2005 à 16:55:53  profilanswer
 

Citation :

besoin de trouver


Tu n'as rien écouté de ce que j'ai dit. :o
 
HINT : Et si tu l'écrivais toi-même ?
 

Citation :

si quelqu'un savai ou trouver un code qui fait ça


Tu peux chercher aussi bien que nous.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1221380
macgawel
Posté le 12-10-2005 à 17:22:37  profilanswer
 

Pour rester charte-friendly  ;)  
 
Si tu ne t'en sors pas avec cet algo, tu peux essayer quelque chose de moins efficace, mais plus simple à comprendre...
 
En réflechissant : comment tu ferais, toi, pour ranger le plus rationnellement possible tes fichiers ?
Moi, j'attaquerais comme ça :
Je trie mes fichiers du plus gros au moins gros.
Tant qu'il me reste un fichier,
   Je trie mes DVD du plus rempli au moins rempli.
   Pour chaque DVD
      J'essaye de caser mon fichier.
   Si je ne réussi pas à le caser dans un DVD entamé,
      Je le mets sur un DVD vierge.
 

Citation :

Exemple:  
Fic1 : 2.8Go  
Fic2 : 3.4Go  
Fic3 : 500 Mo  
Fic4 : 900 Mo  
Fic5 : 1 Go  


Trié => Fic2, Fic1, Fic5, Fic4, Fic3.
Je mets Fic2 dans un DVD vierge (DVD1).
Fic1 ne passe pas dans DVD1 => Je le mets dan DVD2.
Fic5 passe dans DVD1 ( 3.4 + 1 = 4.4 < 4.5 )
Fic4 ne passe pas dans DVD1 => Il passe dans DVD2 ( 2.8 + 0.9 = 3.7 < 4.5 )
Fic3 ne passe pas dans DVD1 => Il passe dans DVD2 ( 2.8 + 0.9 + 0.5 = 4.3 < 4.5 )
 
Au niveau programmation, ça devrait rester simple...
 :hello:

n°1221455
sircam
I Like Trains
Posté le 12-10-2005 à 18:10:31  profilanswer
 

macgawel> Tu n'aurais pas un morceau de code qui fait ce que tu dis, en passant ? [:itm]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1221748
pospos
Posté le 13-10-2005 à 03:40:11  profilanswer
 

willynuisance, en Perl il y a ce module qui fait ce que tu cherche:
http://search.cpan.org/~mschilli/A [...] ketizer.pm

n°1222635
red factio​n
Posté le 14-10-2005 à 01:08:19  profilanswer
 

jviens de tester la solution de macgawel
ca marche nikel
c de loin la plus rapide (compare a knapsack, bloatware inside vu quil teste tout les possibles) , et la plus facile a faire (5 min 10 lignes)

n°1223569
matafan
Posté le 14-10-2005 à 22:23:13  profilanswer
 

Et puisqu'ici on aime la precision, c'est "goggles" et pas "goggle".

n°1223644
sircam
I Like Trains
Posté le 15-10-2005 à 10:02:28  profilanswer
 

matafan a écrit :

Et puisqu'ici on aime la precision, c'est "goggles" et pas "goggle".


J'aimerais surtout voir la même précision dans l'utilisation du Français... Parce que pour une élite, c'est loin d'être fameux.    [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1223849
olivthill
Posté le 15-10-2005 à 22:05:19  profilanswer
 

Merci matafan et sircam pour ces remarques de bon aloi.
 
Par ailleurs, mon dictionnaire (Random House Webster's Unabridged Dictionary) ne comporte aucune entrée pour "google", mais il en a une pour "googol" qui signifie, je vous le donne en mille

Citation :

a number that is equal to 1 followed by 100 zeros
(introduced by U.S. mathematician Edward Kasner whose nine-year-old nephew allegedly invented it)


[:actarus44]

n°1269232
psychobous​t
Posté le 17-12-2005 à 22:33:21  profilanswer
 

Salut , je cherche depuis quelques temps un soft pour me faire ça ? tu peux m'aider peut etre ?    
 
Merci
 
PS : je ne suis pas developpeur donc si vous avez une piste d'un soft deja compilé (pour windows) MERCI  :)
 
J'ai trouvé ça -> http://www.abo.fi/~jmunsin/gcombust/
"Maximize disk by hinting which directories/files to use (binpacking/knapsack), reads cd size from disk "
 
mais je ne trouve pas son equivalent sous windows ...


Message édité par psychoboust le 17-12-2005 à 22:57:01
n°1269538
lbasic
Posté le 18-12-2005 à 17:27:03  profilanswer
 

j'ai fait un bout de prog qui donne ça comme resultat :
 

Citation :

combien de fichiers voulez-vous traiter ?5
taille maxi par compilation (en Mo) ?4500
Entrez la taille des fichiers (en Mo):
N° 1 -> ?2800
N° 2 -> ?3400
N° 3 -> ?500
N° 4 -> ?900
N° 5 -> ?1000
 
Il y aura 2 compilations.
voici la Liste des fichiers par compilation.
 
COMPILATION N° 1
 
Fichier N° 1
Taille : 3400
 
Fichier N° 3
Taille : 1000
 
Total pour la compilation : 4400
 
 
COMPILATION N° 2
 
Fichier N° 2
Taille : 2800
 
Fichier N° 4
Taille : 900
 
Fichier N° 5
Taille : 500
 
Total pour la compilation : 4200


 
je termine l'interface graphique et tu l'aura dispo en telechargement dans la semaine.
 
pour voir le code source :
 
http://www.lbasic.fr/forum/viewtopic.php?p=6522#6522
 
@++


Message édité par lbasic le 19-06-2007 à 21:52:06

---------------
Liberty BASIC France : http://www.lbasic.fr
n°1269888
psychobous​t
Posté le 19-12-2005 à 13:49:03  profilanswer
 

Ah c'est vraiment génial ça !
mais je m'étonne de ne pas avoir trouver de soft sur internet avec déja cette option intégré !
 
m'enfin
 
faudrait plus que ton soft soit capable de regarder tous les fichiers d'un meme dossier et de creer des dossiers de taille défini en glissant les fichiers directment et là ça serait super top !
 
EDIT : ou au moins est il possible de faire une macro Excel pour que j'ai juste à copier coller la liste de mes fichiers à la limite ?
 
 
j'ai 400 Go de video allant de 5Mo à 3Go à faire rentrer (dans n'importe quel ordre) sur le moins de dvd possible... :)  
 
 
 
Un grand Merci  :jap:


Message édité par psychoboust le 19-12-2005 à 15:29:38
n°1270438
lbasic
Posté le 20-12-2005 à 01:55:39  profilanswer
 

je te mets l'option souhaitée....
je reposterais quand ce sera fait.
 
@++


---------------
Liberty BASIC France : http://www.lbasic.fr
n°1270441
trevor
laissez la vie vous étonner...
Posté le 20-12-2005 à 02:23:50  profilanswer
 

drapal


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1270837
psychobous​t
Posté le 20-12-2005 à 15:44:43  profilanswer
 

trevor -> drapal ???
 
 
Merci beaucoup lbasic  :jap:

n°1270838
trevor
laissez la vie vous étonner...
Posté le 20-12-2005 à 15:49:28  profilanswer
 

oui je poste un message, pour garder trace de ce topic car il m'intéresse, je mets un drapeau (avec un jeu de mot à la con)


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1270986
Kyle_Katar​n
Posté le 20-12-2005 à 18:35:33  profilanswer
 

Cf Ignition que je développe : http://www.kcsoftwares.com/?ignition ....

n°1270988
Kyle_Katar​n
Posté le 20-12-2005 à 18:36:15  profilanswer
 

En plus je peux piloter la gravure avec CopyToDVD depuis Ignition

n°1271616
psychobous​t
Posté le 22-12-2005 à 01:23:08  profilanswer
 


 
que dire ? bah c'est exactement ce que je cherchais !!!!
 
trop fort ! un grand merci !  :jap:  
 
manque juste une petite option pour deplacer les fichiers (optimisés) directement dans des dossiers de la taille désiré.
 
 :bounce:

n°1271947
rufo
Pas me confondre avec Lycos!
Posté le 22-12-2005 à 17:01:32  profilanswer
 

C'est marrant, j'avais fait un projet à l'école la-dessus : un peu de recherche avec un prof de biomimétique. La seule différence avec ton pb, c'était qu'on n'était pas obligé de prendre tous les fichiers donnés en entrée pour les mettre sur des CDs (ou autre support).
Voici un composant en delphi : http://www.2001-space-odyssey.net/ [...] cd_cmp.zip
et voici qq infos sur ce composante : http://www.2001-space-odyssey.net/~chris/opt_cd.html (désolé, mon site est vieux, tout pourri, j'ai pas eu le temps de le remettre à jour et bien développé).
 
Sinon, le topic qui avait précédé le développement de ce composant : http://forum.hardware.fr/hardwaref [...] 4853-1.htm

n°1271956
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-12-2005 à 17:13:39  profilanswer
 

la méthode du sac à dos, c'est bien la même que celle utilisé par les FS afin de limiter la fragmentation, c'est ça ?
(à savoir, systématiquement chercher à se caser dans le plus grand trou disponible)

n°1271963
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-12-2005 à 17:20:48  profilanswer
 

ps: ouais, nan, j'ai dis une connerie :D

n°1271967
rufo
Pas me confondre avec Lycos!
Posté le 22-12-2005 à 17:23:07  profilanswer
 

le sac à dos est pas appelé aussi algo LPT, non?

n°1272115
Kyle_Katar​n
Posté le 22-12-2005 à 23:23:38  profilanswer
 

possible à vérifier.
 
Seule info sure : c'est un problème NPC (NP Complet) pour lequel il n'existe pas de solution en temps polynomial.
 
Mais sur des domaines commes des fichiers sur CD voire DVD il y a des solutions (cf Ignition) qui convergent en temps correct.

n°1272746
lbasic
Posté le 23-12-2005 à 21:04:02  profilanswer
 

Salut kyle,
 
Bravo pour ta belle réalisation. J'ai commencé ma version, donc je vais la finir. La mienne sera quand même plus minimaliste que ce que j'ai vu dans ta copie d'ecran.
 
Je suis en plein demenagement, donc c'est dur dur, et au 31 decembre, couik - plus de connexion donc je vais essayer de terminer avant.....
 
voici quelques images :
 
http://img473.imageshack.us/img473/6762/ecranhelp7fk.jpg
le tutoriel d'aide.
 
http://img473.imageshack.us/img473/673/ecran9lt.jpg
l'interface principale.
 
http://img473.imageshack.us/img473/8854/ecran20pf.jpg
la liste des fichiers avant le tri
 
@++


Message édité par lbasic le 23-12-2005 à 21:15:10

---------------
Liberty BASIC France : http://www.lbasic.fr
n°1273477
psychobous​t
Posté le 26-12-2005 à 22:19:50  profilanswer
 

Merci encore !
 
Tiens moi au jus lbasic pour que je puisse tester ton soft  :)

n°1279501
Beral2
Posté le 09-01-2006 à 12:17:39  profilanswer
 

Si cela vous intéresse, freeware : http://lars.werner.no/wordpress/?page_id=2
 
Je sais que, surtout dans cette catégorie, le plaisir est de trouver une "méthode" pour y parvenir, mais pour les feignasses... et puis pour ceux qui codent, peut-être cela peut-il donner des idées quant aux améliorations à apporter.
 
Pas essayé.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  optimisation de place

 

Sujets relatifs
[MySQL] Besoin d'aide - Optimisation d'une requête très lourdeDB designer 4, problème de place
optimisation du code[MySQL] Cherche 3eme dan Optimisation: requette avec SubQuery correlée
Texte mal placé a la 1ere ouvertureoptimisation du type pour bdd
Bloc mal placé sous FFOptimisation de scripts PHP, comment la calculer.
[PHP/mySQL] conseils d'optimisationOptimisation d’un modèle (objet) 3D (Diminution du nombre de face)
Plus de sujets relatifs à : optimisation de place


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR