Escolar Documentos
Profissional Documentos
Cultura Documentos
Se denomina estocstico (del latn stochasticus, que a su vez procede del griego
stochastiks "hbil en conjeturar"1 ) al sistema cuyo comportamiento es
intrnsecamente no determinista. Un proceso estocstico es aquel cuyo comportamiento es
no determinista, en la medida que el subsiguiente estado del sistema est determinado tanto
por las acciones predecibles del proceso como por elementos aleatorios. No obstante, de
acuerdo con M. Kac2 y E. Nelson,3 cualquier desarrollo temporal (sea determinista o
esencialmente probabilstico) que pueda ser analizable en trminos de probabilidad merece
ser denominado como un proceso estocstico.
ndice
[ocultar]
1Origen
2Aplicaciones
o 2.1Ciencias naturales
2.1.1Fsica
2.1.2Biologa
2.1.3Geomorfologa
o 2.2Otras Disciplinas
2.2.1Medicina
2.2.2Inteligencia artificial
2.2.3Msica
2.2.5Lengua y lingstica
2.3.1Industria
2.3.2Finanzas
3Vase tambin
4Referencias
Origen[editar]
El uso del trmino estocstico para hacer referencia a algo basado en la teora de la
probabilidad se puede retrotraer en el tiempo hasta Ladislaus Bortkiewicz, quien le dio el
sentido de "hacer conjeturas" que porta el trmino griego desde los antiguos filsofos, y a
partir del ttulo de Ars Conjectandi que Jakob Bernoulli dio a su trabajo sobre teora de la
probabilidad.4
En matemticas, especficamente en la teora de la probabilidad, el campo de los procesos
estocsticos ha sido una importante rea de investigacin. En concreto el trmino estocstico
se aplica a procesos, algoritmos y modelos en que existe una secuencia cambiante de
eventos a medida que pasa el tiempo. Si bien en muchos problemas probabilistas se usan
variables aleatorias fijas, en los procesos estocsticos necesitamos para especificar las
variables aleatorias para cada instante del tiempo.
Una matriz estocstica es una matriz que tiene valores reales no negativos que suman uno en
cada columna.
Aplicaciones[editar]
Ciencias naturales[editar]
Un ejemplo de proceso estocstico en el mundo natural es la presin en un gas tal y como se
modela en un proceso de Wiener. Incluso aunque (en trminos clsicos) cada molcula se
mueve siguiendo un patrn determinista, el movimiento de un conjunto de ellas es informtica
y prcticamente impredecible. Un conjunto suficientemente grande de molculas mostrar
caractersticas estocsticas, como llenar su recipiente, ejercer la misma presin, difundirse en
gradientes de concentracin, etc. Estas son propiedades emergentes de los sistemas.
Fsica[editar]
El nombre "Montecarlo" para el mtodo estocstico de Montecarlo fue popularizado por los
investigadores de fsica Stanislaw Ulam, Enrico Fermi, John von Neumann y Nicholas
Metropolis, entre otros. El nombre hace referencia al Casino de Montecarlo en Mnaco, donde
el to de Ulam tomaba dinero prestado para apostarlo.5 El uso de la aleatoriedady de la
naturaleza repetitiva del proceso son anlogos a las actividades que se llevan a cabo en un
casino.
Biologa[editar]
En los sistemas biolgicos, se ha encontrado que la introduccin de "ruido" estocstico
contribuye a mejorar la fuerza de la seal de loops de feedback interno utilizados para
equilibrio y otras formas de comunicacin vestibular. Multitud de eventos bioqumicos tambin
conducen por s mismos al anlisis estocstico. La expresin gnica, por ejemplo, es un
proceso estocstico derivado de la impredecibilidad inherente a las colisiones moleculares
(por ejemplo, la unin y separacin de la ARN polimerasa a un promotor) resultado
del movimiento browniano.
Geomorfologa[editar]
Artculo principal: Meandro
Otras Disciplinas[editar]
Medicina[editar]
El efecto estocstico, o el "efecto del azar", es una de las clasificaciones de los efectos de la
radiacin que hace referencia a la naturaleza azarosa y estadstica del dao. A diferencia del
efecto determinista, la gravedad es independiente de la dosis. Solo la probabilidad de un
efecto incrementa con la dosis. El cncer es un efecto estocstico.
La diferenciacin estocstica es en la que una poblacin de clulas madre se mantiene por el
equilibrio entre las divisiones de clulas madre que generan dos clulas madre con capacidad
de autorrenovarse o dos que se diferencian.6
Inteligencia artificial[editar]
En inteligencia artificial, un programa estocstico opera utilizando mtodos probabilsticos
para solucionar problemas, como el algoritmo de recocido simulado, las redes neuronales
estocsticas, la optimizacin estocstica, los algoritmos genticos y la programacin gentica.
Un problema puede ser estocstico por s mismo, como al planificar bajo incertidumbre.
Msica[editar]
En Msica se pueden generar elementos estocsticos mediante procesos matemticos. Es
factible utilizar procesos estocsticos para componer piezas fijas, que se pueden producir en
una interpretacin.
Uno de los precursores de la msica estocstica es Iannis Xenakis, quien para componer
utiliz probabilidad, teora de juegos, teora de grupos, teora de conjuntos y lgebra de Boole.
Tambin utilizaba con frecuencia ordenadores para producir sus trabajos. Antes, John Cage y
otros autores haban compuesto msica aleatoria o indeterminada, que se crea mediante
procesos al azar pero que carece de una base matemtica estricta.
Reproduccin del color[editar]
Cuando se realiza reproduccin del color, se separa la imagen en los colores que le dan forma
a travs de la toma de mltiples fotografas filtradas para cada color. La pelcula resultante
representa los diferentes datos de cian, magenta, amarillo y negro. La impresin en color es
un sistema binario, donde la tinta puede estar o no estar presente, de modo que todas las
separaciones de color que van a ser impresas deben poder ser trasladadas en puntos en
alguna fase del proceso de trabajo. Las lneas de pantallatradicionales, que tienen amplitud
modulada, sufren problemas con el patrn de Moir, pero siguieron siendo utilizadas hasta
que el proceso estocstico conocido en ingls como stochastic screening apareci. Un
proceso de puntos estocstico (o de frecuencia modulada) crea una imagen de mayor
agudeza.
Lengua y lingstica[editar]
Los acercamientos no deterministas en los estudios de la lengua se inspiran principalmente en
el trabajo de Ferdinand de Saussure. En las teoras lingsticas basadas en el uso, por
ejemplo, donde se argumenta que la competencia, o habla, se basa en la actuacin, en el
sentido del conocimiento lingstico, siendo este basado en la frecuencia de la experiencia, se
suele decir que la gramtica es probabilstica y variable antes que fija y absoluta. Esto es as,
porque la competencia de una persona puede cambiar de acuerdo a la propia experiencia en
trminos lingsticos. De esta manera, la frecuencia de eventos de uso determina el
conocimiento que un individuo tiene de la lengua en cuestin.
Ciencias sociales y economa[editar]
La teora de la ciencia social estocstica es similar a la teora de sistemas 7 en que los eventos
son interacciones de los sistemas, aunque con un marcado nfasis sobre los procesos
inconscientes. El evento crea sus propias condiciones de posibilidad, hacindolo impredecible
para las variables que participan de l. La teora de la ciencia social estocstica puede verse
como una elaboracin de un tipo de "tercer eje" en el que puede situarse el comportamiento
humano en la lnea de la oposicin tradicional entre "naturaleza vs cuidado".
Industria[editar]
Se asume que los procesos industriales son procesos estocsticos. Este supuesto es vlido
de modo general tanto para procesos industriales continuos como por lotes. La prueba y
monitorizacin del proceso se graba utilizando un mapa de control de procesos que traza un
parmetro de un proceso de control en el tiempo. Tpicamente, una docena o ms de
parmetros sern monitorizados de modo simultneo. Los modelos estadsticos son utilizados
para definir lneas lmite que definen cuando las acciones correctivas deben tomarse para
llevar el proceso hacia su ventana de operaciones intencionales.
Finanzas[editar]
Los mercados financieros utilizan modelos estocsticos para representar el comportamiento
aparentemente aleatorio de activos como los valores, las materias primas y los tipos de
inters. Estos modelos son utilizados, entonces, por los analistas cuantitativos para valorar el
precio de los valores, ttulos de renta fija o de los tipos de inters. Estas tcnicas son
igualmente utilizadas en la industria de los seguros.
Vase tambin[editar]
Azar
Fenmeno aleatorio
Proceso estocstico
Inteligencia artificial
Dinmica de sistemas
Sistema complejo
Sistema dinmico
Mtodo de Montecarlo
Referencias[editar]
1. Volver arriba Entrada en el diccionario para el trmino "estocstico" en el DRAE.
2. Volver arriba M. Kac & J. Logan, en Fluctuation Phenomena, eds. E.W. Montroll & J.L.
Lebowitz, North-Holland, msterdam, 1976.
4. Volver arriba Jeff Miller et al. Earliest Known Uses of Some of the Words of
Mathematics (S). Consultado el 25 de enero de 2012.
5. Volver arriba Douglas Hubbard "How to Measure Anything: Finding the Value of
Intangibles in Business" pg. 46, John Wiley & Sons, 2007.
6. Volver arriba Vinay Kumar; Abul K. Abbas; Nelson Fausto; Jon C. Aster (2010).
Captulo 3:Renovacin, reparacin y regeneracin tisular. escrito en Estados
Unidos. Patologa estructural y funcional. Robbins y Cotran (8a edicin). Espaa:
Saunders Elsevier. pp. 79-110. ISBN 978-1-4160-3121-5. OCLC 726744982.
Dinmica
Para otros usos de este trmino, vase Dinmica (desambiguacin).
La dinmica es la rama de la fsica que describe la evolucin en el tiempo de un sistema
fsico en relacin con los motivos o causas que provocan los cambios de estado fsicoy/o
estado de movimiento. El objetivo de la dinmica es describir los factores capaces de producir
alteraciones de un sistema fsico, cuantificarlos y plantear ecuaciones de movimiento o
ecuaciones de evolucin para dicho sistema de operacin. El estudio de la dinmica es
prominente en los sistemas mecnicos (clsicos, relativistas o cunticos), pero tambin en
la termodinmica y electrodinmica. En este artculo se describen los aspectos principales de
la dinmica en sistemas mecnicos, y se reserva para otros artculos el estudio de la dinmica
en sistemas no mecnicos.
En otros mbitos cientficos, como la economa o la biologa, tambin es comn hablar de
dinmica en un sentido similar al de la fsica, para referirse a las caractersticas de la
evolucin a lo largo del tiempo del estado de un determinado sistema.
ndice
[ocultar]
1Historia
2Clculo en dinmica
o 2.1Leyes de conservacin
o 2.2Ecuaciones de movimiento
o 3.1Dinmica de la partcula
o 4.1Inercia
o 4.2Trabajo y energa
o 4.3Fuerza y potencial
5Sistemas dinmicos
6Vase tambin
7Referencias
o 7.1Bibliografa
o 7.2Enlaces externos
Historia[editar]
Una de las primeras reflexiones sobre las causas de movimiento es la debida al filsofo
griego Aristteles. Aristteles defini el movimiento, lo dinmico ( ), como:
La realizacin acto, de una capacidad o posibilidad de ser potencia, en tanto que se est actualizando.
Por otra parte, a diferencia del enfoque actual, Aristteles invierte el estudio de la cinemtica y
dinmica, estudiando primero las causas del movimiento y despus el movimiento de los
cuerpos. Este enfoque dificult el avance en el conocimiento del fenmeno
del movimiento hasta, en primera instancia, San Alberto Magno, que fue quien hizo notar esta
dificultad, y en ltima instancia hasta Galileo Galilei e Isaac Newton. De hecho, Thomas
Bradwardine, en 1328, present en su De proportionibus velocitatum in motibus una ley
matemtica que enlazaba la velocidad con la proporcin entre motivos a fuerzas de
resistencia; su trabajo influy la dinmica medieval durante dos siglos, pero, por lo que se ha
llamado un accidente matemtico en la definicin de acrecentar, su trabajo se descart y no
se le dio reconocimiento histrico en su da.1
Los experimentos de Galileo sobre cuerpos uniformemente acelerados condujeron a Newton a
formular sus leyes fundamentales del movimiento, las cuales present en su obra
principal Philosophiae Naturalis Principia Mathematica.
Los cientficos actuales consideran que las leyes que formul Newton dan las respuestas
correctas a la mayor parte de los problemas relativos a los cuerpos en movimiento, pero
existen excepciones. En particular, las ecuaciones para describir el movimiento no son
adecuadas cuando un cuerpo viaja a altas velocidades con respecto a la velocidad de la luz o
cuando los objetos son de tamao extremadamente pequeos comparables a los tamaos.
Clculo en dinmica[editar]
En mecnica clsica y mecnica relativista, mediante los conceptos
de desplazamiento, velocidad y aceleracin es posible describir los movimientos de un cuerpo
u objeto sin considerar cmo han sido producidos, disciplina que se conoce con el nombre
de cinemtica. Por el contrario, la dinmica es la parte de la mecnica que se ocupa del
estudio del movimiento de los cuerpos sometidos a la accin de las fuerzas. En sistemas
cunticos la dinmica requiere un planteamiento diferente debido a las implicaciones
delprincipio de incertidumbre.
El clculo dinmico se basa en el planteamiento de ecuaciones del movimiento y su
integracin. Para problemas extremadamente sencillos se usan las ecuaciones de lamecnica
newtoniana directamente auxiliados de las leyes de conservacin. En mecnica clsica y
relativista, la ecuacin esencial de la dinmica es la segunda ley de Newton (o ley de Newton-
Euler) en la forma:
donde F es la sumatoria de las fuerzas y p la cantidad de movimiento. La ecuacin anterior es
vlida para una partcula o un slido rgido, para un medio continuo puede escribirse una
ecuacin basada en esta que debe cumplirse localmente. En teora de la relatividad general
no es trivial definir el concepto de fuerza resultante debido a la curvatura del espacio tiempo.
En mecnica cuntica no relativista, si el sistema es conservativo la ecuacin fundamental es
la ecuacin de Schrdinger:
Leyes de conservacin[editar]
Artculo principal: Ley de conservacin
Las leyes de conservacin pueden formularse en trminos de teoremas que establecen bajo
qu condiciones concretas una determinada magnitud "se conserva" (es decir, permanece
constante en valor a lo largo del tiempo a medida que el sistema se mueve o cambia con el
tiempo). Adems de la ley de conservacin de la energa las otras leyes de conservacin
importante toman la forma de teoremas vectoriales. Estos teoremas son:
La dinmica del punto material es una parte de la mecnica newtoniana en la que los sistemas
se analizan como sistemas de partculas puntuales y que se ejercen fuerzas instantneas a
distancia.
En la teora de la relatividad no es posible tratar un conjunto de partculas cargadas en mutua
interaccin, usando simplemente las posiciones de las partculas en cada instante, ya que en
dicho marco se considera que las acciones a distancia violan la causalidad fsica. En esas
condiciones la fuerza sobre una partcula, debida a las otras, depende de las posiciones
pasadas de la misma.
Dinmica del slido rgido[editar]
Artculo principal: Mecnica del slido rgido
La mecnica de un slido rgido es aquella que estudia el movimiento y equilibrio de slidos
materiales ignorando sus deformaciones. Se trata, por tanto, de un modelo matemtico til
para estudiar una parte de la mecnica de slidos, ya que todos los slidos reales son
deformables. Se entiende por slido rgido un conjunto de puntos del espacio que se mueven
de tal manera que no se alteran las distancias entre ellos, sea cual sea la fuerza actuante
(matemticamente, el movimiento de un slido rgido viene dado por un grupo uniparamtrico
de isometras).
Dinmica de medios continuos y teora de campos[editar]
Artculos principales: Medio continuo y Teora de campos.
En fsica existen otras entidades como los medios continuos (slidos deformables y fluidos) o
los campos (graviatorio, electromagntico, etc.) que no pueden ser descritos mediante un
nmero finito de coordenadas que caractericen el estado del sistema. En general, se
requieren funciones definidas sobre un dominio cuatridiomensional o regin. El tratamiento de
la mecnica clsica y la mecnica relativista de los medios continuos requiere el uso
de ecuaciones diferenciales en derivadas parciales, lo cual ocasiona dificultades analticas
mucho ms notables que las encontradas en los sistemas con un nmero finito de
coordenadas o grados de libertad (que frecuentemente pueden ser tratadas como sistemas
de ecuaciones diferenciales ordinarias).
Sistemas dinmicos[editar]
Artculo principal: Sistema dinmico
Vase tambin[editar]
Invariancia galileana
Dinmica de sistemas
Esttica
Referencias[editar]
1. Volver arriba Sylla, E.D. (2008). Medieval dynamics. physics today 61 (4): 51-56.
Bibliografa[editar]
Del proceso de programacin surge lo que comnmente se conoce como software (conjunto
de programas), aunque estrictamente este ltimo abarca mucho ms que solo la
programacin.
ndice
[ocultar]
1Historia
2Lxico y programacin
3Programas y algoritmos
4Compilacin
6Referencias histricas
7Objetivos de la programacin
9Vase tambin
10Referencias
11Enlaces externos
Historia[editar]
Para crear un programa, y que la computadora lo interprete y ejecute las instrucciones escritas
en l, debe escribirse en un lenguaje de programacin. En sus inicios las computadoras
interpretaban solo instrucciones en un lenguaje especfico, del ms bajo nivel, conocido
como cdigo mquina, siendo ste excesivamente complicado para programar. De hecho solo
consiste en cadenas de nmeros 1 y 0 (sistema binario). Para facilitar el trabajo de
programacin, los primeros cientficos, que trabajaban en el rea, decidieron reemplazar las
instrucciones, secuencias de unos y ceros, por palabras o abreviaturas provenientes delingls;
las codificaron y crearon as un lenguaje de mayor nivel, que se conoce como Assembly
o lenguaje ensamblador. Por ejemplo, para sumar se podra usar la letra A de la palabra
inglesa add (sumar). En realidad escribir en lenguaje ensamblador es bsicamente lo mismo
que hacerlo en lenguaje mquina, pero las letras y palabras son bastante ms fciles de
recordar y entender que secuencias de nmeros binarios. A medida que la complejidad de las
tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un mtodo
sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una
tarea tan trivial como multiplicar dos nmeros puede necesitar un conjunto de instrucciones en
lenguaje ensamblador, en un lenguaje de alto nivel bastar con solo una. Una vez que se
termina de escribir un programa, sea en ensamblador o en algunos lenguajes de alto nivel, es
necesario compilarlo, es decir, traducirlo completo a lenguaje mquina.1 Eventualmente ser
necesaria otra fase denominada comnmente link o enlace, durante la cual se anexan al
cdigo, generado durante la compilacin, los recursos necesarios de alguna biblioteca. En
algunos lenguajes de programacin, puede no ser requerido el proceso de compilacin y
enlace, ya que pueden trabajar en modo intrprete. Esta modalidad de trabajo es equivalente
pero se realiza instruccin por instruccin, a medida que es ejecutado el programa.
Lxico y programacin[editar]
La programacin se rige por reglas y un conjunto ms o menos reducido de rdenes,
expresiones, instrucciones y comandos que tienden a asemejarse a una lengua
naturalacotada (en ingls); y que adems tienen la particularidad de una reducida
ambigedad. Cuanto menos ambiguo es un lenguaje de programacin, se dice, es ms
potente. Bajo esta premisa, y en el extremo, el lenguaje ms potente existente es el binario,
con ambigedad nula (lo cual lleva a pensar as del lenguaje ensamblador). [cita requerida]
En los lenguajes de programacin de alto nivel se distinguen diversos elementos entre los que
se incluyen el lxico propio del lenguaje y las reglas semnticas y sintcticas.
Programas y algoritmos[editar]
Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de
seguirse para resolver un problema. Un programa normalmente implementa (traduce a un
lenguaje de programacin concreto) uno o ms algoritmos. Un algoritmo puede expresarse de
distintas maneras: en forma grfica, como un diagrama de flujo, en forma de cdigo como
en pseudocdigo o un lenguaje de programacin, en forma explicativa, etc.
Los programas suelen subdividirse en partes menores, llamadas mdulos, de modo que la
complejidad algortmica de cada una de las partes sea menor que la del programa completo,
lo cual ayuda al desarrollo del programa. Esta es una prctica muy utilizada y se conoce como
"refino progresivo".
Segn Niklaus Wirth, un programa est formado por los algoritmos y la estructura de datos.
Programacin declarativa
Programacin estructurada
Programacin modular
Compilacin[editar]
El programa escrito en un lenguaje de programacin de alto nivel (fcilmente comprensible por
el programador) es llamado programa fuente y no se puede ejecutar directamente en una
computadora. La opcin ms comn es compilar el programa obteniendo un mdulo objeto,
aunque tambin puede ejecutarse en forma ms directa a travs de un intrprete informtico.
El cdigo fuente del programa se debe someter a un proceso de traduccin para convertirlo a
lenguaje mquina o bien a un cdigo intermedio, generando as un mdulo denominado
"objeto". A este proceso se le llama compilacin.
Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de
compilacin en archivos objetos (un tpico .o para Unix, .obj para MS-Windows, DOS); para
enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de
compilacin puede almacenarse solo de forma temporal. Un programa podra tener partes
escritas en varios lenguajes, por ejemplo, Java, C, C++ y ensamblador, que se podran
compilar de forma independiente y luego enlazar juntas para formar un nico
mdulo ejecutable.
2. Recoger los requisitos del programa. Debe quedar claro qu es lo que debe hacer el
programa y para qu se necesita.
3. Realizar el anlisis de los requisitos del programa. Debe quedar claro qu tareas debe
realizar el programa. Las pruebas que comprueben la validez del programa se pueden
especificar en esta fase.
4. Disear la arquitectura del programa. Se debe descomponer el programa en partes de
complejidad abordable.
6. Probar el programa. Comprobar que pasan pruebas que se han definido en el anlisis
de requisitos.
La ingeniera del software se centra en los pasos de planificacin y diseo del programa,
mientras que antiguamente (programacin artesanal) la realizacin de un programa consista
casi nicamente en escribir el cdigo, bajo solo el conocimiento de los requisitos y con una
modesta fase de anlisis y diseo.
Referencias histricas[editar]
El trabajo de Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron, que realiz para la
mquina de Babbage le hizo ganarse el ttulo de primera programadora de computadoras del
mundo, aunque Babbage nunca complet la construccin de la mquina. El nombre
del lenguaje de programacin Ada fue escogido como homenaje a esta programadora.
Objetivos de la programacin[editar]
La programacin debe perseguir la obtencin de programas de calidad. Para ello se establece
una serie de factores que determinan la calidad de un programa. Algunos de los factores de
calidad ms importantes son los siguientes:
Claridad. Es muy importante que el programa sea lo ms claro y legible posible, para
facilitar tanto su desarrollo como su posterior mantenimiento. Al elaborar un programa se
debe intentar que su estructura sea sencilla y coherente, as como cuidar el estilo de
programacin. De esta forma se ve facilitado el trabajo del programador, tanto en la fase
de creacin como en las fases posteriores de correccin de errores, ampliaciones,
modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo
cual la claridad es an ms necesaria para que otros puedan continuar el trabajo
fcilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar
secciones de cdigo; una prctica comn es realizar aclaraciones en el cdigo fuente
utilizando lneas de comentarios. Contrariamente, algunos por diversin o para impedirle
un anlisis cmodo a otros programadores, recurren al uso de cdigo ofuscado.
Eficiencia. Se trata de que el programa, adems de realizar aquello para lo que fue
creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los
recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer
referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la
cantidad de memoria que necesita, pero hay otros recursos que tambin pueden ser de
consideracin para mejorar la eficiencia de un programa, dependiendo de su naturaleza
(espacio en disco que utiliza, trfico en la red que genera, etc.).
El trmino ciclo de vida del software describe el desarrollo de software, desde la fase inicial
hasta la fase final, incluyendo su estado funcional. El propsito es definir las distintas fases
intermedias que se requieren para validar el desarrollo de la aplicacin, es decir, para
garantizar que el software cumpla los requisitos para la aplicacin y verificacin de los
procedimientos de desarrollo: se asegura que los mtodos utilizados son apropiados. Estos
mtodos se originan en el hecho de que es muy costoso rectificar los errores que se detectan
tarde dentro de la fase de implementacin (programacin propiamente dicha), o peor aun,
durante la fase funcional. El modelo de ciclo de vida permite que los errores se detecten lo
antes posible y por lo tanto, permite a los desarrolladores concentrarse en la calidad del
software, en los plazos de implementacin y en los costos asociados. El ciclo de vida bsico
de un software consta de, al menos, los siguientes procedimientos:
Definicin de objetivos: definir el resultado del proyecto y su papel en la estrategia
global.
Prueba beta (o validacin), para garantizar que el software cumple con las
especificaciones originales.
Vase tambin[editar]
Portal:Programacin. Contenido relacionado con Programacin.
Wikiproyecto:Informtica/Programacin
error de software
ingeniera en computacin
ingeniera en informtica
lenguaje de programacin
programacin automtica
programacin estructurada
programacin extrema
programacin en pareja
programacin dinmica
pruebas de software
software
Referencias[editar]
1. Volver arriba
1Introduccin
2Principio de optimalidad
3Ejemplos
o 3.1Sucesin de Fibonacci
o 3.2Coeficientes binomiales
5Referencias
6Enlaces externos
Introduccin[editar]
Una subestructura ptima significa que se pueden usar soluciones ptimas de subproblemas
para encontrar la solucin ptima del problema en su conjunto. Por ejemplo, elcamino ms
corto entre dos vrtices de un grafo se puede encontrar calculando primero el camino ms
corto al objetivo desde todos los vrtices adyacentes al de partida, y despus usando estas
soluciones para elegir el mejor camino de todos ellos. En general, se pueden resolver
problemas con subestructuras ptimas siguiendo estos tres pasos:
2. Resolver estos problemas de manera ptima usando este proceso de tres pasos
recursivamente.
3. Usar estas soluciones ptimas para construir una solucin ptima al problema original.
Decir que un problema tiene subproblemas superpuestos es decir que se usa un mismo
subproblema para resolver diferentes problemas mayores. Por ejemplo, en la sucesin de
Fibonacci (F3 = F1 + F2 y F4 = F2 + F3) calcular cada trmino supone calcular F2. Como para
calcular F5 hacen falta tanto F3 como F4, una mala implementacin para calcular F5 acabar
calculando F2 dos o ms veces. Esto sucede siempre que haya subproblemas superpuestos:
una mala implementacin puede acabar desperdiciando tiempo recalculando las soluciones
ptimas a problemas que ya han sido resueltos anteriormente.
Esto se puede evitar guardando las soluciones que ya hemos calculado. Entonces, si
necesitamos resolver el mismo problema ms tarde, podemos obtener la solucin de la lista
de soluciones calculadas y reutilizarla. Este acercamiento al problema se
llama memoizacin (no confundir con memorizacin; en ingls es llamado memoization,
vase en). Si estamos seguros de que no volveremos a necesitar una solucin en concreto, la
podemos descartar para ahorrar espacio. En algunos casos, podemos calcular las soluciones
a problemas que de antemano sabemos que vamos a necesitar.
Subproblemas superpuestos
Subestructuras ptimas
Memoizacin
Ejemplos[editar]
Sucesin de Fibonacci[editar]
Esta sucesin puede expresarse mediante la siguiente recurrencia:
1. fib(5)
2. fib(4) + fib(3)
La funcin resultante tiene complejidad O(n), en lugar de 2 a la n (puesto que genera un rbol
binaria en memoria, donde el ltimo nivel de hojas es de la forma 2 a la n). En otras palabras
la programacin dinmica, para este problema en particular convierte un problema NP a un
problema P.
Otro nivel de refinamiento que optimizara la solucin sera quedarnos tan slo con los dos
ltimos valores calculados en lugar de toda la tabla, que son realmente los que nos resultan
tiles para calcular la solucin a los subproblemas.
Suponemos que la tabla se introduce por primera vez correctamente inicializada, con todas las
posiciones con un valor invlido, como por ejemplo -1, que se distingue por no ser uno de los
valores que computa la funcin.
Coeficientes binomiales[editar]
El algoritmo recursivo que calcula los coeficientes binomiales resulta ser de complejidad
exponencial por la repeticin de los clculos que realiza. No obstante, es posible disear un
algoritmo con un tiempo de ejecucin de orden O(nk) basado en la idea del Tringulo de
Pascal, idea claramente aplicable mediante programacin dinmica. Para ello es necesaria la
creacin de una tabla bidimensional en la que ir almacenando los valores intermedios que se
utilizan posteriormente.
= + si 0 < k < n
= =1
La idea para construir la tabla de manera eficiente y sin valores intiles es la siguiente:
0 1 2 3 ... k-1 k
0 1
1 1 1
2 1 2 1
3 1 3 3 1
n C(n,k)
El siguiente algoritmo memorizado de estrategia Bottom-up tiene complejidad polinmica y va
rellenando la tabla de izquierda a derecha y de arriba abajo:
Por supuesto, el problema de los Coeficientes Binomiales tambin puede resolverse mediante
un enfoque Top-down.
Vamos a llamar a la tabla de tarifas, T. As, T[i,j] ser el coste de ir del embarcadero i al j. La
matriz ser triangular superior de orden n, donde n es el nmero de embarcaderos.
La idea recursiva es que el coste se calcula de la siguiente manera:
A partir de esta idea, podemos elaborar una expresin recurrente para la solucin:
0 si i = j
C(i, j)=
Min(T(i,k) + C(k,j), T(i,j)) si i < k <= j
ndice
[ocultar]
1Historia
2Definicin
3Simplificaciones y generalizaciones
4Mtodos de resolucin
o 4.1Algoritmos voraces
o 4.2Algoritmos genticos
5Referencias
Historia[editar]
El problema de la mochila es uno de los 21 problemas NP-completos de Richard Karp,
establecidos por el informtico terico en un famoso artculo de 1972.1 Ha sido intensamente
estudiado desde mediados del siglo XX y se hace referencia a l en el ao 1897, en un
artculo de George Mathews Ballard.2
Si bien la formulacin del problema es sencilla, su resolucin es ms compleja.
Algunos algoritmos existentes pueden resolverlo en la prctica para casos de un gran tamao.
Sin embargo, la estructura nica del problema, y el hecho de que se presente como un
subproblema de otros problemas ms generales, lo convierten en un problema frecuente en
la investigacin.
Definicin[editar]
A continuacin se define formalmente el problema. 3 Supongamos que tenemos distintos tipos
de tems, que van del 1 al . De cada tipo de tem se tienen tems disponibles, donde es un
entero positivo que cumple .
Cada tipo de tem i tiene un beneficio asociado dado por vi y un peso (o volumen) wi.
Usualmente se asume que el beneficio y el peso no son negativos. Para simplificar la
representacin, se suele asumir que los tems estn listados en orden creciente segn el peso
(o volumen).
Por otro lado se tiene una mochila, donde se pueden introducir los tems, que soporta un peso
mximo (o volumen mximo) W.
El problema consiste en meter en la mochila tems de tal forma que se maximice el valor de
los tems que contiene y siempre que no se supere el peso (o volumen) mximo que
puede soportar la misma. La solucin al problema vendr dado por la secuencia de
variables x1, x2, ..., xn donde el valor de xi indica cuantas copias se metern en la mochila del
tipo de tem i.
El problema se puede expresar matemticamente por medio del siguiente programa lineal:
Si para se dice que se trata del problema de la mochila 0-1. Si uno o ms es infinito
entonces se dice que se trata del problema de la mochila no acotado tambin llamado a
veces problema de la mochila entera. En otro caso se dice que se trata del problema
de la mochila acotado
Simplificaciones y generalizaciones[editar]
Problema de la mochila simple[editar]
Artculo principal: Problema de la mochila simple
Observar que en un problema de la mochila 0-1, si para cada tipo de tem el beneficio y
los pesos son idnticos (vi=wi), entonces el problema quedara formulado de la siguiente
forma
Por tanto si existe un vector xi tal que , entonces esa ser una solucin al problema. Si
existe una solucin xi de este tipo, resolver el problema de la mochila realmente es
resolver el problema de la suma de subconjuntos. Adems si el conjunto de los pesos
de los elementos es una secuencia supercreciente, es decir, se verifica que:
Mtodos de resolucin[editar]
Este artculo o seccin sobre matemticas necesita ser wikificado con
formato acorde a las convenciones de estilo.
Por favor, edtalo para que las cumpla. Mientras tanto, no elimines este aviso, puest
enero de 2012.
Tambin puedes ayudar wikificando otros artculos.
Algoritmos voraces[editar]
a) Aplicacin del mtodo:
Algoritmos genticos[editar]
Consisten en mtodos adaptativos de optimizacin que tratan de hallar
(xi,...,xn) tales que [Sumatoria (bi*xi) desde i= 1 hasta n] sea mximo.
Pueden usarse para resolver problemas de bsqueda y optimizacin. Se
basan en el proceso gentico de los organismos vivos, por imitacin de
este proceso, los Algoritmos Genticos son capaces de ir creando
soluciones para problemas del mundo real. La evolucin de dichas
soluciones hacia valores ptimos del problema depende en buena medida
de una adecuada codificacin de las mismas. Para utilizar un algoritmo
gentico hacen falta tres elementos: