Primer debate del Grupo

7 views
Skip to first unread message

Carlos Rene Angarita Sanguino

unread,
Mar 22, 2011, 10:31:55 AM3/22/11
to 1180103A - Programacion de Computadores
Queridos Alumnos, deben participar de forma activa en los debates
generados en este curso, es de obligatoriedad participar. Deben
participar en al menos 5 debates a lo largo del semestre, de ahi
sacaremos otra nota...

La pregunta de esta semana es:

Cual es la importancia de los Algoritmos en el proceso de Programacion
de Aplicaciones y cuales son las nuevas tecnicas de elaboracion de
algoritmos. Opine sobre el tema de algoritmos geneticos...

joanca0113

unread,
Mar 23, 2011, 8:26:16 PM3/23/11
to 1180103A - Programacion de Computadores
1. Importancia de los Algoritmos en el proceso de Programación

Los algoritmos forman uno de los pilares de la computación actual,
aunque su uso no se limita solamente a esta rama, sino a también a
ciencias como las matemáticas, así como a la vida cotidiana; No solo
del uso masivo de los algoritmos es de donde se deriva su importancia,
sino de los aportes que le ha dado a la
computación y a otras ciencias.

La teoría de algoritmos es una rama de la computación, en donde se
analizan las bases teóricas que envuelven a los algoritmos, así como
las bases para diseños de algoritmos eficientes.

Existe una gran cantidad de algoritmos que son usados a diario, como
algoritmos de búsqueda, de ordenamiento, de encriptación, de
compresión, matemáticos, etc. y de su análisis surgen una gran
cantidad de avances como el desarrollo de aplicaciones para
computadoras, el manejo, dominio de la lógica de programación para
resolver problemas y finalmente el proceso de desarrollo de software.

2. Nuevas Técnicas de Elaboración de Algoritmos

El diseño de un algoritmo que resuelva un problema es, en general, una
tarea difícil. Una forma de facilitar esta labor consiste en recurrir
a técnicas conocidas de diseño de algoritmos, se decir, a esquemas muy
generales que pueden adaptarse a un problema particular al detallar
las partes generales del esquema.

Método de Fuerza Bruta:
método sencillo, que consiste en resolver un problema buscando una
solución fácil y directa ,que en algunos casos es bastante inexacto
por lo que se recomienda evitarse siempre que se pueda, pero con un
poco de análisis puede encontrarse algoritmos más eficientes.

Técnicas de los Parámetros Acumuladores y de Tabulación

Parámetros Acumuladores:
La recurcion es un mecanismo que permite obtener, en combinación con
otras contrucciones, una solución funcional a muchos problemas.Los
parámetros adicionales tienen como misión ir acumulando resultados
principales durante el proceso recursivo.
Tabulación:
Otra técnica útil es el uso de tablas.
La intención es que la primera vez que se realiza un cálculo, se
almacena en una tabla, donde puede consultarse otras veces que se
necesite. Esta técnica también se suele emplear con la programación
dinámica.

Divide y Vencerás:
La técnica divide y vencerás consiste en descomponer el problema en un
conjunto de subproblemas más pequeños. Después se resuelven estos
subproblemas y se combinan las soluciones para obtener la solución
para el problema original.

Método voraz:
Este método que trata de producir tipo de mejor resultado a partir de
conjunto de opciones candidatas, se va procediendo paso a paso
realizándose la mejor elección (usando una función objetivo que
respeta un conjunto de restricciones ) de entre las posibles. Es un
proceso repetitivo sencillo que trata sucesivamente los diferentes
elementos del problema.

3. Algoritmos Genéticos

Son serie de pasos organizados que describe el proceso que debe
seguir,una población de individuos los cuales han sido sometidos a
acciones aleatorias semejantes a las que actúan en la evolución
biológica tales como mutaciones y recombinaciones genéticas, como
también a una Selección Natural de acuerdo con algún criterio,
obligandolos así a tomar diferentes caminos o decisiones en función
de la cual se determinaran cuáles son los individuos más adaptados,
que sobreviven, y cuáles los menos aptos, que son descartados.También
es denominado algoritmos evolutivos.

On 22 mar, 09:31, Carlos Rene Angarita Sanguino

joanca0113

unread,
Mar 23, 2011, 8:28:00 PM3/23/11
to 1180103A - Programacion de Computadores
Jorge Andrés Calderón Balseca Código: 1180515

Santiago Alvarez

unread,
Mar 23, 2011, 10:58:57 PM3/23/11
to 1180103A - Programacion de Computadores
Primero que todo hay que entender el significado de un algoritmo que
es una serie de operaciones detalladas y no ambiguas. En otras
palabras un algoritmo es un conjunto de reglas para resolver una
cierta clase de problemas paso por paso.

