Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mejor suma aproximada (https://www.clubdelphi.com/foros/showthread.php?t=28925)

Lepe 06-01-2006 20:28:38

Mejor suma aproximada
 
Hola compañeros, feliz año y espero que los reyes no hagan hecho lo mismo con ustedes, a mí me regalaron una locomotora, se vé que pesaba mucho y de momento me han dejado el carbon ;).

Supongamos que tengo una carpeta de 80 gigas donde almaceno los videos caseros, (a mi hermano le ha dado por ahí), Quiero hacer varios DVDs, pero optimizando el espacio del DVD.

Hasta ahora tengo un TobjectList ordenado descendentemente por el tamaño de cada archivo, y quisiera qué, dado un tamaño máximo (700 Mb, 4.3 Gb, 7 Gb), el programa organizase los vídeos de forma que se aproveche al máximo el CD o DVD. Aclaro que se establece el límite en 700 Mb, y el programa debe proponer 30 o 40 carpetas de ese mismo tamaño y mueva los archivos a esas carpetas.

La duda está en poder llegar a esa "mejor suma posible" para alcanzar el límite de todos los CDs o DVDs.

La verdad, me gustaría que me sorprendiran, porque los reyes magos me han decepcionado ;).

Os agradezco que que hayais leido este mensaje.

saludos

delphi.com.ar 06-01-2006 20:38:20

Tu duda me hizo acordar de este hilo :D
Se me ocurre algo aparentemente simple que puede ser un absurdo lógico, pues desconozco alguna formula directa. Pero abusando de la terrible capacidad de los "ordenadores" de repetir operaciones, yo haría todas las comparaciones posibles y evaluaría cuál es la mas apropiada segun el criterio que elijas :D

roman 06-01-2006 20:48:16

Cita:

Empezado por delphi.com.ar
Tu duda me hizo acordar de

¿Te apellidas Seagate? :rolleyes:

// Saludos

delphi.com.ar 06-01-2006 20:53:50

Cita:

Empezado por roman
¿Te apellidas Seagate? :rolleyes:

Jaja.. noooo.. Me acordaba del hilo, que se trataba de ubicar cajas, peculiarmente no participé, creí que si lo había echo :p

Héctor Randolph 06-01-2006 21:29:13

¿Han escuchado algo de algoritmos genéticos?

He utilizado algoritmos genéticos para resolver problemas NP (entre ellos packing) y funcionan de maravilla.

La teoría se basa en el principio de selección natural y la evolución de las especies.

Se crea aleatoriamente una población en donde cada individuo es una posible solución al problema.

La idea es que los individuos con mayor aptitud (mejores soluciones) de una población heredan sus genes y por ende sus aptitudes a las nuevas generaciones, al cabo de muchos ciclos de selección se espera que la población final contenga a los individuos mas aptos, entonces tendremos muchas posibles soluciones.

Basicamente se utilizan los algoritmos genéticos en problemas que tienen un espacio de soluciones enorme, se trata de maximizar (optimizar) una función de aptitud.

Cada individuo es un cromosoma es decir una cadena de bits que de alguna manera representa una solución a nuestro problema, se elige una función que nos diga que tan buena es la solución y de esta manera se hacer la selección de los mejores individuos.

El problema radica en encontrar una representación de las soluciones como cadena de bits y elegir una buena función para evaluar las aptitudes.

En google hay mucha información acerca de algoritmos genéticos.

También se puede intentar con el algoritmo de recocido simulado de hecho he obtenido mejores soluciones con este último pero es un poco más complicado. En este caso se trata de simular un proceso físico de enfriamiento.

Bueno, no quiero complicarme demasiado, con respecto a lo que plantea Lepe, trataré de encontrar la representación con algoritmos genéticos a su problema y después les comento.

Saludos.

roman 06-01-2006 21:32:50

En este enlace se describe un problema que me parece se ajusta bastante al del hermano de Lepe. Llama particularmente mi atención la frase:

Cita:

In 1973, D. Johnson showed [...] that no efficient bin-packing algorithm can be guaranteed to do better than 22%
// Saludos

fer21unmsm 06-01-2006 22:05:04

Cita:

Empezado por Héctor Randolph
¿Han escuchado algo de algoritmos genéticos?

He utilizado algoritmos genéticos para resolver problemas NP (entre ellos packing) y funcionan de maravilla.

La teoría se basa en el principio de selección natural y la evolución de las especies.

Se crea aleatoriamente una población en donde cada individuo es una posible solución al problema.

La idea es que los individuos con mayor aptitud (mejores soluciones) de una población heredan sus genes y por ende sus aptitudes a las nuevas generaciones, al cabo de muchos ciclos de selección se espera que la población final contenga a los individuos mas aptos, entonces tendremos muchas posibles soluciones.

Basicamente se utilizan los algoritmos genéticos en problemas que tienen un espacio de soluciones enorme, se trata de maximizar (optimizar) una función de aptitud.

Cada individuo es un cromosoma es decir una cadena de bits que de alguna manera representa una solución a nuestro problema, se elige una función que nos diga que tan buena es la solución y de esta manera se hacer la selección de los mejores individuos.

El problema radica en encontrar una representación de las soluciones como cadena de bits y elegir una buena función para evaluar las aptitudes.

En google hay mucha información acerca de algoritmos genéticos.

También se puede intentar con el algoritmo de recocido simulado de hecho he obtenido mejores soluciones con este último pero es un poco más complicado. En este caso se trata de simular un proceso físico de enfriamiento.

Bueno, no quiero complicarme demasiado, con respecto a lo que plantea Lepe, trataré de encontrar la representación con algoritmos genéticos a su problema y después les comento.

Saludos.

Hola Héctor Randolph, desde hace tiempo estoy interesado en el tema de los algoritmos genéticos, como no soy nada diestro en el tema, quisiera si puedes por favor publicar algunos enlaces, manuales y si tienes ejemplos mejor aún, acerca de este maravilloso y amplio tema, te estaría eternamente agradecido.

Ya que estoy desarrollando una tesis que implica la resolución de un problema multiobjetivo, en la cual tengo que aplicar algoritmos genéticos

Gracias de antemano
Saludos.

Héctor Randolph 06-01-2006 22:21:21

Buscando por internet encontré algunos enlaces interesante con respecto al problema que plantea Lepe

Buscando soluciones de Empaquetamiento

Algoritmos genéticos: un caso práctico

De hecho ellos ya tiene resuelto el problema, espero que sea fácil adaptarlo a Delphi.

Cita:

Empezado por fer21unmsm
Hola Héctor Randolph, desde hace tiempo estoy interesado en el tema de los algoritmos genéticos, como no soy nada diestro en el tema, quisiera si puedes por favor publicar algunos enlaces, manuales y si tienes ejemplos mejor aún, acerca de este maravilloso y amplio tema, te estaría eternamente agradecido.

Con gusto, tengo enlaces y manuales interesante con respecto a este tema, e incluso tengo algo de código para Delphi.

Por el momento no los tengo a la mano, más tarde los publico aqui mismo.

Saludos

Lepe 07-01-2006 00:02:56

Simplemente me dejaís alucinado, en menos de 2 horas ya hay 7 mensajes en este hilo, voy a masticar despacito, son las 23:56 hora española y me voy al catre, pero antes miraré por encima algunos enlaces.

Delphi.com.ar ese hilo lo recordaba tambien, pero buscaba por "carpinter" pensaba que era de recortar tableros jejeje, mi memoria no andaba muy fina, pero vamos... que tiene que ver con carpintería ;).

Desde luego, los algoritmos genéticos tienen, cuando menos, un nombre interesante.

Muchisimas gracias a todos por vuestro interés y dedicación.

Saludos.

[Gunman] 07-01-2006 13:18:31

Si lo que necesitas es redondear quizás te interese un artículo que apareció el otro dia en developers.slashdot.com, un artículo sobre algoritmos de redondeo, en inglés claro, interesante más que nada para ver la cantidad de tipos de redondeo que existen... muy curioso, sin duda...

OSKR 07-01-2006 18:34:14

Yo crearia un arbol de desiciones donde empezaria colocando los mas pesados dispersos unos de otros, otra rama podria ser los mas pesados juntos..y asi..luego como heurística podria usar busqueda primero en anchura o busqueda primero en profundidad, realmente no estoy seguro de cual de estos últimos sea el mejor, sería cuestión de probar

Héctor Randolph 08-01-2006 06:23:19

Hola a todos.

Por si alguno se interesa, dejo aqui unos enlaces que sirven como introducción a los algoritmos genéticos.

Facultad de Ingeniería en Electricidad y Computación
http://www.fiec.espol.edu.ec/investigacion/topico/

UNIVERSIDAD DEL PAIS VASCO
http://www.sc.ehu.es/ccwbayes/docenc...c/main0405.htm

Introducción a los Algoritmos genéticos
http://www.lsi.upc.es/~iea/transpas/9_geneticos/

Saludos

Lepe 13-01-2006 14:25:35

Bueno, pues todavía sigo leyendo, de momento no optimizo nada, simplemente cojo los archivos más grandes, y cuando no caben más, añado los más pequeños mientras que quepan, esto me asegura que los primeros CDs/DVDs quedan casi llenos, pero desde luego no es la mejor opción. Cuantos más archivos de tamaño pequeño haya, mejor ;).

Despues de leer la extensa información que hay, puede que lo modifique, ya que no me corre prisa ;)

Saludos y Gracias a todos.

vtdeleon 13-01-2006 14:29:54

Cita:

Empezado por Lepe
Bueno, pues todavía sigo leyendo, de momento no optimizo nada, simplemente cojo los archivos más grandes, y cuando no caben más, añado los más pequeños mientras que quepan, esto me asegura que los primeros CDs/DVDs quedan casi llenos, pero desde luego no es la mejor opción. Cuantos más archivos de tamaño pequeño haya, mejor ;).

Es justamente la opcion qeu estaba pensando, pero coomo bien dices,... faltaria "optimizar" :(

Saludos

Lepe 13-01-2006 16:17:50

Cita:

The set of components for Delphi 4 implementing genetic algorithms, a powerful tool for solving problems of multivariable nonparametric optimization.

The components library is supplied with the source code.

Download – genebase.exe, 90 Kb. Distributed as freeware.

The set includes a component implementing the genetic algorithms. It can be used to solve problems of multivariable nonparametric optimization. In particular it allows finding suboptimal solution for NP-complete problems. The component also allows minimizing and maximizing objective functions.
:eek: http://www.basegroup.ru/download/genebase.en.htm :eek:

No hay que perder de vista esa web ;)

saludos

Lepe 16-01-2006 16:03:28

Me gustaría hacerles partícipes del origen de este hilo, el Ajusta Carpetas

No es vistoso.
No es atractivo.
No es intuitivo.
No es exageradamente eficiente.

Pero cumple su misión.
Es totalmente personalizable por el usuario.
Sin instalación.
Solo 400 kb (la culpa la tiene el upx :D)

Es Freeware con mi tipo de licencia SINDE / SINOBI :D

gracias a todos.


La franja horaria es GMT +2. Ahora son las 06:08:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi