Diferencia entre revisiones de «SeqProMaq v4.0.1»

(Página creada con '{{Ficha Software |nombre=Sistema para la optimización del tiempo de secuencias para la fabricación de piezas en procesos tecnológicos de maquinado convencional (SeqProMaq v4....')
 
Línea 2: Línea 2:
 
|nombre=Sistema para la optimización del tiempo de secuencias para la fabricación de piezas en procesos tecnológicos de maquinado convencional (SeqProMaq v4.0.1)
 
|nombre=Sistema para la optimización del tiempo de secuencias para la fabricación de piezas en procesos tecnológicos de maquinado convencional (SeqProMaq v4.0.1)
 
|familia=  
 
|familia=  
−
|imagen=Sepromaq.JPG
+
|imagen=Sepromaq.jpg
 
|tamaño=
 
|tamaño=
 
|descripción= Herramienta computacional para la optimización del tiempo secuencias  
 
|descripción= Herramienta computacional para la optimización del tiempo secuencias  
Línea 21: Línea 21:
 
|premios=
 
|premios=
 
|web=
 
|web=
−
}}
+
}}  
  
−
'''SeqProMaq v4.0.1''': Sistema para la optimización del tiempo de secuencias para la fabricación de piezas en procesos tecnológicos de maquinado convencional.<br>
+
'''SeqProMaq v4.0.1''': Sistema para la optimización del tiempo de secuencias para la fabricación de piezas en procesos tecnológicos de maquinado convencional.<br>  
  
−
== Descripción preliminar<br> ==
+
== Descripción preliminar<br> ==
  
−
Este sistema brinda una herramienta computacional para la optimización de dichas secuencias mediante el uso de una metaheurística conocida como Algoritmo Genético. Este se realizó para la [[Talleres_Manuel_Fajardo_de_Manzanillo|EMPROMEC “Cmdte. Manuel Fajardo Rivero”]] del municipio de Manzanillo entidad cuyo perfil es la construcción de maquinarias y por ende la fabricación de una gran variedad de piezas y partes de estas. Esta empresa, al igual que todas las de su rama en el país, no contaba con una herramienta que permitiera obtener secuencias de fabricación de piezas por tecnología de maquinado que minimizaran el tiempo total de producción, también conocido como makespan; elemento muy importante a tener en cuenta cuando se habla de producción ya que una deficiente programación implica que la empresa incurra en costos adicionales lo que se traduce al final en pérdidas.<br>
+
Este sistema brinda una herramienta computacional para la optimización de dichas secuencias mediante el uso de una metaheurística conocida como Algoritmo Genético. Este se realizó para la [[Talleres Manuel Fajardo de Manzanillo|EMPROMEC “Cmdte. Manuel Fajardo Rivero”]] del municipio de Manzanillo entidad cuyo perfil es la construcción de maquinarias y por ende la fabricación de una gran variedad de piezas y partes de estas. Esta empresa, al igual que todas las de su rama en el país, no contaba con una herramienta que permitiera obtener secuencias de fabricación de piezas por tecnología de maquinado que minimizaran el tiempo total de producción, también conocido como makespan; elemento muy importante a tener en cuenta cuando se habla de producción ya que una deficiente programación implica que la empresa incurra en costos adicionales lo que se traduce al final en pérdidas.<br>  
  
−
== Herramientas utilizadas para el desarrollo de la aplicación<br> ==
+
== Herramientas utilizadas para el desarrollo de la aplicación<br> ==
  
−
El proceso de análisis y diseño del sistema fue realizado a través del [[Rational_Rose_Enterprise_Edition|Rational Rose Enterprise Edition 2002]]. La implementación del software está auxiliada por la plataforma [[C++_(Builder)|Borland C++ Builder 6.0]], software propietario de Borland Corporation, herramienta especializada en el desarrollo rápido de aplicaciones.
+
El proceso de análisis y diseño del sistema fue realizado a través del [[Rational Rose Enterprise Edition|Rational Rose Enterprise Edition 2002]]. La implementación del software está auxiliada por la plataforma [[C++ (Builder)|Borland C++ Builder 6.0]], software propietario de Borland Corporation, herramienta especializada en el desarrollo rápido de aplicaciones.  
  