Una computadora es una máquina que necesita un programador, ya que por
sí sola no se puede programar, la función de ésta máquina es
solucionar problemas usando los ALGORITMOS. Dado un determinado
problema el programador debe idear una solución y expresarla usando un
algoritmo; luego de esto, debe codificarlo en un determinado lenguaje
de programación y por último ejecutar el programa en el computador el
cual refleja una solución al problema inicial.

La base de la programación de computadoras esta en el manejo de los
algoritmos; por lo tanto los niveles básicos de enseñanza de estos
últimos exigen al instructor buenos métodos, y al estudiante aptitud y
mucho interés, por lo cual es muy importante el vínculo de la
informática para hacer más fácil y productiva la adquisición de estos
nuevos conocimientos.

NUEVAS TÉCNICAS DE ELABORACIÓN DE ALGORITMOS

Una forma de facilitar esta labor consiste en recurrir a técnicas
conocidas de diseño de algoritmos, es decir, a esquemas muy generales
que pueden adaptarse a un problema particular al detallar las partes
generales del esquema.

---Algoritmos dividir para vencer: MÉTODO DEDUCTIVO

Consiste en la descomposición de un problema de tamaño n en
problemas más pequeños, de modo que a partir de la
solución de dichos problemas sea posible construir con facilidad una
solución al problema completo. Ya se han visto varias aplicaciones de
esta técnica, como la clasificación por intercalación o los árboles
binarios de búsqueda.

---Programación dinámica:


A menudo sucede que no hay manera de dividir un problema en un
pequeño numero n de sub-problemas cuya solución pueda combinarse
para resolver el problema original. En tales casos, se puede intentar
dividir el problema en tantos sub-problemas como sea necesario,
dividir cada subproblema en sub-problemas mas pequeños, y así
sucesivamente. Si eso es todo lo que se hace, quizá se produzca un
algoritmo de tiempo exponencial.

No obstante, con frecuencia, solo hay un número polinomial de sub-
problemas, de aqui que se deba resolver algún subproblema muchas
veces. Si, en cambio, se conserva la solución a cada subproblema
resuelto, y tan sólo se toma la respuesta cuando se requiere, se
obtiene un algoritmo de tiempo polinomial.

Desde el punto de vista de la realización, algunas veces es más fácil
crear una tabla de las soluciones de todos los subproblemas que se
tengan que resolver. Se rellena la tabla sin tener en cuenta si se
necesita realmente un sub-problema particular en la solución total. La
formación de la tabla de subproblemas para alcanzar una solución a un
problema dado se denomina progrnrnacidn dindmica, nombre procedente
de la teoría de control.

---Algoritmos Ávidos


Considérese el problema es dar un cambio. Supónganse monedas de $25
(un cuarto) $10 (un décimo), $5 (un vigésimo) y $1 (un centavo), y
que se desea dar un cambio de $63 . Sin pensar, se convierte esta
cantidad a dos cuartos, un décimo y tres centavos. No sólo se
determinó rapidamente una lista de monedas con el valor
correcto, sino que se produjo la lista más corta de monedas con ese
valor. El algoritmo empleado probablemente fue seleccionar la moneda
mayor cuyo valor no excedia de $63 (un cuarto), agregarla a la lista
y sustraer su valor de 63, que-
dando $38 . De nuevo, se seleccionó la moneda más grande cuyo valor no
fuera mayor de $38 (otro cuarto) y se añadió a la lista, y así
sucesivamente. Este método de dar cambio es un algoritmo
ávido.


---Método de retroceso

Algunas veces surge el problema de encontrar una solución optima a un
sub-problema, pero sucede que no existe una teoría que pueda aplicarse
para ayudar a encontrar lo óptimo, si no es recurriendo a una búsqueda
exhaustiva.

--- Algoritmos de búsqueda local

Algunas veces, la siguiente estrategia producirá una solución
optima para un problema.

l . Empezar con una solución aleatoria.
2. Aplicar a la solución actual una transformación de un conjunto
dado de transformaciones para mejorar la solución; la mejora es la
nueva solución actual.
3. Repetir hasta que ninguna transformación del conjunto pueda
mejorar la solución actual.

La solución resultante puede ser optima o no. En principio, si «el
conjunto de transformaciones dado» incluye todas las que toman una
solución y la reemplazan por otra, entonces no se parará hasta
alcanzar la solución optima. Pero, en ese caso, el tiempo para aplicar
(2) es el mismo que el necesario para examinar todas las soluciones, y
todo el enfoque no tiene mucho sentido.

OPINIÓN ACERCA DE ALGORITMOS GENÉTICOS

Los algoritmos genéticos son métodos que están basados en el proceso
genético de los seres vivos. Por imitación a la teoria de Darwin
(selección natural) los AG son son capaces de dar soluciones a
problemas de la vida real en donde la solución son diversos caminos en
el que sobrevive el individuo mejor adaptado al problema.



HERNÁN DARIO SANTIAGO ALVAREZ
INGENIERIA DE MINAS
1180532
Reply all
Reply to author
Forward
0 new messages