Está en la página 1de 8

Apuntes para la Olimpiada Mexicana de Informtica

TEMA: CONCEPTOS BSICOS


Csar Arturo Cepeda !arc"a
Mxico #$% &' enero ())*
El problema de resolver un problema
En los aos que llevo dentro del comit cientfico de la Olimpiada de Informtica muchas
veces se ha acercado a mi algn alumno o maestro con la siguiente pregunta: !u se
necesita saber para poder resolver un problema de olimpiada"#
$a pregunta% claro% suena l&gica% incluso indispensable% !u otra cosa tiene ms sentido
preguntar cuando vamos a resolver un e'amen que el temario del mismo" !u hace
cualquier estudiante el da previo a su evaluaci&n final sino repasar los apuntes de su
clase" !u me(or forma de obtener una buena calificaci&n que resolver algunos
reactivos similares a los del e'amen con el fin de practicar" !u me(or forma de
asegurar un buen lugar en la Olimpiada% que dominar los temas de los problemas"
)in embargo% a pesar de que la considero la me(or posible% mi respuesta a dicha pregunta
parece nunca de(arlos satisfechos% de hecho en la (unta de lderes de la *ta O+I hubo un
gran debate sobre la misma, +i respuesta a la pregunta en cuesti&n es: $O !-E -.
/$-+.O .E0E)I1/ )/2E3 4/3/ 3E)O$5E3 -. 43O2$E+/ 6E O$I+4I/6/% E)
)/2E3 43O73/+/3% /$7-.O) 0O.0E41O) 28)I0O) 6E /$7E23/ 9 )O23E
1O6O 1IE.E !-E )/2E3 0O+O 3E)O$5E3 -. 43O2$E+/,#
0&mo vo: a saber si puedo resolver un problema% si no se de lo que se trata" 9 qu
tiene que ver" .uestros mtodos educativos nos han acostumbrado a un cierto
esquema, El maestro imparte una clase : luego da tarea sobre el tema que se e'puso,
4or e(emplo% se da una clase de ecuaciones cuadrticas : despus se pone el siguiente
e(ercicio,
Un granjero tiene un rancho rectangular con un permetro de 110 metros y un rea de
700 metros cuadrados. Cules son las dimensiones del rancho?
El estudiante sae que para resolver ste problema tiene que usar ecuaciones
cuadrticas% !or "u# otra ra$%n lo pondran como tarea de esa clase? 1arde o temprano
plantea las siguientes dos ecuaciones,
700
110 2 2
=
= +
xy
y x
las que a su ve; conducen a la ecuaci&n cuadrtica
700 ) 55 ( = x x
la cual es resuelta usando algunas f&rmulas vistas en clase% el alumno puede fcilmente
despe(ar & : resolver el problema,
En alguna otra clase sobre geometra se discuten las propiedades de un tringulo, )e
e'plica el teorema de 4itgoras : se conclu:e de nuevo con otra serie de problemas para
resolver, El alumno% por supuesto% no tiene ninguna duda de que para resolver dichos
problemas es necesario utili;ar el teorema de 4itgoras,
Apuntes para la Olimpiada Mexicana de Informtica
TEMA: CONCEPTOS BSICOS
Csar Arturo Cepeda !arc"a
Mxico #$% &' enero ())*
)in embargo% se anto(a que esa no es la manera correcta de ensear, +a relaci,n entre
un pro-lema . un mtodo de-er"a ser discutida desde la perspecti/a del pro-lema%
no del mtodo0
$a dificultad a la que se enfrentan las personas cuando quieren resolver un problema del
mundo real% la ma:or parte de las veces no es la falta de conocimientos% el verdadero
problema es que en la ma:ora de los casos la persona no tiene ni la mas mnima idea de
cual conocimiento debe aplicar, 4orque desgraciadamente los problemas de la vida real%
igual que los de la Olimpiada% no aparecen en el final del captulo de un libro,
0on lo que volvemos a mi respuesta para la pregunta original, 4ara poder resolver
eficientemente problemas de olimpiada% es necesario tener ms que simple conocimiento
de algoritmos, )e requiere una devoci&n a determinar la me(or combinaci&n de
acercamientos al ob(etivo que se desea alcan;ar dentro del tiempo disponible,
3econocer la comple(idad real de un problema es un prerequisito para su soluci&n, Es
importante entender que un problema representa una diferencia entre el estado actual :
el estado deseado, )i no tienes un ob(etivo definido% entonces no tienes un problema,
4uedes tener una lista de datos : no importa cuantas operaciones realices con ellos
nunca resolvers ningn problema% :a que no tienes ningn ob(etivo, .o ha: nada que
resolver,
3esolver problemas de programaci&n es un arte% : desgraciadamente es un arte cado en
el olvido, En la actualidad resulta mucho mas fcil obtener un componente o alguna
rutina de Internet que resuelva un problema parecido al que nos enfrentamos que pensar
en una soluci&n adecuada, )in embargo% comnmente en un intento por utili;ar un
algoritmo conocido% cambiamos el ob(etivo a alcan;ar simplemente para lograr que
nuestro algoritmo enca(e en el problema, Es como si armado con un martillo% : queriendo
atornillar una pi(a a una tabla% golperamos la pi(a con el martillo hasta hacerla entrar,
/n cuando logrramos hacerla entrar nunca mas se podra destornillar, 'rmado con un
martillo todo parece un cla(o.
6esgraciadamente% identificar el mtodo o tcnica a utili;ar en un problema especfico
dista mucho de ser una tarea trivial, )i fuera fcil o hubiera una serie de pasos definidos
para hacerlo% no sera un problema, )in embargo% aunque no e'iste el declogo del
programador si ha: una serie de recomendaciones tiles a la hora de decidir como
enfrentar cualquier problema,
1Por2u al3unos pro-lemas son dif"ciles de resol/er4
)i conocemos algunas de las ra;ones principales que hacen que comnmente un
problema sea difcil de resolver% entonces tal ve; podamos evitar caer en esas trampas,
$a ma:ora de los problemas son difciles de resolver por una o varias de las siguientes
ra;ones:
- El nmero de soluciones posibles en el espacio de bsqueda es tan grande que
prohbe una bsqueda e'haustiva por la me(or soluci&n,
- El problema en si mismo es tan complicado que para poder facilitar cualquier
respuesta tenemos que usar un modelo tan simplificado del problema que cualquier
soluci&n resulta esencialmente intil,
Apuntes para la Olimpiada Mexicana de Informtica
TEMA: CONCEPTOS BSICOS
Csar Arturo Cepeda !arc"a
Mxico #$% &' enero ())*
- $a funci&n de evaluaci&n que describe la calidad de una soluci&n posible es ruidosa o
varia con el tiempo,
- $as soluciones vlidas tienen que cumplir tantas restricciones que el simple hecho de
encontrar un soluci&n vlida cualquiera resulta difcil,
- $a persona que est resolviendo el problema no esta suficientemente preparada o
tiene alguna barrera psicol&gica que le impide descubrir la soluci&n,
.aturalmente% esta lista podra e'tenderse para incluir otros obstculos% sin embargo%
para empe;ar% estos son ms que suficientes, 0ada uno de estos puntos es un problema
en si mismo, 4ara poder resolver un problema es necesario entender el problema% as es
que a continuaci&n discutiremos brevemente cada uno de estos puntos,
El tama5o del espacio de -6s2ueda0
4ara empe;ar% que es un espacio de bsqueda, El espacio de bsqueda es el con(unto
que contiene todas las posibles representaciones de soluci&n de un problema,
1omemos para e(emplo dos problemas clsicos, )l prolema de satis*actiilidad
+ooleana ,-'./ : el !rolema del agente (iajero ,.-!/,
El problema de satisfactibilidad 2ooleana <)/1= consiste en asignar valores de verdadero
o falso a las variables &10 &10...0 &n de modo que una cierta ecuaci&n 2oolena 2,x/ evale
a verdadero, 0onsideremos el siguiente problema de >?? variables:
) ( ... ) ( ) ( ) ( 97 77
43 2
56
11 73 37 17
x x x x x x x x x X F v v v . . v . v v =
0ul es el espacio de bsqueda en este problema" En realidad% el espacio de
bsqueda% contiene todas las posibles representaciones de soluci&n% por lo que el
tamao del espacio de bsqueda depende no tanto del problema sino de la manera que
se seleccione para representar una posible soluci&n, En este caso por e(emplo% cada
variable puede tomar dos valores 5E36/6E3O o @/$)O, .osotros podramos decidir
representar estos valores como 5E36/6E3O A >% @/$)O A ?, 9 crear una cadena de
>?? nmeros <> & ?= donde el nmero i representa el valor de la variable &i. El espacio de
bsqueda contiene todas las representaciones posibles% es decir todas las cadenas de
>?? <?Bs o >Bs= posibles% la cardinalidad de este con(unto es por tanto
30 100
10 2 ~ = S ,
CEste es nmero mu: grandeD 1ratar de buscar una soluci&n correcta entre todas estas
esta completamente fuera de cualquier posibilidad, )uponiendo que tuvieramos una
computadora capa; de comprobar >??? de estas cadenas cada segundo : suponiendo
que hubiramos empe;ado a usar dicha computadora en el inicio del tiempo% es decir
hace >E%???%???%??? de aos% (usto durante el 2ig 2ang% al da de ho: no habramos
terminado de anali;ar ni siquiera el uno porciento de todo el espacio de busqueda,
$o que es peor% no es trivial encontrar una funci&n de evaluaci&n que nos indique que tan
buena# es una soluci&n% :a que para cualquier cadena% si al evaluarla obtenemos
verdadero% entonces resolvimos el problema% pero si obtenemos falso% no ha: forma de
saber que tan cerca estamos de una soluci&n correcta, Fa: algunos otros problemas que
se anto(an ms faciles que )/1 debido a que tienen una funci&n de evaluaci&n natural%
que permite saber que tan buena es un soluci&n dada, 1al es el caso de nuestro
segundo problema de e(emplo,
Apuntes para la Olimpiada Mexicana de Informtica
TEMA: CONCEPTOS BSICOS
Csar Arturo Cepeda !arc"a
Mxico #$% &' enero ())*
El problema del /gente 5ia(ero es el siguiente: )e tiene una lista de ciudades : un
agente via(ero, El agente inicia su recorrido desde una ciudad arbitraria : debe visitar
todas : cada una de las ciudades en la lista% visitando cada ciudad nicamente una ve; :
volviendo al final del recorrido a la ciudad inicial, El ob(etivo del problema es encontrar el
recorrido tal que el costo del via(e sea el mnimo posible, 4or costo del via(e se entiende
la suma de los costos de via(ar de una ciudad a otra, /qu% dependiendo del
planteamiento del problema% el costo puede ser la distancia fsica entre ciudades% o puede
estar dada por una combinaci&n de factores e'ternos como% trfico% calidad de la
carretera% horarios de accesibilidad% etc,
1)4 con G ciudades
6e nuevo% antes de cualquier cosa es necesario dimensionar el espacio de bsqueda,
0omo habamos dicho antes% el espacio de bsqueda depende de nuestra representaci&n
de la soluci&n% por lo que primero es necesario decidir la manera en la que vamos a
representar una soluci&n,
.oten que el problema puede tener muchas variantes diferentes% por e(emplo% puede ser
que no cueste lo mismo ir de i a j que ir de j a i, En este caso estaramos frente a un 1)4
asimtrico, O puede ser que estando en la ciudad & no sea posible ir a la ciudad y% :a
que no e'iste un camino entre estas dos ciudades, /s pueden pensarse muchas otras
variantes, 4ara este e(ercicio% sin embargo% consideremos un 1)4 simtrico en el que
todas las ciudades tienen caminos a todas las dems ciudades, 4ara dicho caso una
posible representaci&n de soluci&n es una permutaci&n de los nmeros > al 3 donde cada
nmero representa a una ciudad en el mapa,
1eniendo la representaci&n de la soluci&n es posible dimensionar el espacio de
bsqueda, )i se tienen 3 ciudades% el nmero de permutaciones posibles es de ! n % sin
embargo% como el recorrido es cclico <se vuelve a la ciudad en la que se empe;&=% las
dos siguientes soluciones son iguales%
> H E H I H J H ,,, H K* E H I H J H ,,, H K* H >
como el 1)4 es simtrico% cada soluci&n se puede representar de n 2 formas diferentes%
lo que nos de(a con un espacio de bsqueda de
2
)! 1 (
2
!
=
n
n
n
Apuntes para la Olimpiada Mexicana de Informtica
TEMA: CONCEPTOS BSICOS
Csar Arturo Cepeda !arc"a
Mxico #$% &' enero ())*
4ara poder apreciar el aumento en el tamao del espacio de bsqueda consideren los
siguientes casos:
- -n 1)4 con >? ciudades tiene apro'imadamente >I>%??? soluciones posibles,
- -n 1)4 con J? ciudades tiene apro'imadamente >?%???%???%???%???%???
soluciones posibles,
- -n 1)4 con E? ciudades tiene apro'imadamente >??%???%???%???%???%???%???%
???%???%???%???%???%???%???%???%???%???%???%???%???%??? soluciones posibles,
0omo se puede ver% el espacio de bsqueda de un 1)4 de E? ciudades es
inimaginablemente grande,
4uede apreciarse entonces% que problemas que de entrada parecen fciles se convierten
en problemas difciles simplemente por el hecho de que la cantidad de soluciones
posibles entre las que ha: que buscar es mu: grande, 4or lo mismo es indispensable
que antes de decidir la manera de atacar el problema% dimensionen correctamente el
espacio de bsqueda de forma que tengan un me(or conocimiento del problema al que se
enfrentan,
Modelar el pro-lema0
Es importante darse cuenta que cuando resuelven un problema en realidad estn
encontrando la soluci&n para el modelo que ustedes crearon del problema, Esto
convierte al proceso de resolver un problema en dos etapas distintas: <>= crear un modelo
del problema% <J= usar el modelo para obtener una soluci&n,
$a soluci&n#% es por tanto% vlida nicamente dentro de los trminos del modelo, )i el
modelo tiene un alto grado de fidelidad% la soluci&n resulta ms confiable, )in embargo%
si el modelo se basa en muchas suposiciones o apro'imaciones% la soluci&n puede
convertirse en algo que no tiene ningn significado% o incluso convertirse en una soluci&n
totalmente falsa,
$as formas can&nicas del )/1 : el 1)4 pueden aplicarse a una gran cantidad de
escenarios diferentes, )in embargo es importante tomar en cuenta las restricciones de
cada problema : no querer a(ustar el problema a un cierto modelo del que se conoce la
soluci&n,
4ara demostrar lo importante que resulta el modelo utili;ado veamos el siguiente e(emplo,
Fa: un crculo R de radio > dibu(ado en el suelo frente a ti, -na lnea recta L de longitud
infinita <en ambas direcciones= es tra;ada en el suelo de manera que se intersecte con el
crculo, 0ul es la probabilidad p de que la longitud l de la cuerda creada por la
intersecci&n de la lnea : el crculo sea ma:or o igual a
3
"
/ntes de considerar diferentes posibilidades revisemos algunas cuestiones geomtricas,
)e sabe que un tringulo equiltero inscrito en un crculo de radio > T tiene una longitud
de
3
% : que el radio del crculo r inscrito en el tringulo T es ?,E <ver figura=,
Apuntes para la Olimpiada Mexicana de Informtica
TEMA: CONCEPTOS BSICOS
Csar Arturo Cepeda !arc"a
Mxico #$% &' enero ())*
0rculo R% 1ringulo equilatero T : crculo inscrito r
+O6E$O >,
)abemos que la longitud l de la cuerda puede variar de ? a J% :a que J es el dimetro del
crculo R, 0onsideremos el punto medio de la lnea m, )i m est dentro de r entonces
3 > l % si m est dentro de R pero no en el interior de r entonces 3 < l , 0omo el punto
medio m puede estar en cualquier lugar dentro de R% la probabilidad de que caiga dentro
de r est determinada por la ra;&n del rea entre r : R, 4or lo tanto
( )
4
1
1
2
1
2
2
=
|
.
|

\
|
=
t
t
p
+O6E$O J,
1racemos un dimetro arbitrario en R% posteriormente% giremos R para que el dimetro
tra;ado : L sean perpendiculares, /hora s&lo es necesario observar la mitad del crculo
debido a que la longitud de la cuerda debe ser menor o igual al dimetro de R, El punto
medio de la cuerda puede estar a menos de ?,E del centro de R o no, )i est a menos de
?,E del centro entonces su longitud es ma:or o igual a
3
, 6e otra forma es menor a
3
, 4or lo tanto la probabilidad puede ser determinada por la ra;&n entre los dimetros
de r : R,
2
1
1
2
1
= = p
+O6E$O K
1omemos un punto fi(o arbitrario A en la circunferencia de R, 4osteriormente podemos
girar el crculo R hasta que el punto A pertene;ca a la lnea L, /hora tracemos una lnea
1
L que sea tangente a R en el punto A, )e puede observar que el ngulo

entre las
Apuntes para la Olimpiada Mexicana de Informtica
TEMA: CONCEPTOS BSICOS
Csar Arturo Cepeda !arc"a
Mxico #$% &' enero ())*
lneas L :
1
L nos puede determinar la probabilidad, )i
3
2
3
t

t
s s entonces el punto
medio estar dentro de r lo que nos da una longitud
3 > l
, 4or el otro lado si
3
0
t
< s
& t
t
s <
3
2
entonces
3 < l
, 6ebido a que ha:
t
posibles radianes : que un tercio
de ellos nos dan la longitud deseada% entonces la probabilidad esta dada por
3
1
3
= =
t
t
p
0ul de estos tres modelos es correcto" 4areciera que los tres casos son ra;onables :
las tres soluciones halladas para p tienen sentido% sin embargo todas son diferentes,
$a ra;&n de la variaci&n depende de que cada modelo hace suposiciones diferentes
sobre como se tra;& la lnea infinita, $a suposici&n en el primer modelo fue la de que el
punto medio de la lnea poda caer en cualquier parte del crculo sin que ningn punto o
regi&n tuviera me(or probabilidad que cualquier otro, 1rata de hacer e'plcitas las
suposiciones para el segundo : tercer modelo : te dars cuenta de porque difieren los
resultados,
Es importante por tanto% fi(arse bien en el modelo del problema% :a que una suposici&n
implcita puede llevar a resultados drsticamente diferentes, Imaginen la cantidad de
problemas que esto puede acarrear en una situaci&n mas complicada,
+a funci,n de e/aluaci,n /aria con el tiempo0
$a funci&n de evaluaci&n es la que nos permite saber si una soluci&n es vlida o que tan
buena# es esa soluci&n comparada con otra, En un caso general la funci&n de
evaluaci&n toma como argumento una posible soluci&n : devuelve un valor numrico que
indica que tan cerca se esta de la soluci&n &ptima, 3esulta obvio que una funci&n de
evaluaci&n correcta debe devolver el m'imo valor% cuando la soluci&n para el modelo es
la &ptima,
Fa: problemas que presentan una funci&n de evaluaci&n natural% como el caso del 1)4%
en este problema% para evaluar la calidad# de la soluci&n basta con sumar los costos del
recorrido% la soluci&n &ptima es la que tiene menor costo : la peor soluci&n es la de ma:or
costo, )in embargo no siempre resulta tan sencillo obtener una funci&n de evaluaci&n,
4or e(emplo en el caso de )/1% al evaluar la e'presi&n booleana con una serie de
valores% simplemente se obtiene un resultado 5E36/6E3O o @/$)O% pero esto no nos
indica que tan buena# es la soluci&n% o que tan cerca esta de ser &ptima% puede ser que
con s&lo cambiar el valor de una variable nuestra e'presi&n evale a 5E36/6E3O o
puede ser que sea necesario cambiar E? valores% la funci&n de evaluaci&n no nos dice
nada,
Apuntes para la Olimpiada Mexicana de Informtica
TEMA: CONCEPTOS BSICOS
Csar Arturo Cepeda !arc"a
Mxico #$% &' enero ())*
4or si el hecho de encontrar una buena funci&n de evaluaci&n no fuera suficiente
problema% ha: veces que la funci&n de evaluaci&n varia en el tiempo, )upongamos por
e(emplo el caso de que el agente via(ero en 1)4 tuviera que pasar por la ciudad de
+'ico% : el carro del agente no puede circular ese da debido al programa ho: no
circula#, 1omando en cuenta esta restricci&n% el agente s&lo puede visitar la ciudad de
+'ico entre las >? pm : las E am% lo que obliga a que nuestra funci&n de evaluaci&n
vare en el tiempo% :a que entre las Eam : >?pm cualquier recorrido que pase por la
ciudad de +'ico debera dar un costo de recorrido infinito% sin embargo% si es despus
de las >?pm% el costo sera el normal,
Es mu: importante el poder visuali;ar cual es la me(or funci&n de evaluaci&n buscando
que esta sea correcta : de la m'ima informaci&n posible acerca de la soluci&n,
El pro-lema de demostrar cosas0
/unque podra parecer e'trao% en nuestro intento por resolver problemas% muchas veces
los hacemos ms difciles de lo que en realidad son, E'iste un fen&meno entre las
personas% el cul hace% que si le pides a alguien que encuentre la soluci&n a un problema%
la hallarn mucho ms sencillo que si les pides que demuestren algo acerca de la
soluci&n, /n cuando ambas tareas resultan iguales desde un punto de vista
matemtico,
4or e(emplo% piensa en cualquier problema matemtico con un cierto grado de dificultad,
$a tarea del problema podra ser encontrar un cierto valor% puede ser la altura de un
edificio% la distancia entre dos puntos% etc, 4or e(emplo el siguiente problema, 1e toma *
horas llenar una alberca usando una tubera ancha% : G horas llenar la misma alberca con
una tubera delgada, 0untas horas tardaras si usars ambas tuberas" 0omo el
problema esta formulado en el sentido de Encuentra el valor de &# resulta sencillo de
resolver% pero por alguna ra;&n si se cambia la formulaci&n del problema a: demuestra
que el tiempo requerido para llenar la alberca usando ambas tuberas es menor a J horas
con JE minutos% menos personas sern capaces de resolverlo, /n a pesar del hecho de
que el problema no cambio en lo absoluto,
-na posible ra;&n de la aversi&n a hacer demostraciones es que la ma:ora de las
personas no tiene e'periencia en demostrar cosas : no tiene idea de c&mo empe;ar,
6emostrar las cosas no es ms difcil que resolverlas : no debes amedrentarte por el
hecho de anali;ar matemticamente un problema o de demostrar alguna caracterstica
del mismo, +ientras me(or comprendas el problema te ser ms sencillo encontrar una
soluci&n,

También podría gustarte