−
=== ¿Por qué se utilizó el lenguaje C++ para implementar la aplicación?<br> ===
+
=== ¿Por qué se utilizó el lenguaje C++ para implementar la aplicación?<br> ===
  
−
[[C++|C++]] tiene la reputación de ser un lenguaje muy poderoso, pero con el poder viene la responsabilidad, el programador debe de conocer una serie de conceptos y reglas de uso. En la actualidad, el [[C++|C++ ]]es un lenguaje versátil, potente y general. Su éxito entre los programadores profesionales le ha llevado a ocupar el primer puesto como herramienta de desarrollo de aplicaciones, además mantiene las ventajas del C en cuanto a riqueza de operadores y expresiones, flexibilidad, concisión y eficiencia.<br>
+
[[C++|C++]] tiene la reputación de ser un lenguaje muy poderoso, pero con el poder viene la responsabilidad, el programador debe de conocer una serie de conceptos y reglas de uso. En la actualidad, el [[C++|C++ es]] un lenguaje versátil, potente y general. Su éxito entre los programadores profesionales le ha llevado a ocupar el primer puesto como herramienta de desarrollo de aplicaciones, además mantiene las ventajas del C en cuanto a riqueza de operadores y expresiones, flexibilidad, concisión y eficiencia.<br>  
  
−
=== Rational Rose Enterprise Edition 2002<br> ===
+
=== Rational Rose Enterprise Edition 2002<br> ===
  
−
En la definición de sistemas, esta herramienta permite que el equipo de desarrollo entienda mejor el problema, que identifique las necesidades del cliente en forma más efectiva y comunique la solución propuesta en forma más clara.<br>
+
En la definición de sistemas, esta herramienta permite que el equipo de desarrollo entienda mejor el problema, que identifique las necesidades del cliente en forma más efectiva y comunique la solución propuesta en forma más clara.<br>  
  
−
== Requerimientos del Sistema<br> ==
+
== Requerimientos del Sistema<br> ==
  
−
Los requisitos son una descripción de las necesidades o cualidades de un producto. La meta primaria de la fase de requerimientos es identificar y documentar lo que en realidad se necesita, en una forma que claramente se le comunique al cliente y a los miembros del equipo de desarrollo.<br>
+
Los requisitos son una descripción de las necesidades o cualidades de un producto. La meta primaria de la fase de requerimientos es identificar y documentar lo que en realidad se necesita, en una forma que claramente se le comunique al cliente y a los miembros del equipo de desarrollo.<br>  
  
−
=== Requerimientos funcionales<br> ===
+
=== Requerimientos funcionales<br> ===
  
−
Analizando las necesidades del usuario se crearon los siguientes requisitos funcionales.<br>
+
Analizando las necesidades del usuario se crearon los siguientes requisitos funcionales.<br>  
  
−
#Crear un nuevo fichero de datos con la información necesaria para la optimización de las secuencias de producción para procesos tecnológicos de maquinado.<br>
+
#Crear un nuevo fichero de datos con la información necesaria para la optimización de las secuencias de producción para procesos tecnológicos de maquinado.<br>  
−
#Modificar los datos cargados de un fichero de datos.<br>
+
#Modificar los datos cargados de un fichero de datos.<br>  
−
#Obtener soluciones utilizando un algoritmo genético (optimizar).<br>
+
#Obtener soluciones utilizando un algoritmo genético (optimizar).<br>  
−
#Configurar los parámetros del método de optimización utilizado (algoritmo genético).<br>
+
#Configurar los parámetros del método de optimización utilizado (algoritmo genético).<br>  
−
#Visualizar los mejores resultados obtenidos en Diagramas de Gantt.<br>
+
#Visualizar los mejores resultados obtenidos en Diagramas de Gantt.<br>  
 
#Generar un informe con los resultados obtenidos del proceso de optimización.<br>
 
#Generar un informe con los resultados obtenidos del proceso de optimización.<br>
  
−
=== Requerimientos no funcionales<br> ===
+
=== Requerimientos no funcionales<br> ===
  
−
'''En cuanto a su Apariencia e Interfaz:'''<br>
+
'''En cuanto a su Apariencia e Interfaz:'''<br>  
  
 
*Se requiere una interfaz gráfica sencilla y amigable, que facilite la manera en que los usuarios entran y procesan los datos. La interfaz debe brindar la mayor cantidad de información al usuario.<br>
 
*Se requiere una interfaz gráfica sencilla y amigable, que facilite la manera en que los usuarios entran y procesan los datos. La interfaz debe brindar la mayor cantidad de información al usuario.<br>
  
−
'''En cuanto a Usabilidad:'''<br>
+
'''En cuanto a Usabilidad:'''<br>  
  
 
*El sistema debe estar diseñado para ser utilizado por los usuarios avanzados como no avanzados. Debe ser un sistema fácil de usar e intuitivo que le de el control de la aplicación al usuario.<br>
 
*El sistema debe estar diseñado para ser utilizado por los usuarios avanzados como no avanzados. Debe ser un sistema fácil de usar e intuitivo que le de el control de la aplicación al usuario.<br>
  
−
'''En cuanto a Rendimiento:'''<br>
+
'''En cuanto a Rendimiento:'''<br>  
  
 
*El procesamiento de los datos se realiza de forma rápida, por lo que la respuesta final se obtiene en un tiempo corto. Los algoritmos matemáticos utilizados tienen un alto grado de eficiencia.<br>
 
*El procesamiento de los datos se realiza de forma rápida, por lo que la respuesta final se obtiene en un tiempo corto. Los algoritmos matemáticos utilizados tienen un alto grado de eficiencia.<br>
  
−
'''En cuanto a Confiabilidad:'''<br>
+
'''En cuanto a Confiabilidad:'''<br>  
  
 
*Se debe implementar mecanismos de protección contra fallos así como de recuperación con el objetivo de que si existen fallos en el sistema no se pierda la información. Además los resultados brindados por el sistema como resultado de los datos iniciales deben tener el máximo de calidad y un 100% de confiabilidad. Teniendo en cuenta que este resultado formará parte de un proceso productivo y que un error costaría serias perdidas en cuanto a costo y tiempo de trabajo.<br>
 
*Se debe implementar mecanismos de protección contra fallos así como de recuperación con el objetivo de que si existen fallos en el sistema no se pierda la información. Además los resultados brindados por el sistema como resultado de los datos iniciales deben tener el máximo de calidad y un 100% de confiabilidad. Teniendo en cuenta que este resultado formará parte de un proceso productivo y que un error costaría serias perdidas en cuanto a costo y tiempo de trabajo.<br>
  
−
'''En cuanto a Requerimientos de Hardware:'''<br>
+
'''En cuanto a Requerimientos de Hardware:'''<br>  
  
 
*Para que el sistema trabaje de forma óptima se necesita una computadora con una memoria RAM de 256 MB y un microprocesador de 1.7 GHz o de velocidad como mínimo.<br>
 
*Para que el sistema trabaje de forma óptima se necesita una computadora con una memoria RAM de 256 MB y un microprocesador de 1.7 GHz o de velocidad como mínimo.<br>
  
−
'''En cuanto a Requerimientos del Software:'''<br>
+
'''En cuanto a Requerimientos del Software:'''<br>  
  
−
*Es necesario para el correcto funcionamiento del software que se tenga instalado [[Microsoft_Windows_2000|Windows 2000]], alguna versión de [[Windows_XP|XP]] o superior.<br>
+
*Es necesario para el correcto funcionamiento del software que se tenga instalado [[Microsoft Windows 2000|Windows 2000]], alguna versión de [[Windows XP|XP]] o superior.<br>
  
−
'''En cuanto a Requisitos Legales:'''<br>
+
'''En cuanto a Requisitos Legales:'''<br>  
  
 
*El empleo de este producto no deberá violar ninguna ley o licencia asociada a este.<br>
 
*El empleo de este producto no deberá violar ninguna ley o licencia asociada a este.<br>
  
−
== Análisis de los tiempos de ejecución<br> ==
+
== Análisis de los tiempos de ejecución<br> ==
  
−
Para demostrar las mejoras que se obtienen con el empleo del algoritmo genético en cuanto al costo computacional, se creó esta aplicación que utiliza una enumeración completa para resolver el job-shop scheduling. Las pruebas se hicieron en una PC [[Pentium|Pentium]] 4 - DUAL Core a 3.00 GHz de velocidad y 512 de RAM. El algoritmo genético se corrió por 500 generaciones con un tamaño de población de 100 individuos. los tiempos de ejecución que se obtienen con el algoritmo genético son inferiores en casi todos los casos a los que se obtienen mediante el empleo del enfoque enumerativo. Este análisis evidenció lo intratable que se vuelve el jobshop scheduling al usar un enfoque enumerativo, pues los tiempos de ejecución crecen rápidamente a medida que se incluyen más piezas, al punto de hacerse prácticamente incalculable para instancias del problema mayor a 13 piezas, con lo que demuestra la potencia y la efectividad del algoritmo genético frente a problemas de optimización combinatoria.<br>
+
Para demostrar las mejoras que se obtienen con el empleo del algoritmo genético en cuanto al costo computacional, se creó esta aplicación que utiliza una enumeración completa para resolver el job-shop scheduling. Las pruebas se hicieron en una PC [[Pentium|Pentium]] 4 - DUAL Core a 3.00 GHz de velocidad y 512 de RAM. El algoritmo genético se corrió por 500 generaciones con un tamaño de población de 100 individuos. los tiempos de ejecución que se obtienen con el algoritmo genético son inferiores en casi todos los casos a los que se obtienen mediante el empleo del enfoque enumerativo. Este análisis evidenció lo intratable que se vuelve el jobshop scheduling al usar un enfoque enumerativo, pues los tiempos de ejecución crecen rápidamente a medida que se incluyen más piezas, al punto de hacerse prácticamente incalculable para instancias del problema mayor a 13 piezas, con lo que demuestra la potencia y la efectividad del algoritmo genético frente a problemas de optimización combinatoria.<br>  
  
−
== Logros obtenidos con este sistema<br> ==
+
== Logros obtenidos con este sistema<br> ==
  
−
#Se obtuvo un algoritmo para el cálculo del tiempo total de fabricación de una secuencia de tareas (makespan) para la fabricación de piezas mediante tecnología de maquinado convencional.<br>
+
#Se obtuvo un algoritmo para el cálculo del tiempo total de fabricación de una secuencia de tareas (makespan) para la fabricación de piezas mediante tecnología de maquinado convencional.<br>  
−
#La representación del problema mediante un grafo disyuntivo, resultó ser válida.<br>
+
#La representación del problema mediante un grafo disyuntivo, resultó ser válida.<br>  
−
#Se comprobó que la utilización de un Algoritmo Genético como método de optimización aplicado al problema de la secuenciación de tareas (Job Shop Scheduling Problem) resuelve éste en un tiempo de cómputo razonable ofreciendo buenas soluciones.<br>
+
#Se comprobó que la utilización de un Algoritmo Genético como método de optimización aplicado al problema de la secuenciación de tareas (Job Shop Scheduling Problem) resuelve éste en un tiempo de cómputo razonable ofreciendo buenas soluciones.<br>  
−
#Se logró representar gráficamente la solución del problema mediante un diagrama de Gantt, con lo que se ilustra más detalladamente el desarrollo del proceso de fabricación.<br>
+
#Se logró representar gráficamente la solución del problema mediante un diagrama de Gantt, con lo que se ilustra más detalladamente el desarrollo del proceso de fabricación.<br>  
 
#La obtención de una secuencia de producción óptima influye significativamente en la reducción del tiempo total de ejecución (makespan), con lo que se logra minimizar los tiempos de interrupción del proceso, lo que significa un uso más racional de las máquinas - herramientas y con ello un aumento de su vida útil.<br>
 
#La obtención de una secuencia de producción óptima influye significativamente en la reducción del tiempo total de ejecución (makespan), con lo que se logra minimizar los tiempos de interrupción del proceso, lo que significa un uso más racional de las máquinas - herramientas y con ello un aumento de su vida útil.<br>
  
−
== Véase también<br> ==
+
== Véase también<br> ==
  
