Diferencia entre revisiones de «Programación dinámica/Problema del cambio de palabra (programación dinámica en Java)»

Contenido eliminado Contenido añadido
imported>Jison
Línea 1:
{{wikificar|informática}}
{{a wikilibros}}
El '''problema del cambio de palabra''' se produce cuando siendo "u" y "v" dos palabras ([[Cadena de caracteres|cadenas de caracteres]]). Se desea transformar u en v con el mínimo número de operaciones básicas del tipo siguiente: eliminar un carácter, añadir un carácter, y cambiar un carácter. Por ejemplo, podemos pasar de abbac a abcbc en tres pasos:
*abbac _ abac (eliminamos b en la posición 3)
*_ ababc (añadimos b en la posición 4)
*_ abcbc (cambiamos a en la posición 3 por c)
 
Sin embargo, esta tranformación no es óptima. Lo que queremos en este caso es [[Diseño|diseñar]] un [[algoritmo]] que calcule el número mínimo de operaciones, de esos tres tipos, necesarias para transformar u en v y cuáles son esas operaciones. En el caso anterior se podría llevar a cabo con dos operaciones nada mas:
== Descripción del problema ==
*abbac → abcac (cambiamos b en la posición 3 por c)
 
*→abcbc (cambiamos a en la posición 4 por b)
'''Cambio de palabra''': Sean u y v dos palabras (cadenas de
caracteres). Se desea transformar u en v con el mínimo número de operaciones básicas del tipo siguiente: eliminar un
carácter, añadir un carácter, y cambiar un carácter. Por ejemplo, podemos pasar de abbac a abcbc en tres pasos:
abbac _ abac (eliminamos b en la posición 3)
_ ababc (añadimos b en la posición 4)
_ abcbc (cambiamos a en la posición 3 por c)
Sin embargo, esta tranformación no es óptima. Lo que queremos en este caso es diseñar un algoritmo que calcule el
número mínimo de operaciones, de esos tres tipos, necesarias paratransformar u en v y cuáles son esas operaciones.
En el caso anterior se podría llevar a cabo con dos operaciones nada mas:
abbac → abcac (cambiamos b en la posición 3 por c)
→abcbc (cambiamos a en la posición 4 por b)
 
== Código ==
=== Primera clase===
 
=== Primera clase Aplicación.java es la principal ===
<source lang="java">
import javax.swing.JOptionPane;
Línea 48 ⟶ 41:
</source>
 
=== Segunda clase CambioPalabra.java es la del proceso ===
 
<source lang="java">
Línea 197 ⟶ 190:
 
== Véase también ==
* [[Programación dinámica (computación)]]
 
* [[Programación dinámica (computación)]]
*[[Problema de la mochila con programación dinámica]]
*[[Problema de las monedas con programación dinámica]]