Optimización del orden de evaluación de programas recursivos
- Autores
- Luna, Carlos Daniel; Baum, Gabriel Alfredo
- Año de publicación
- 1998
- Idioma
- español castellano
- Tipo de recurso
- documento de conferencia
- Estado
- versión publicada
- Descripción
- A través de los años los científicos de la computación han identificado diversas técnicas (estrategias) generales que a menudo producen algoritmos eficientes para la resolución de muchas clases de problemas. Este trabajo presenta un análisis de la estrategia dynamic programming (programación dinámica), a partir de su formalización mediante una regla en el cálculo transformacional desarrollado en el proyecto CIP [Bauer, 85] [Bauer, 87]. La técnica especificada es utilizada en la optimización de programas recursivos ineficientes, derivados, en general, por razonamientos divide and conquer. A partir del análisis de la resolución de problemas sobre dominios de distinta complejidad, siguiendo un proceso sistemático y formal, se plantea una generalización de la estrategia programación dinámica formalizada que hace explícitas las condiciones del orden involucrado sobre el dominio de un problema. Asimismo, se formula una regla que combina la técnica de operacionalización divide and conquer recursivo [Grinspan, 95a] con la de optimización programación dinámica. Programación dinámica evita calcular subproblemas más de una vez, invirtiendo el orden computacional y eliminando recursiones no lineales. No obstante puede conducir a que se resuelvan subproblemas innecesarios en el cómputo de ciertos problemas. Esto provoca que tanto la complejidad en tiempo como en espacio de almacenamiento resulten mayores a las deseadas. Existe una técnica conocida como memorización [Turner, 81] (tabulación exacta [Bird, 80]) que evita, por un lado, recomputar valores y por el otro, computar valores innecesarios. Sin embargo memorización no elimina recursiones no lineales, complicándose luego este proceso en el contexto de una metodología de desarrollo de software transformacional. Este trabajo plantea una regla que combina las ventajas de ambas técnicas, a través de un refinamiento de programación dinámica, en función al orden involucrado sobre el dominio del problema. Técnicas y conceptos inherentes a la rama de análisis de algoritmos sirven de herramientas en la formalización y deducción de las condiciones necesarias para la utilización de las reglas propuestas. Asimismo, en la evaluación de los resultados obtenidos como consecuencia de un proceso de optimización. Dos casos de estudio siguen el desarrollo del artículo: “cálculo de números combinatorios” y “multiplicación eficiente de n matrices”. Éstos destacan la relevancia de cada una de estrategias –puras, generalizadas o combinadas– que se formalizan.
Eje: Teoría
Red de Universidades con Carreras en Informática (RedUNCI) - Materia
-
Ciencias Informáticas
Informática
Estrategias de Diseño de Algoritmos: Programación Dinámica
Algorithms
Optimization
Divide and Conquer
Especificación y Transformación de Programas
Optimización de Programas Recursivos
Análisis de Algoritmos - Nivel de accesibilidad
- acceso abierto
- Condiciones de uso
- http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
- Repositorio
- Institución
- Universidad Nacional de La Plata
- OAI Identificador
- oai:sedici.unlp.edu.ar:10915/24893
Ver los metadatos del registro completo
id |
SEDICI_f3a3a20b732b2ea453292dfceaf6590c |
---|---|
oai_identifier_str |
oai:sedici.unlp.edu.ar:10915/24893 |
network_acronym_str |
SEDICI |
repository_id_str |
1329 |
network_name_str |
SEDICI (UNLP) |
spelling |
Optimización del orden de evaluación de programas recursivosLuna, Carlos DanielBaum, Gabriel AlfredoCiencias InformáticasInformáticaEstrategias de Diseño de Algoritmos: Programación DinámicaAlgorithmsOptimizationDivide and ConquerEspecificación y Transformación de ProgramasOptimización de Programas RecursivosAnálisis de AlgoritmosA través de los años los científicos de la computación han identificado diversas técnicas (estrategias) generales que a menudo producen algoritmos eficientes para la resolución de muchas clases de problemas. Este trabajo presenta un análisis de la estrategia dynamic programming (programación dinámica), a partir de su formalización mediante una regla en el cálculo transformacional desarrollado en el proyecto CIP [Bauer, 85] [Bauer, 87]. La técnica especificada es utilizada en la optimización de programas recursivos ineficientes, derivados, en general, por razonamientos divide and conquer. A partir del análisis de la resolución de problemas sobre dominios de distinta complejidad, siguiendo un proceso sistemático y formal, se plantea una generalización de la estrategia programación dinámica formalizada que hace explícitas las condiciones del orden involucrado sobre el dominio de un problema. Asimismo, se formula una regla que combina la técnica de operacionalización divide and conquer recursivo [Grinspan, 95a] con la de optimización programación dinámica. Programación dinámica evita calcular subproblemas más de una vez, invirtiendo el orden computacional y eliminando recursiones no lineales. No obstante puede conducir a que se resuelvan subproblemas innecesarios en el cómputo de ciertos problemas. Esto provoca que tanto la complejidad en tiempo como en espacio de almacenamiento resulten mayores a las deseadas. Existe una técnica conocida como memorización [Turner, 81] (tabulación exacta [Bird, 80]) que evita, por un lado, recomputar valores y por el otro, computar valores innecesarios. Sin embargo memorización no elimina recursiones no lineales, complicándose luego este proceso en el contexto de una metodología de desarrollo de software transformacional. Este trabajo plantea una regla que combina las ventajas de ambas técnicas, a través de un refinamiento de programación dinámica, en función al orden involucrado sobre el dominio del problema. Técnicas y conceptos inherentes a la rama de análisis de algoritmos sirven de herramientas en la formalización y deducción de las condiciones necesarias para la utilización de las reglas propuestas. Asimismo, en la evaluación de los resultados obtenidos como consecuencia de un proceso de optimización. Dos casos de estudio siguen el desarrollo del artículo: “cálculo de números combinatorios” y “multiplicación eficiente de n matrices”. Éstos destacan la relevancia de cada una de estrategias –puras, generalizadas o combinadas– que se formalizan.Eje: TeoríaRed de Universidades con Carreras en Informática (RedUNCI)1998-10info:eu-repo/semantics/conferenceObjectinfo:eu-repo/semantics/publishedVersionObjeto de conferenciahttp://purl.org/coar/resource_type/c_5794info:ar-repo/semantics/documentoDeConferenciaapplication/pdfhttp://sedici.unlp.edu.ar/handle/10915/24893spainfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by-nc-sa/2.5/ar/Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5)reponame:SEDICI (UNLP)instname:Universidad Nacional de La Platainstacron:UNLP2025-09-29T10:56:04Zoai:sedici.unlp.edu.ar:10915/24893Institucionalhttp://sedici.unlp.edu.ar/Universidad públicaNo correspondehttp://sedici.unlp.edu.ar/oai/snrdalira@sedici.unlp.edu.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:13292025-09-29 10:56:04.705SEDICI (UNLP) - Universidad Nacional de La Platafalse |
dc.title.none.fl_str_mv |
Optimización del orden de evaluación de programas recursivos |
title |
Optimización del orden de evaluación de programas recursivos |
spellingShingle |
Optimización del orden de evaluación de programas recursivos Luna, Carlos Daniel Ciencias Informáticas Informática Estrategias de Diseño de Algoritmos: Programación Dinámica Algorithms Optimization Divide and Conquer Especificación y Transformación de Programas Optimización de Programas Recursivos Análisis de Algoritmos |
title_short |
Optimización del orden de evaluación de programas recursivos |
title_full |
Optimización del orden de evaluación de programas recursivos |
title_fullStr |
Optimización del orden de evaluación de programas recursivos |
title_full_unstemmed |
Optimización del orden de evaluación de programas recursivos |
title_sort |
Optimización del orden de evaluación de programas recursivos |
dc.creator.none.fl_str_mv |
Luna, Carlos Daniel Baum, Gabriel Alfredo |
author |
Luna, Carlos Daniel |
author_facet |
Luna, Carlos Daniel Baum, Gabriel Alfredo |
author_role |
author |
author2 |
Baum, Gabriel Alfredo |
author2_role |
author |
dc.subject.none.fl_str_mv |
Ciencias Informáticas Informática Estrategias de Diseño de Algoritmos: Programación Dinámica Algorithms Optimization Divide and Conquer Especificación y Transformación de Programas Optimización de Programas Recursivos Análisis de Algoritmos |
topic |
Ciencias Informáticas Informática Estrategias de Diseño de Algoritmos: Programación Dinámica Algorithms Optimization Divide and Conquer Especificación y Transformación de Programas Optimización de Programas Recursivos Análisis de Algoritmos |
dc.description.none.fl_txt_mv |
A través de los años los científicos de la computación han identificado diversas técnicas (estrategias) generales que a menudo producen algoritmos eficientes para la resolución de muchas clases de problemas. Este trabajo presenta un análisis de la estrategia dynamic programming (programación dinámica), a partir de su formalización mediante una regla en el cálculo transformacional desarrollado en el proyecto CIP [Bauer, 85] [Bauer, 87]. La técnica especificada es utilizada en la optimización de programas recursivos ineficientes, derivados, en general, por razonamientos divide and conquer. A partir del análisis de la resolución de problemas sobre dominios de distinta complejidad, siguiendo un proceso sistemático y formal, se plantea una generalización de la estrategia programación dinámica formalizada que hace explícitas las condiciones del orden involucrado sobre el dominio de un problema. Asimismo, se formula una regla que combina la técnica de operacionalización divide and conquer recursivo [Grinspan, 95a] con la de optimización programación dinámica. Programación dinámica evita calcular subproblemas más de una vez, invirtiendo el orden computacional y eliminando recursiones no lineales. No obstante puede conducir a que se resuelvan subproblemas innecesarios en el cómputo de ciertos problemas. Esto provoca que tanto la complejidad en tiempo como en espacio de almacenamiento resulten mayores a las deseadas. Existe una técnica conocida como memorización [Turner, 81] (tabulación exacta [Bird, 80]) que evita, por un lado, recomputar valores y por el otro, computar valores innecesarios. Sin embargo memorización no elimina recursiones no lineales, complicándose luego este proceso en el contexto de una metodología de desarrollo de software transformacional. Este trabajo plantea una regla que combina las ventajas de ambas técnicas, a través de un refinamiento de programación dinámica, en función al orden involucrado sobre el dominio del problema. Técnicas y conceptos inherentes a la rama de análisis de algoritmos sirven de herramientas en la formalización y deducción de las condiciones necesarias para la utilización de las reglas propuestas. Asimismo, en la evaluación de los resultados obtenidos como consecuencia de un proceso de optimización. Dos casos de estudio siguen el desarrollo del artículo: “cálculo de números combinatorios” y “multiplicación eficiente de n matrices”. Éstos destacan la relevancia de cada una de estrategias –puras, generalizadas o combinadas– que se formalizan. Eje: Teoría Red de Universidades con Carreras en Informática (RedUNCI) |
description |
A través de los años los científicos de la computación han identificado diversas técnicas (estrategias) generales que a menudo producen algoritmos eficientes para la resolución de muchas clases de problemas. Este trabajo presenta un análisis de la estrategia dynamic programming (programación dinámica), a partir de su formalización mediante una regla en el cálculo transformacional desarrollado en el proyecto CIP [Bauer, 85] [Bauer, 87]. La técnica especificada es utilizada en la optimización de programas recursivos ineficientes, derivados, en general, por razonamientos divide and conquer. A partir del análisis de la resolución de problemas sobre dominios de distinta complejidad, siguiendo un proceso sistemático y formal, se plantea una generalización de la estrategia programación dinámica formalizada que hace explícitas las condiciones del orden involucrado sobre el dominio de un problema. Asimismo, se formula una regla que combina la técnica de operacionalización divide and conquer recursivo [Grinspan, 95a] con la de optimización programación dinámica. Programación dinámica evita calcular subproblemas más de una vez, invirtiendo el orden computacional y eliminando recursiones no lineales. No obstante puede conducir a que se resuelvan subproblemas innecesarios en el cómputo de ciertos problemas. Esto provoca que tanto la complejidad en tiempo como en espacio de almacenamiento resulten mayores a las deseadas. Existe una técnica conocida como memorización [Turner, 81] (tabulación exacta [Bird, 80]) que evita, por un lado, recomputar valores y por el otro, computar valores innecesarios. Sin embargo memorización no elimina recursiones no lineales, complicándose luego este proceso en el contexto de una metodología de desarrollo de software transformacional. Este trabajo plantea una regla que combina las ventajas de ambas técnicas, a través de un refinamiento de programación dinámica, en función al orden involucrado sobre el dominio del problema. Técnicas y conceptos inherentes a la rama de análisis de algoritmos sirven de herramientas en la formalización y deducción de las condiciones necesarias para la utilización de las reglas propuestas. Asimismo, en la evaluación de los resultados obtenidos como consecuencia de un proceso de optimización. Dos casos de estudio siguen el desarrollo del artículo: “cálculo de números combinatorios” y “multiplicación eficiente de n matrices”. Éstos destacan la relevancia de cada una de estrategias –puras, generalizadas o combinadas– que se formalizan. |
publishDate |
1998 |
dc.date.none.fl_str_mv |
1998-10 |
dc.type.none.fl_str_mv |
info:eu-repo/semantics/conferenceObject info:eu-repo/semantics/publishedVersion Objeto de conferencia http://purl.org/coar/resource_type/c_5794 info:ar-repo/semantics/documentoDeConferencia |
format |
conferenceObject |
status_str |
publishedVersion |
dc.identifier.none.fl_str_mv |
http://sedici.unlp.edu.ar/handle/10915/24893 |
url |
http://sedici.unlp.edu.ar/handle/10915/24893 |
dc.language.none.fl_str_mv |
spa |
language |
spa |
dc.rights.none.fl_str_mv |
info:eu-repo/semantics/openAccess http://creativecommons.org/licenses/by-nc-sa/2.5/ar/ Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5) |
eu_rights_str_mv |
openAccess |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc-sa/2.5/ar/ Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5) |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:SEDICI (UNLP) instname:Universidad Nacional de La Plata instacron:UNLP |
reponame_str |
SEDICI (UNLP) |
collection |
SEDICI (UNLP) |
instname_str |
Universidad Nacional de La Plata |
instacron_str |
UNLP |
institution |
UNLP |
repository.name.fl_str_mv |
SEDICI (UNLP) - Universidad Nacional de La Plata |
repository.mail.fl_str_mv |
alira@sedici.unlp.edu.ar |
_version_ |
1844615820419792896 |
score |
13.070432 |