−
*[[Sistema_CAD_para_la_generación_(Árboles_y_Ejes_de_molinos_azucareros)|Sistema CAD para la generación (Árboles y Ejes de molinos azucareros)]]<br>
+
*[[Sistema CAD para la generación (Árboles y Ejes de molinos azucareros)|Sistema CAD para la generación (Árboles y Ejes de molinos azucareros)]]<br>  
−
*[[RANUMAZ_v_2.0|RANUMAZ v2.0]]<br>
+
*[[RANUMAZ v 2.0|RANUMAZ v2.0]]<br>
  
−
== Fuentes<br> ==
+
== Fuentes<br> ==
  
−
*Ing. José M. Márquez Delgado, MsC.<br>
+
*Ing. José M. Márquez Delgado, MsC.<br>  
 
*Ing. Carlos R. Márquez Delgado.<br>
 
*Ing. Carlos R. Márquez Delgado.<br>
  
 
[[Category:Aplicaciones_informáticas]]
 
[[Category:Aplicaciones_informáticas]]

Revisión del 10:48 29 abr 2011

Sistema para la optimización del tiempo de secuencias para la fabricación de piezas en procesos tecnológicos de maquinado convencional (SeqProMaq v4.0.1)
Información sobre la plantilla
Sepromaq.jpg
Herramienta computacional para la optimización del tiempo secuencias
CreadorMsC.José M. Márquez Delgado,Ing. Carlos R. Herrara Márquez
Lanzamiento inicialJunio 2009
Última versión estable4.0.1
Sistemas Operativos compatiblesWindows
IdiomaEspañol

SeqProMaq v4.0.1: Sistema para la optimización del tiempo de secuencias para la fabricación de piezas en procesos tecnológicos de maquinado convencional.

Descripción preliminar

Este sistema brinda una herramienta computacional para la optimización de dichas secuencias mediante el uso de una metaheurística conocida como Algoritmo Genético. Este se realizó para la EMPROMEC “Cmdte. Manuel Fajardo Rivero” del municipio de Manzanillo entidad cuyo perfil es la construcción de maquinarias y por ende la fabricación de una gran variedad de piezas y partes de estas. Esta empresa, al igual que todas las de su rama en el país, no contaba con una herramienta que permitiera obtener secuencias de fabricación de piezas por tecnología de maquinado que minimizaran el tiempo total de producción, también conocido como makespan; elemento muy importante a tener en cuenta cuando se habla de producción ya que una deficiente programación implica que la empresa incurra en costos adicionales lo que se traduce al final en pérdidas.

Herramientas utilizadas para el desarrollo de la aplicación

El proceso de análisis y diseño del sistema fue realizado a través del Rational Rose Enterprise Edition 2002. La implementación del software está auxiliada por la plataforma Borland C++ Builder 6.0, software propietario de Borland Corporation, herramienta especializada en el desarrollo rápido de aplicaciones.

¿Por qué se utilizó el lenguaje C++ para implementar la aplicación?

C++ tiene la reputación de ser un lenguaje muy poderoso, pero con el poder viene la responsabilidad, el programador debe de conocer una serie de conceptos y reglas de uso. En la actualidad, el C++ es un lenguaje versátil, potente y general. Su éxito entre los programadores profesionales le ha llevado a ocupar el primer puesto como herramienta de desarrollo de aplicaciones, además mantiene las ventajas del C en cuanto a riqueza de operadores y expresiones, flexibilidad, concisión y eficiencia.

Rational Rose Enterprise Edition 2002

En la definición de sistemas, esta herramienta permite que el equipo de desarrollo entienda mejor el problema, que identifique las necesidades del cliente en forma más efectiva y comunique la solución propuesta en forma más clara.

Requerimientos del Sistema

Los requisitos son una descripción de las necesidades o cualidades de un producto. La meta primaria de la fase de requerimientos es identificar y documentar lo que en realidad se necesita, en una forma que claramente se le comunique al cliente y a los miembros del equipo de desarrollo.

Requerimientos funcionales

Analizando las necesidades del usuario se crearon los siguientes requisitos funcionales.

  1. Crear un nuevo fichero de datos con la información necesaria para la optimización de las secuencias de producción para procesos tecnológicos de maquinado.
  2. Modificar los datos cargados de un fichero de datos.
  3. Obtener soluciones utilizando un algoritmo genético (optimizar).
  4. Configurar los parámetros del método de optimización utilizado (algoritmo genético).
  5. Visualizar los mejores resultados obtenidos en Diagramas de Gantt.
  6. Generar un informe con los resultados obtenidos del proceso de optimización.

Requerimientos no funcionales

En cuanto a su Apariencia e Interfaz:

  • Se requiere una interfaz gráfica sencilla y amigable, que facilite la manera en que los usuarios entran y procesan los datos. La interfaz debe brindar la mayor cantidad de información al usuario.

En cuanto a Usabilidad:

  • El sistema debe estar diseñado para ser utilizado por los usuarios avanzados como no avanzados. Debe ser un sistema fácil de usar e intuitivo que le de el control de la aplicación al usuario.

En cuanto a Rendimiento:

  • El procesamiento de los datos se realiza de forma rápida, por lo que la respuesta final se obtiene en un tiempo corto. Los algoritmos matemáticos utilizados tienen un alto grado de eficiencia.

En cuanto a Confiabilidad:

  • Se debe implementar mecanismos de protección contra fallos así como de recuperación con el objetivo de que si existen fallos en el sistema no se pierda la información. Además los resultados brindados por el sistema como resultado de los datos iniciales deben tener el máximo de calidad y un 100% de confiabilidad. Teniendo en cuenta que este resultado formará parte de un proceso productivo y que un error costaría serias perdidas en cuanto a costo y tiempo de trabajo.

En cuanto a Requerimientos de Hardware:

  • Para que el sistema trabaje de forma óptima se necesita una computadora con una memoria RAM de 256 MB y un microprocesador de 1.7 GHz o de velocidad como mínimo.

En cuanto a Requerimientos del Software:

  • Es necesario para el correcto funcionamiento del software que se tenga instalado Windows 2000, alguna versión de XP o superior.

En cuanto a Requisitos Legales:

  • El empleo de este producto no deberá violar ninguna ley o licencia asociada a este.

Análisis de los tiempos de ejecución

Para demostrar las mejoras que se obtienen con el empleo del algoritmo genético en cuanto al costo computacional, se creó esta aplicación que utiliza una enumeración completa para resolver el job-shop scheduling. Las pruebas se hicieron en una PC Pentium 4 - DUAL Core a 3.00 GHz de velocidad y 512 de RAM. El algoritmo genético se corrió por 500 generaciones con un tamaño de población de 100 individuos. los tiempos de ejecución que se obtienen con el algoritmo genético son inferiores en casi todos los casos a los que se obtienen mediante el empleo del enfoque enumerativo. Este análisis evidenció lo intratable que se vuelve el jobshop scheduling al usar un enfoque enumerativo, pues los tiempos de ejecución crecen rápidamente a medida que se incluyen más piezas, al punto de hacerse prácticamente incalculable para instancias del problema mayor a 13 piezas, con lo que demuestra la potencia y la efectividad del algoritmo genético frente a problemas de optimización combinatoria.

Logros obtenidos con este sistema

  1. Se obtuvo un algoritmo para el cálculo del tiempo total de fabricación de una secuencia de tareas (makespan) para la fabricación de piezas mediante tecnología de maquinado convencional.
  2. La representación del problema mediante un grafo disyuntivo, resultó ser válida.
  3. Se comprobó que la utilización de un Algoritmo Genético como método de optimización aplicado al problema de la secuenciación de tareas (Job Shop Scheduling Problem) resuelve éste en un tiempo de cómputo razonable ofreciendo buenas soluciones.
  4. Se logró representar gráficamente la solución del problema mediante un diagrama de Gantt, con lo que se ilustra más detalladamente el desarrollo del proceso de fabricación.
  5. La obtención de una secuencia de producción óptima influye significativamente en la reducción del tiempo total de ejecución (makespan), con lo que se logra minimizar los tiempos de interrupción del proceso, lo que significa un uso más racional de las máquinas - herramientas y con ello un aumento de su vida útil.

Véase también

Fuentes

  • Ing. José M. Márquez Delgado, MsC.
  • Ing. Carlos R. Márquez Delgado.