Está en la página 1de 26

1

ASIGNATURA : INTROD. A LA MATEMATICA DISCRETA


PROFESOR : Ricardo Chung
AULA : A309 C203 B501 A306
III Ciclo Regular - Noche X - Procou
FECHA : lunes 13 de junio del 2011 2011 - 2
TEMA : IM Combinatoria Numeracin - Algoritmos
=================================================================

Primer Conjunto de Problemas


1. Demuestre por Induccin Matemtica lo siguiente:
Facultad de Ingeniera Industrial y de Sistemas
e Industrial

o
er do
0
er do
n n
IM: 1 Paso: Verificar para n =m 2 Paso: Suponer para n =m
3 Paso: Demost
(A) Si P(n) = 7 -
rar
2
para n =m+1 utilizando
P(n) = 5

(
2 Paso
B)

o
o
n n
3
2
4n
Si P(n) =11 - 4 P(n) = 7
(C) Si P(n) =n - n P(n) = 3
(D) Si P(n) = " 3n <n - 1 " P(n) = V, indicando un n inicial
(E) Si P(n) = 2 - 1
"

= s

= <
"


o
P(n) =15
(F) Si P(n) " Sen nx n Sen x x
P(n)
n
(G) Si P(n) 2 n ! " P(n) =V indicando un n inici
= V, indicando un n inicial
= >
= + + + >
+ + +
e
"


2
al
(H) Si P(n) " n ! n P(n)
1 1 1 1 13
(I) Si P(n) " ....
n 1 n 2 n 3 2n 24
P(n)
(J) Para n Z,
= V, indicando un n inicial
= V, indicando un n inicial

.
s e
e

I
n
n
+
2n+1 n
k=1
n n-1
2k-1
n
k=1
n
2
1 1 1 1
sea H =1+ + + +..... + Demuestre
2 3 4 n
n
por IM que 1+ H n N
2
1
(K) Para n Z Demostrar que =H - 0.5H
2k +1
Sen(2 x)
(L) Cos x = (M)
2 Sen(x)
=

n
k=1
3 n
Sen(2nx)
Cos(2k- 1)x
2Sen(x)
n(n- 1)
(N) P(n) = " n <2 " P(n) = V (O) P(n) = "n- 2 < " P(n) = V
12
2

2. Halle una Frmula para los siguientes problemas, y luego demustrelo
por Induccin Matemtica:










3. De cuntas formas pueden formarse palabras distintas, utilizando las
letras de la palabra CLASIFICACION?
4. Tenemos 6 alumnos del 1er. Ciclo, 5 del 2, 4 del 3, 3 del 4, 2 del 5 y 1
del 6, candidatos a recibir 5 premios de la Escuela de Sistemas de la
UTP. Uno al alumno menos charlatn, otro al ms atento, otro al que
tiene mejor letra, otro al que asiste mas a las Tutoras y otro a l que
mejor maneje su auto. Suponiendo que ningn alumno puede recibir
ms de un premio, De cuntas formas se puede distribuir los premios?
y si no puede haber dos premios para un mismo curso Cmo
responder la misma pregunta?
( )

n n n
k = 1 k = 1 k = 1
n- 1 n n
k k+1 2
k
k = 0 k = 1 k = 1
3
2k - 1 k k
1
2 (-1)
k(K+1)
k(K+
4
(A) S(n) = (B) S(n) = (C) S(n) =
(D) S(n) = (E) S(n) = (F) S(n) =
(G) S(n) =


n n
k k
k=1 k=1
n n n
k
x
k = 1 k = 0 k = 1
n
k = 1
1) 1+3(k - 1)
1+3(k - 1)
(H) S(n) = (I) S(n) =
(J) S(n) = A

(K) S(n) = A (L) S(n) =
(M)

Si

D(n)


es el Nmero de Diagonales que pueden ser
trazados en un Polgono Convexo de "n" lados
(N) Si S(n) es la Suma de los ngulos interiores de un
Polgono Convexo de "n" lados.
(O) Si R(n) es la cantidad de regiones que n rectas, NO todas
convergentes en un mismo punto, divide a un
1 2 3 4 n
4 4 4 4 4 4
crculo.
(P) S(n) =1+2 +2 +2 +2 +.... +2 (Q) S(n) = 5+10+15+20+25+.... +5n
(R) S(n) =1+5+9+13+17+.... +(4n- 3) (S) S(n) =1 +2 +3 +4 +5 +..... +n
Anlisis Combinatorio y Tcnicas de Conteo
m ! m !
m m
C o m b i n a c i n : C = P e r m. : P =
n n
n ! ( m - n ) ! ( m - n ) !
P e r m. C i r c u l a r : ( m - 1) ! P r o c. E t a p a s = n n n .... n
1 2 3 k
m !
P e r m. d e e l e m. c o n r e p e t i c i o n e s =
n ! n ! n ! .... n !
1 2 3 k

3
5. Un examen de admisin de cierta universidad, consta de 2 preguntas
para responder con V o F, 3 con 5 respuestas mltiples signadas como
A, B, C, D y E. De cuntas formas se puede responder el examen?
6. Cuntos nmeros telefnicos de 5 dgitos tienen un dgito que aparece
ms de una vez?
7. De cuntas maneras se pueden colocar 4 neumticos en un auto?
8. Cuntas Palabras de longitud 3, sin repetir signos, pueden escribirse
con un alfabeto de 256 letras?, teniendo en cuenta que no deben
aparecer nunca juntos los smbolos a y b
9. Por un Canal de Comunicacin, se va a transmitir un mensaje utilizando
12 smbolos diferentes. Adems de estos 12 smbolos, el transmisor
tambin enviar un total de 45 espacios en blanco entre los smbolos,
con tres espacios como mnimo entre cada par de smbolos
consecutivos. De cuntas formas se podr enviar el mensaje?
10. Queremos alinear a ocho personas A, B, C, D, E, F, G y H de modo que A
y H estn en los extremos, B y C estn juntas y F y G estn separados.
De cuntas formas podremos podr hacerlo?
11. Supongamos que en las manos de unos lingistas cay un texto escrito
mediante 26 signos desconocidos. Estos smbolos son letras que
representan uno de los 26 sonidos del idioma. De cuntas maneras se
pueden hacer corresponder los sonidos a los signos del idioma?
12. Siete muchachas forman una ronda. De cuntas maneras distintas se
pueden colocar en crculo?
13. Una sociedad cientfica esta formada por 25 personas. Es necesario elegir al
presidente de la sociedad, al vice-presidente, al secretario cientfico y al
tesorero. de cuantas formas se puede efectuar esta eleccin, si cada
miembro de la sociedad puede ocupar slo un cargo?
14. De cuntas formas se pueden colocar en el tablero de ajedrez 8 torres
de modo que no se puedan comer una a la otra?
15. Se tienen n banderines de seales distintos y k mstiles, en los cuales
stos se cuelgan. El sentido de la seal depende del orden en que estn
colgados los banderines. De cuntas maneras se los puede colgar, si
deben ser utilizados todos ellos, pero algunos mstiles pueden resultar
vacos?
16. Cada celda de la memoria principal de la computadora tiene asignado
un nombre nico conocido como su Direccin, el cual se representa con
una cadena de ceros y unos, a estos dgitos se les llama bits. Una
cadena de 8 bits es llamada un Byte. Cuntas direcciones de celdas
de memoria se puede lograr con una computadora que utiliza
direccionamiento de:
A) Un Byte B) Dos Bytes C) Cuatro Bytes

4


17. Si un nmero N de tres cifras en base 9 se convierte a la base 7 viene
expresado por las mismas cifras pero en orden invertido. Hallar dicho
nmero en la base 8.
18. Un nmero escrito en bases consecutivas se escriben como 144 y 213.
Halle dicho nmero en la base decimal.
19. Se desea repartir $1 000 000 entre un cierto nmero de personas, de tal
modo que ellas reciban 1, 7, 49, 243,..., etc., y que no ms de 6 personas
reciban la misma suma. Halle el nmero de beneficiarios.
20. Halle el nmero de trminos de la siguiente sucesin:
21. Si un nmero en la base 12 tiene tres cifras, cuntas cifras tendr en la
base 15?
22. Halle la suma de las cifras de un nmero de tres cifras pares que sea
igual a la suma de los seis nmeros de dos cifras diferentes que se
pueden formar con dichas cifras.
23. A una persona se le pide que multiplique su edad por 2, sume 5 al
resultado, multiplique por 50 a lo obtenido reste 365 y finalmente le
sume un nmero entero de dos cifras que represente la cantidad de
soles, menor que 100, que tiene en el bolsillo. Si la respuesta es 1745
cunto dinero tena? y cul es su edad?
24. Al convertir un nmero de tres cifras del sistema Decimal al de base 9
se obtiene otro de tres cifras cuya escritura es igual a lo que le falta el
primero para ser 1000. Halle el menor de las cifras del nmero.
25. Hallar el mayor sistema de numeracin donde se cumple que

26. Si los siguientes nmeros estn bien escritos hallar k+r


60 59 58 57 56
8 , 9 , A , B , C ,.......
{ }
{ } { }
e
e e
n
Sistema de Numeracin:
N= abcdefg DIGITOS: b, c, d, e, f, g 0, 1, 2, 3, 4, 5, 6.....
BASE : n 2, 3, 4, 5, 6..... a 1, 2, 3, 4, 5, 6.....

6 5 4 3 2
a, b, c, d, e, f, g < n
N= a.n +b.n +c.n +d.n +e.n +f.n+g
; 8 r k 351 4k2 ; r46
= 5 n ab ba
+ +
27. En que sistema de Numeracin, existen 81 nmeros de
la forma a b (a 2) (b 1) (b 2) a b b
28. Hallar en que sistema de Numeracin
+
1 3 3 1 es un cubo per -
fecto.
29. En que sistema de Numeracin, existen 144 nmeros de
la forma a (a- 2) (b 2) b
5

x
30. Hallar, si es posible:
A) 213 en la base x +1 B) 0, 478 en la base 6
31. Hallar el MCM(A, B), si
A) A- B= 77 y los cocientes sucesivos obtenidos al hallar
su MCD por el Algoritmo de Euclides fueron 1, 3, 1, 4 y 2 .
B) A+B= 756 y los cocientes sucesivos obtenidos al hallar
su MCD por el Algoritmo de Euclides fueron 2, 1,
2
4
1 y 2 .
32. Convertir los siguientes nmeros:
A) N= 1 01101 a la base 4, 8, 16
B) N= 3 01212 a la base 2,
8
16
8, 16
C) N= 5 07601 a la base 2, 4, 16
D) N= A 972CD0E a la base 2, 4, 8
33. Convertir los siguientes nme
2
4
8
ros:
A) N= 0.1 01101 a la base 4, 8, 16
B) N= 2. 3 01212 a la base 2, 8, 16
C) N= 4. 5 07601 a
16
2 4
la base 2, 4, 16
D) N= 7. A 972CD0E a la base 2, 4, 8
34. Realizar las operaciones indicadas:
A) 1 01101 + 3 03212 8 8
16 9 8 5
2 8 8 2 2
B) 301257 - 507601
C) A 972CD0E * 6 D) 2* 301257 - 4 * 507601 +8* 203401
E) 43167 + 25156 F) 10100 + 1010 + 1111 +

2
9 9 7 7
1011
G) 7804 4567 G) 5332 - 2335
35. Realizar las operaciones indicadas:
A) Si a+b+c = 21. Hallar S = abc+bca+cab
8 8 8
2 2
5 5 5
7 7 5 5
5 7
B) S = aaa +bbb +ccc si a+b+c =14
C) Si abc - cba =mn3 Hallar m +n
D) Si abc - cba =mnp Hallar mmm + nnn +ppp
E) 8 8 5 5
7 9
9 7
8
8
Hallar 257 x36 F) 413 x234
43215 83716
G) Hallar H) Hallar
6 7
23174
I) Hallar J)
57

4
4
7 9 8
6
6
30 cifras
210313
Hallar
103
K) Hallar CA(25 ) +CA(531 ) +CA(25341 ) en base 6
L) Hallar la suma de las cifras de 342 x 555....555

6
36. Sea N un nmero de cinco cifras. Si a dicho nmero le colocamos un 7
a la izquierda se obtiene otro nmero que es quntuplo del nmero que
se obtendra al colocar el 7 a la derecha.

37. Resuelva los siguientes problemas de Numeracin:




















TABLERO DE EUCLIDES
DIV Q1 Q2 Q3 Q4 . . . Qn+1 Qn+2
A B R1 R2 R3 . . . Rn Rn+1
MOD R1 R2 R3 R4 . . Rn Rn+1 0

MCD (A, B) = Rn+1 MCM(A, B)*MCD(A, B) = A*B

38. Hallar por el Algoritmo de Euclides, el MCD de los nmeros indicados
M, N y luego halle dos valores para a y b de modo que se cumpla la
ecuacin mostrada en cada caso:











o o
o o
A) Si MCD(a7a, 7b7) =11 Hallar a+b
B) En los 1512 primeros nmeros naturales Cuntos son
3 y no son 9
C) Si M= 23+8 se divide entre N= 23+
o
6 se obtiene como
cociente C= 13+6 y un residuo R = 5. Cuntos valores
puede tomar el cociente, si C tiene tres cifras?
Sugerencia:
o o o
o
o o
abc
Si D= A+h y D= B+h D= MCM(A, B)+h.
D) Hallar el menor valor de abc tal que 3 = 7+2.
E) Hallar el menor N= 7+3 si 4N= 15+13
F) Si MCD(2A, 3B) = 90 y MCD(3A, 2B) =15 hallar MCD(A, B)
G) Verificar la validez de MCD(A, C+AB) =MCD(A, C)
e
e
e
A) MCD(134, 32) = 134a + 32b a, b Z
B) MCD(106, 38) = 106a + 38b a, b Z
C) MCD(153, 57) = 153a + 57b a, b Z
D) MCD(825, 315) = 825a +

e
e
e
315b a, b Z
E) MCD(273, 110) = 273a + 110b a, b Z
F) MCD(1400, 220) = 1400a + 220b a, b Z
7
m
m m
.
e
er
do
er
to
CRIPTOGRAFIA: Sistema RSA
1 PASO Leer p, q, n nmeros primos
2 PASO Calcular z =p* q = (p- 1) * (q- 1)
3 PASO Hallar s 0, / (n* s) MOD =1
4 PASO Cifrar mensaje
< >
) m

to
n
s
M (letra por letra), usando frmula: C= M MOD z
5 PASO Descifrar mensaje C (letra por letra), usando frmula: M= C MOD z
(z, n) CLAVES PUBLICAS
(s, CLAVES PRIVADAS


39. Hallar el residuo de dividir:









40. Utilizando propiedades de Aritmtica Modular hallar:






41. Para p = 23, q = 31 hallar el valor de s.





42. Utilizando los datos y el valor hallado en la pregunta anterior cifrar el
mensaje numrico M:






43. Utilizando los datos y el valor hallado en la pregunta 5 descifrar el
mensaje numrico C recibido por cierto receptor:
28 20
200 2002
30
A) 38 entre 7 B) 15 entre 4
C) 243 entre 6 D) 1999 entre 8
E) 2 - 1 entre 5
6
5
2020 8000
2020 8000
F) 4 entre 11
G) 514 entre 9 H) 27 entre 10
G) 514 entre 9 H) 27 entre 10
202 336 146
2003 236 120
240
A) 332 MOD 11 B) 433 MOD 33 C) 287 MOD 8
D) 2004 MOD 19 E) 4214 MOD 13 F) 257 MOD 7
G) 220 MOD 7
200 64
H) 999 MOD 5 I) 1287 MOD 23
A) n=29 B) n=13 C) n=19 D) n=31
E) n=23 F) n=17 G) n= 7 H) n=11
I) n=5 J) n= 3 K) n=37 L) n= 41
A) M=572 B) M=100 C) M=2 D) M=206
E) M=235 F) M=183 G) M= 51 H) M=14
I) M=36 J) M= 137 K) M=78 L) M=31
8





44. Para los valores de p = 11, q = 23 y n = 31, y utilizando los
Cdigos ASCII halle el valor de s, cifre y descifre los mensajes
siguientes:







A) C= 47 B) C=10 C) C=52 D) C=35
E) C=138 F) C=89 G) C= 21 H) C=73
I) C=114 J) C= 266 K) C=102 L) C=63
A) M=HOLA B) M=Hola C) M=Luis
D) M= Adios E) M=Chau F) M=OK
G) M= MARIA H) M=Lima I) M=Password
J) M= @hotmail.com K) M=Per_21 L) M=127NO
9
1.1 Algoritmos
Escribir un programa de ordenador para resolver un problema comprende varios pasos que van
desde la formulacin y especificacin del problema, el diseo de la solucin, su implementacin,
prueba y documentacin, hasta la evaluacin de la solucin. Segn Aho, Hopcroft y Ullman [1], la
mitad del trabajo es saber qu problema se va a resolver. En general, se puede recurrir a casi
cualquier rama de las matemticas y de las ciencias para obtener un modelo de cierto tipo de
problemas. Cuando ya se cuenta con un modelo matemtico adecuado del problema, puede
buscarse una solucin en funcin de ese modelo. El objetivo inicial consiste en hallar una solucin
en forma de algoritmo, que es una secuencia finita de instrucciones, cada una de las cuales tiene
un significado preciso y puede ejecutarse con una cantidad finita de esfuerzo en un tiempo finito.
Las instrucciones de un algoritmo pueden ejecutarse cualquier nmero de veces, siempre que ellas
mismas indiquen la repeticin. No obstante, se exige que un algoritmo termine despus de ejecutar
un nmero finito de instrucciones sin importar cules fueron los valores de entrada. As, un
programa es un algoritmo mientras no entre en un ciclo infinito con ninguna entrada.

Segn G. Heileman [37] un algoritmo es cualquier procedimiento computacional bien
definido, junto con un conjunto de datos de entrada permitidos, que produce un valor o conjunto de
valores como salida.

Es importante reconocer la diferencia entre un problema y un algoritmo que resuelve un
problema. Un problema tiene un solo enunciado que lo describe en ciertos trminos generales; sin
embargo, puede haber muchas formas diferentes de resolver un problema, y algunas de las
soluciones pueden ser ms eficaces que otras.

1.1.1 Eficiencia o complejidad de los algoritmos
La resolucin de un determinado problema se puede lograr por medio de diferentes algoritmos lo
cual implica la necesidad de elegir el mejor entre ellos y, por tanto, se han de evaluar los recursos
que requiere cada algoritmo para su ejecucin. A este proceso de evaluacin de los recursos se le
denomina clculo de la eficiencia o complejidad de un algoritmo. Se dice que un algoritmo es ms
eficiente o de menor complejidad que otro cuando utiliza menos recursos.

Los principales recursos que suelen tenerse en cuenta a la hora de evaluar la eficiencia de
un algoritmo son el espacio de memoria que necesita y el tiempo de ejecucin. La eficiencia en
memoria o complejidad espacial de un algoritmo indica la cantidad de almacenamiento necesario
para ejecutar el algoritmo; es decir, el espacio de memoria que ocupan todas las variables
utilizadas por el algoritmo. Suele ser fcil calcular la memoria esttica de un algoritmo, ya que slo
hay que sumar la memoria ocupada por todas las variables declaradas en el algoritmo. Sin
10
embargo, el clculo de la memoria dinmica no es tan fcil, debido a que sta depende de cada
ejecucin concreta del algoritmo. La eficiencia en tiempo o complejidad temporal de un algoritmo
indica el tiempo que requiere para su ejecucin.

La eficiencia en tiempo y espacio son objetivos contrapuestos por ser, generalmente, la
optimizacin de uno de ellos a costa del otro. El programador es quien debe establecer la relacin
adecuada entre espacio y tiempo, para lo cual ha de tener en cuenta el uso pretendido del
algoritmo y los recursos disponibles.

En este trabajo, aunque se darn algunos resultados de complejidad espacial, se abordar
primordialmente el estudio de la eficiencia temporal.

El incesante aumento de la capacidad que poseen los nuevos ordenadores, tanto en
velocidad de clculo, como en almacenamiento de memoria, no implica que se tenga que desechar
el estudio de la eficiencia de los algoritmos, ya que un mal algoritmo ejecutado en un ordenador
muy potente puede tardar mucho ms que otro algoritmo mejor que se ejecute en otra mquina
menos potente.

Hay tres factores que influyen en el clculo de la complejidad temporal: el tamao de los
datos de entrada, el contenido de los datos de entrada, y el ordenador y el cdigo generado por el
compilador, siendo el ms importante, para medir la eficiencia de un algoritmo, el referente al
tamao de los datos de entrada. El tamao de un ejemplar x se corresponde formalmente con el
nmero de dgitos binarios necesarios para representarlo en el computador. No obstante lo
anterior, se suele identificar el tamao con el nmero de elementos lgicos contenidos en el
ejemplar. Por ejemplo, un problema consistente en ordenar n enteros ser considerado de tamao
n, aunque se necesite en la prctica ms de un dgito binario para representar cada entero.
Cuando se trate de problemas numricos, como el clculo del factorial de un nmero, la eficiencia
se expresar en funcin del valor del dato considerado y no en funcin de su tamao (que sera la
longitud de la representacin binaria de dicho valor).

En relacin con el segundo factor, el contenido de los datos de entrada, hay dos
estrategias posibles en el clculo de la complejidad temporal: estudiar la eficiencia en el caso peor
y el estudio de la eficiencia en el caso medio. La primera de las estrategias consiste en, fijado un
tamao del problema, analizar la eficiencia del algoritmo en aquellas situaciones en las que emplea
ms tiempo y teniendo como objetivo la obtencin de una cota superior del tiempo de ejecucin del
algoritmo. El estudio de la eficiencia en el caso medio plantea la necesidad de conocer el tiempo
de ejecucin del algoritmo en todas las situaciones y la frecuencia con que stas se presentan; es
decir, su distribucin de probabilidades. Esta distribucin suele ser difcil de conocer, por lo que
11
han de realizarse hiptesis cuya fiabilidad es discutible. Adems, las operaciones matemticas
necesarias para realizar el clculo pueden llegar a hacer ste impracticable en muchos casos. Por
todo ello, el anlisis del caso medio es menos frecuente que el estudio del caso peor. En el
presente trabajo siempre se realizar el anlisis de la eficiencia en el peor de los casos.

El tercer factor, el ordenador y el cdigo generado por el compilador, no suele tenerse en
cuenta a la hora de calcular la eficiencia en tiempo de un algoritmo de un modo totalmente
independiente de las mquinas y lenguajes existentes, y a que, por otro lado, se acepta el principio
de invariancia: diferentes implementaciones de un mismo algoritmo diferirn en sus tiempos de
ejecucin a lo sumo en una constante multiplicativa positiva, para problemas de tamao
suficientemente grande. Ms precisamente, si t
1
(n) y t
2
(n) son los tiempos de ejecucin de dos
implementaciones, siempre existe un nmero real positivo c y un nmero entero n
0
tales que, para
todo n > n
0
, se verifica que t
1
(n) s ct
2
(n). Por ejemplo, un factor constante de
10, 100 1000 en los tiempos de ejecucin no se considera en general importante frente a una
diferencia en la dependencia del tamao n del problema, ya que, para un tamao suficientemente
grande, es dicha dependencia quien establece la dependencia real.

Ahora bien, es preciso indicar que existen tres enfoques metodolgicos para evaluar la
eficiencia de los algoritmos:
Emprico o a posteriori: los algoritmos se implementan en un ordenador y se comparan mediante la
realizacin de pruebas con datos del problema de distinto tamao.

Terico o a priori: se determina, matemticamente, la cantidad de recursos necesitados por cada
algoritmo como una funcin cuya variable independiente es el tamao de los datos del
problema.

Hbrido: se determina tericamente la funcin que describe la eficiencia de un algoritmo y luego se
calculan empricamente los parmetros numricos requeridos por un programa y ordenador
concretos. Este enfoque permite hacer predicciones, mediante extrapolacin, sobre el
tiempo que tardara en ejecutarse un algoritmo en una implementacin concreta con unos
datos mucho ms grandes que los usados en las pruebas.
El segundo enfoque es el ms interesante, porque ofrece una medida independiente
del ordenador, el lenguaje de programacin y la capacidad del programador. Ahorra, por un
lado, el tiempo que se tardara en programar, sin necesidad, un algoritmo ineficiente y, por
otro lado, el tiempo del ordenador que se desperdiciara probndolo. Adems, permite
estudiar la eficiencia de un algoritmo cuando es usado con datos de cualquier tamao,
mientras que con los enfoques emprico o hbrido, las consideraciones prcticas pueden
forzar a probar los algoritmos slo con datos de tamao moderado. Esta ltima reflexin es
muy importante ya que muchos algoritmos comienzan a ser eficientes, en comparacin con
otros, cuando se usan con datos de gran tamao.

12
Debido a lo anterior, aqu se va a utilizar un enfoque terico o a priori como mtodo para
evaluar la complejidad temporal de un algoritmo considerndose, como factor principal, el tamao
de los datos de entrada, aunque tambin se tendr en cuenta el factor relativo al contenido de los
datos de entrada cuando stos reflejen el peor de los casos posibles.

Puesto que, como se ha indicado, el clculo de la complejidad temporal
de un algoritmo se realiza en funcin del tamao del problema, resulta que
si f : N R
+
{0} es la funcin que indica cunto tarda en ejecutarse un algoritmo, entonces f (n)
denota el tiempo cuando el tamao del problema es n. La eficiencia de los algoritmos se hace
mediante un estudio de f (n) para valores de n suficientemente grandes, lo cual se denomina
anlisis asinttico. Para poder realizar dicho estudio se requiere de la utilizacin de las notaciones
asintticas, las cuales establecen unas cotas superiores o inferiores del tiempo de ejecucin de un
algoritmo: O () que da una cota superior, O() que proporciona una cota inferior y la notacin O()
que establece, simultneamente, una cota inferior y superior.

El conjunto de las funciones del orden de f (n), denotado por O ( f (n)), viene dado por
O( f (n)) = {g: N R
+
: -c e R
+
, n
0
e N, n > n
0
g(n) s cf (n)}.
La definicin de O ( f (n)) garantiza el principio de invariancia descrito anteriormente; es decir, si el
tiempo de ejecucin de una implementacin concreta de un algoritmo est descrito por una funcin
g(n) del orden de f (n), el tiempo g'(n) empleado por cualquier otra implementacin del mismo que
difiera de la anterior en el lenguaje, el compilador, y/o la mquina empleada, tambin ser del
orden de f (n). En general, se dir que el tiempo de ejecucin de un algoritmo (y, por tanto, de
todas sus implementaciones) es del orden de f (n).

El conjunto O ( f (n)) define un orden de complejidad y se escoger, como representante, la
funcin f (n) ms sencilla posible dentro del mismo. De esta forma se tiene, por ejemplo, que O(n)
representa el orden de complejidad lineal O(n
2
) el de complejidad cuadrtica y O(1) el de las
funciones constantes.

El conjunto de las funciones O( f (n)) viene dado por
O( f (n)) = {g: N R
+
: -c e R
+
, n
0
e N, n > n
0
g(n) > cf (n)}.
Las notaciones O( f (n)) y O( f (n)) son independientes de que el anlisis sea en el caso peor o en
el caso medio. Si t(n) representa el tiempo de ejecucin de un algoritmo y t(n) e O( f (n)), entonces
la medida de O( f (n)) no se refiere al mejor tiempo del mismo, sino a una cota inferior de t(n). Si se
realiza un anlisis en el peor caso, t(n) representa el tiempo del peor ejemplo de tamao n,
mientras que f (n) es una cota inferior del mismo.

13
Obsrvese que hay una asimetra entre las medidas de O( f (n)) y O( f (n)). La primera
establece una cota superior al peor caso y, por tanto, a todos los ejemplos de tamao n, mientras
que la segunda, al establecer una cota inferior al peor caso, permite que puedan existir infinitos
ejemplos de tamao n con un tiempo mejor que
f (n). Ahora bien, se verifica que
f (n) e O(g(n)) g(n) e O( f (n)),
denominndose, a esta equivalencia, regla de dualidad.
El conjunto de las funciones del orden exacto de f (n), denotado por O( f (n)), se define
como
O( f (n)) = O( f (n)) O( f (n)),
Ntese que esta definicin es equivalente a
O( f (n)) = {g: N R
+
: -c,d e R
+
, n
0
e N, n > n
0
df (n) s g(n) s cf (n)}.
Lgicamente, la notacin O() es ms precisa que las notaciones O() y O(), ya que
g(n) est en el orden exacto de f (n) (g(n) e O (f (n)) si, y slo si, f (n) es a la vez cota inferior
y superior de g(n).

A continuacin, se indican algunas propiedades de la notacin O() (para un estudio
exhaustivo, consltese [28]). Si f, g, h : N R
+
{0}, entonces se verifica
(1) f (n) e O( f (n)).
(2) Si f (n) e O(g(n)) y g(n) e O(h(n)), entonces f (n) e O(h(n)).
(3) Si g(n) e O( f (n)) y f (n) e O(g(n)), entonces O( f (n)) = O(g(n)).
(4) Regla del mximo: O( f (n) + g(n)) = O(max ( f (n), g(n))).

Las tres primeras propiedades definen una ordenacin parcial en el conjunto de las
funciones y, consecuentemente, en el conjunto de las eficiencias relativas de los diferentes
algoritmos para resolver un problema dado. Por otro lado, puede observarse que la regla del
mximo (o de la suma) permite simplificar drsticamente el clculo de la eficiencia de un algoritmo.

Otra propiedad importante es la regla del lmite que se enuncia a continuacin.
(a) e =

l
n g
n f
n
) (
) (
lim R
+
f (n) e O(g(n)) y g(n) e O( f (n)).
(b) 0
) (
) (
lim =

n g
n f
n
f (n) e O(g(n)) y g(n) e O( f (n)).
(c) + =

) (
) (
lim
n g
n f
n
f (n) e O(g(n)) y g(n) e O( f (n)).

14
Una consecuencia inmediata de la regla del lmite es que todo polinomio en n de grado m
cuyo coeficiente de mayor grado sea positivo es del orden de n
m
.
Las funciones de complejidad algortmica ms usuales, ordenadas de mayor a menor
eficiencia (o de menor a mayor complejidad), son

O(1) c O( log n) c O(n) c O(n log n) c O(n
2
) c O(2
n
) c O(n!)

Las dos ltimas complejidades forman parte de las complejidades super-polinmicas o
intratables, mientras que las restantes pertenecen al grupo de complejidades polinmicas.

A la hora de evaluar la eficiencia de un algoritmo se han de tener en cuenta las siguientes
consideraciones.

El hecho de que un algoritmo tenga una eficiencia que sea "buena" en trminos generales
no implica que lo sea en trminos particulares, ya que puede haber otro algoritmo que resuelva el
mismo problema de una forma ms eficiente.

El que un problema P se resuelva mediante un algoritmo A con una eficiencia lineal no
implica que dicho algoritmo sea necesariamente el mejor, ya que puede haber otro algoritmo B con
una eficiencia logartmica que tambin resuelva dicho problema.

Si se comparan las eficiencias de dos algoritmos, se ha de tener en cuenta que el clculo
del orden de complejidad es una medida asntotica; es decir, se realiza un estudio terico para
valores de n suficientemente grandes. Puede ocurrir que un algoritmo tenga una eficiencia
asinttica peor que la de otro, pero que tenga un mejor rendimiento para valores pequeos de n.
Adems, si el tamao de los datos del problema es reducido, entonces no se puede despreciar el
valor de las constantes multiplicativas, ya que pueden afectar bastante a la eficiencia de los
algoritmos. Por ejemplo, si se supone que un problema se puede resolver mediante dos algoritmos
diferentes cuyas funciones de complejidad son, respectivamente, f (n)

=

n
3
3n
2
+ 10 y g(n) =
100n
2
log n + 10, la primera funcin posee complejidad asinttica peor que la segunda, pero posee
un mejor rendimiento para valores de n menores que 651. Por tanto, si el tamao de los datos del
problema es inferior a 651, entonces conviene utilizar el primer algoritmo aunque su
comportamiento asinttico sea peor que el del segundo algoritmo.

Los aspectos que se han tratado en esta seccin se refieren a conceptos preliminares de
Algoritmia, la cual se ocupa del diseo y anlisis sistemtico de algoritmos especficos, cada uno
de los cuales ser ms eficiente que sus predecesores para resolver algn problema dado. Un
campo diferente al de la Algoritmia es el de la Complejidad Computacional. Este campo, que tiene
15
una trayectoria paralela al de la Algoritmia, considera globalmente todos los posibles algoritmos
para resolver un problema dado. Esto incluye aquellos algoritmos en los que ni siquiera se ha
pensado todava.

Empleando la Algoritmia, se puede demostrar, expresando y analizando un algoritmo
explcito, que el problema objeto de estudio se puede resolver en un tiempo que est en O( f (n))
para alguna funcin f (n) que se intenta reducir lo ms posible. Por otra parte, al emplear la
complejidad se pretende hallar una funcin g(n) tan grande como sea posible para la cual se
pueda demostrar que cualquier algoritmo capaz de resolver correctamente el problema, en todos
sus casos, debe requerir un tiempo que est en O(g(n)). A esta funcin g(n) se le da el nombre de
cota inferior de la complejidad del problema.

Por ltimo, es preciso indicar que en este trabajo de investigacin se van a describir
algoritmos para resolver problemas relativos al clculo de valores en juegos cooperativos,
analizando la eficiencia de dichos algoritmos en el contexto de la Algoritmia.

Algoritmo potencial (N, v)
0 ) , 0 ( / v P

+
|
|
.
|

\
|

e
_para n fi
_para n fi
) , \ ( ) (
1
) , (
hasta 1 de para
n hasta 1 de para
j
i
S k
j
i
j
i
j
i
j
i
v k S P S v
S
v S P
i
n
j
i


Proposicin 2.4 Sea (N, v) un juego cooperativo. El clculo de la funcin de potencial de Hart y
Mas-Colell para todos los subjuegos del juego (N, v) requiere un tiempo O(n2
n
).

Demostracin: El tiempo de ejecucin del algoritmo potencial es
t(potencial) = 1 + t(bucle 1)
= 1 +

=
n
i
bucle t
1
) 2 (
=

=
|
.
|

\
|
=
+
n
i
i
n
j
asignacin t
1 1
) ( 1
16
=

=
|
.
|

\
|
=
+ +
n
i
i
n
j
suma t
1 1
)) ( 1 ( 1
=

=
|
.
|

\
|
= =
|
.
|

\
|
+ +
n
i
i
n
j
i
k 1 1 1
1 1 1
=

=
|
.
|

\
|
=
+ +
n
i
i
n
j
i
1 1
) 1 ( 1
=

=
|
|
.
|

\
|
+ +
n
i
i
n
i
1
) 1 ( 1
=

=
|
|
.
|

\
|
+
n
i
i
n
i
0
) 1 (
=
n n
n 2 2
1
+

.
De aqu, t(potencial) = f (n) = n2
n-1
+ 2
n
e O(n2
n
).


Algoritmo dividendo (N, v)
A
v 0 ) 0 ( /

A A
|
|
.
|

\
|

e
_para n fi
_para n fi
) ( ) ( ) (
hasta 1 de para
n hasta 1 de para
j
i
S T
v
j
i
j
i v
T S v S
i
n
j
i

donde
j
i
S es la j-sima coalicin de tamao i, i S
j
i
= .

Tal como se recoge en la siguiente proposicin, la complejidad temporal de este algoritmo
es de orden exponencial.

Proposicin 2.7 Sea un juego cooperativo (N, v). El clculo de todos los dividendos de
Harsanyi requiere un tiempo O(3
n
).

Demostracin: De la descripcin del algoritmo dividendo, se deduce que el tiempo de
ejecucin verifica
t(dividendo) = 1 + t(bucle1)
=

=
+
n
i
bucle T
1
) 2 ( 1
17
=

=
|
.
|

\
|
=
+
n
i
i
n
j
asignacin t
1 1
) ( 1
=

=
|
.
|

\
|
=
+ +
n
t
i
n
j
suma t
1 1
)) ( 1 ( 1
=

=
|
.
|

\
|
=

=
+ +
n
i
i
n
j k
i
1 1
1 2
1
) 1 1 ( 1
=

=
|
.
|

\
|
=
+ +
n
i
i
n
j
i
1 1
) 1 2 1 ( 1
=

=
|
.
|

\
|
=
+
n
i
i
n
j
i
1 1
2 1
=

=
|
|
.
|

\
|
+
n
i
i
i
n
1
2 1
=

=
=
|
|
.
|

\
|
n
i
n i
i
n
0
3 2 .
Por tanto, t(dividendo) = f (n) = 3
n
e O(3
n
).

Proposicin 3.16 Sea la terna (N, v, G), donde G es un grafo camino y (N, v) un juego de
utilidad transferible. El clculo de todos los dividendos de Harsanyi del juego restringido
requiere un tiempo O(n
4
).

Demostracin: Para el clculo de los dividendos se utiliza el algoritmo dividendo descrito en la
seccin 2.2.2. Como ahora se consideran nicamente las coaliciones factibles, el nmero de
coaliciones de tamao i viene dado por S(i) = n i + 1, y el nmero total de coaliciones factibles
contenidas estrictamente en una coalicin factible T de tamao i es
2
) (
2
i i
i C
+
= . Por tanto, el
tiempo de ejecucin del algoritmo es
t(dividendo) = 1 + t(bucle1)
=

= =
+
n
i
i S
j
asignacin t
1
) (
1
) ( 1
=

= =
+ +
n
i
i S
j
suma t t
1
) (
1
)) ( 1 ( 1
=

= = =
+ +
n
i
i S
j
i C
k 1
) (
1
) (
1
) 1 1 ( 1
=

= =
+ +
n
i
i S
j
i C
1
) (
1
)) ( 1 ( 1
=

=
+
+ +
n
i
i S
i i
1
2
) ( )
2
1 ( 1
18
=

=
+
+ +
+
n
i
i n
i i
1
2
) 1 )(
2
2
( 1
=

=
+ + + +
n
i
i n i i
1
2
) 1 )( 2 (
2
1
1
= | |

=
+ + + +
n
i
i ni i n n
1
3 2
) 1 ( ) 2 2 (
2
1
1
= |
.
|

\
|
+ + + +

= = = =
n
i
n
i
n
i
n
i
i i n i n n
1 1
3
1
2
1
) 1 ( 1 ) 2 2 (
2
1
1
= |
.
|

\
| +

+ +
+
+
+ + +
4
) 1 (
6
) 1 2 )( 1 (
2
) 1 ( ) 2 2 (
2
1
1
2 2 2
n n n n n
n
n n
n n n
= |
.
|

\
| + +

+ +
+

+ + +
4
) 2 (
6
) 1 2 )( (
2
2 2
2
1
1
2 3 4 2 3 3
2
n n n n n n n n
n n
= |
.
|

\
| + +

+ +
+

+ + +
4
2
6
3 2
2
2 2
2
1
1
2 3 4 2 3 4 3
2
n n n n n n n n
n n
=
12
3 6 3 2 6 4 6 6 24 24
2
1
1
2 3 4 2 3 4 3 2
n n n n n n n n n n + + + + +
+
=
24
24 18 23 6
2 3 4
+ + + + n n n n
.

Por tanto, t(dividendo) = f (n) e O(n
4
).

Algoritmo dividendo2

A

_ _

_para n fi
_para n fi
) ( (-1) ) (
) ( hasta 1 de para
hasta 1 de para
} ) ( : {
j
i
j
i
j
i
j
i
G
S T S ex S T
T S
j
i
v
T v S
i S j
n i

donde
j
i
S es la j-sima coalicin de tamao i y S(i) es el nmero de coaliciones de tamao i.

La complejidad temporal de este algoritmo se analiza en la proposicin siguiente. En este
anlisis se considera un almacenamiento previo, en una tabla, de los extremales de cada
coalicin conexa.

Proposicin 3.30 Sea la terna (N, v, G) donde G es un rbol y (N, v) un juego de utilidad
transferible. El clculo de todos los dividendos de Harsanyi del juego restringido requiere un
19
tiempo O(2
D
|F|), donde F es el conjunto de coaliciones conexas en el rbol y D = max({|ex(S) :
S e F}).

Demostracin: De la descripcin del algoritmo dividendo2 se deduce que su tiempo de
ejecucin es
t(dividendo2) = 1 + t(bucle1)
=

=
+
n
i
bucle t
1
) 2 ( 1
=

= =
+
n
i
i S
j
asignacin t
1
) (
1
) ( 1
=

= =
+
n
i
i S
j
suma t
1
) (
1
) ( 1
=

= =
+
n
i
i S
j
S ex
j
i
1
) (
1
) (
2 2 1
=

= =
+
n
i
i S
j
D
1
) (
1
2 2 1
=

= =
+
+
n
i
i S
j
D
1
) (
1
1
1 2 1
< F
D 1
2 1
+
+ .
Por tanto, t(dividendo2) = f (n) e O(2
D
|F |).

Funcin banzhafTwoPower(pesos1,pesos2,q,p)
{pesos1: lista de n enteros; pesos2: lista de n enteros; q: entero;
p: entero}

20
| | |
|
| | |
|

n
)
`

=
+ +
+ +
)
`

=
+ +
+ +
+ +

)
`

= + =
+



I
I
= =
= =
= = = =
e
e
para fin
1 ) \ ( hasta 1 desde
con y , 1 ) \ ( hasta 1 desde con , , s
1 ) \ ( hasta 1 desde
con y , 1 ) \ ( hasta 1 desde con , , s
)} 1 ) \ ( ( ) 1 ) \ ( ( orden de matriz una es {coefi
) , (
) 1 ( ) , (
) 1 ( ) , (
) }, ,..., ({ _
) }, ,..., ({
hasta 1 de para
2 1
) \ ( ) \ (
2
i
2
) \ ( ) \ (
1
i
1
) \ (
0
) \ (
0 , 1
2 _
1 _
1
1
i i
i
i N w
q k
i N p
p r
i
kr
i
i N w
w q k
i N p
p p r
i
kr
i
i
i
i
i N w
k
i N p
r
r k i
kr
n
i j j
p w
i
n
aux lista p
aux lista w
p w
i
i n
i n
s s
b s
i N p p
r i N w q k r k coefi Suma
b s
i N p p p
r i N w w q k r k coefi Suma
i N p i N w
y x B de es coeficient coefi
y x b y x y x B
y x y x B
p p p borra aux lista
w w w borra lista_aux
n i
i i
j j
j
j
j j

=
n n
n
i
i
1

n n |
para fin
/
hasta 1 de para
i i
n i

devolver {|
1
, . . . , |
n
}
Proposicin 4.26 Sea (N, v) un juego de votacin con doble mayora, siendo
v = v
1
. v
2
, con | |
n
w w q v ,..., ;
1 1
= y | |
n
p p p v ,..., ;
1 2
= . El clculo del ndice de Banzhaf
normalizado de todos los jugadores, con la funcin banzhafTwo-Power, requiere un tiempo
O(n
2
c), siendo c el nmero de coeficientes no nulos del polinomio B(x, y).

Demostracin: En esta situacin, el orden de complejidad de la funcin f (n), que determina el
tiempo de ejecucin de la funcin banzhafTwoPower, viene dado por
)) 2 ( ) ( ) 1 ( ( )) ( ( bucle t asignacin t bucle t n f + + = O O
)) 2 , ), 1 ( (max( n n bucle t O =
) ( ) 1 (bucle t O = .
Ahora bien,
))) 7 ( ... ) 1 ( ( ( )) 1 ( ( asignacin t asignacin t n bucle t + + = O
y, teniendo en cuenta que
21
) 1 ( )) 1 _ ( ( ) 1 ( ( O O O = = aux lista t asignacin t ,
) 1 ( )) 2 _ ( ( ) 2 ( ( O O O = = aux lista t asignacin t
), ( )) ( ( ) 3 ( ( nc polinomio t asignacin t O O O = =
) ( )) ( ( ) 4 ( ( c coefi t asignacin t O O O = = ,
) ( )) 1 ( ( ) 5 ( ( c suma t asignacin t O O O = = ,
) ( )) 2 ( ( ) 6 ( ( c suma t asignacin t O O O = =
) 1 ( )) ( ( ) 7 ( ( O O O = = diferencia t asignacin t
resulta ser
)) 3 ( ( ) 1 ( ( )) ( ( asignacin t n bucle t n f O O O = = .
Por tanto, finalmente,
) ( )) 3 ( ( )) ( (
2
c n asignacin t n n f O O O = = .

Funcin ssTwoPower(pesos1, pesos2, q, p)
{pesos1: lista de n enteros; pesos2: lista de n enteros; q, p: enteros}
22
| | |
|
| | |
|

u
)
`

=

)
`

=
+ +
+ +
)
`

=
+ +
+ +
= + +

)
`

= + =
+

I
I

=
= =

=
= =

=
= =

= = =
e
e
fin_para
! / )! 1 ( !
) (
) ( ) ( ) ( g
) (
1 hasta 1 desde
con y , 1 hasta 1 desde con , , ) ( s
) (
1 ) \ ( hasta 1 desde
con y , 1 ) \ ( hasta 1 desde con , , s
} ) 1 , 1 (
polinomio, del es coeficient los almacena que matriz una es {coefi
) , , (
) 1 ( ) , , (
) 1 ( ) , , (
) }, ,..., ({ 2 _
) }, ,..., ({ 1
hasta 1 de para
1
0
1
0
2 1 i
) \ ( ) \ (
1
0
2
i
2
) \ ( ) \ (
1
0
1
i
1
1
0
) \ (
0
) \ (
0
1
0 , 1
2 _
1 _
1
1
n j n j d
z d z g
z s z s z
z a z s
d p
r d q k r k coefi Suma z
z a z s
i N p p p
r i N w w q k r k coefi Suma
z a r k coefi
z y x S de es coeficient coefi
z y x a z y x z y x S
z y x z y x S
p p p borra aux lista
w w w borra lista_aux
n i
n
j
i
j i
j
n
j
i
j i
i i
i N w
q k
i N p
p r
j
n
j
i
krj
i
p
w
i N w
w q k
i N p
p p r
n
j
j i
krj
i
i
i
n
j
j i
krj
i
i N w
k
i N p
r
n
j
j r k i
krj
n
i j j
p w
i
n
aux lista p
aux lista w
p w
i
i n
i n
i i
j j
j
j
j j

devolver {o
1
, . . . , o
n
}

Proposicin 4.33 Sea (N, v) un juego de votacin con doble mayora, siendo
v = v
1
. v
2
, con | |
n
w w q v ,..., ;
1 1
= y | |
n
p p p v ,..., ;
1 2
= . El clculo del ndice de Shapley-
Shubik de todos los jugadores con la funcin ssTwoPower requiere un tiempo O(n
2
c), siendo c el
nmero de coeficientes no nulos del polinomio S(x, y, z).

Demostracin: Sea f (n) la funcin que determina el tiempo de ejecucin de la funcin
ssTwoPower. Se verifica que
)) 8 ( ... ) 1 ( ( ( )) ( ) ( ( asignacin t asignacin t n bucle t n f + + = = O O O ( .
Ahora bien,
) 1 ( )) 1 _ ( ( ) 1 ( ( O O O = = aux lista t asignacin t ,
) 1 ( )) 2 _ ( ( ) 2 ( ( O O O = = aux lista t asignacin t
23
), ( )) ( ( ) 3 ( ( nc polinomio t asignacin t O O O = =
) ( )) ( ( ) 4 ( ( c coefi t asignacin t O O O = = ,
) ( )) 1 ( ( ) 5 ( ( c suma t asignacin t O O O = =
) ( )) 2 ( ( ) 6 ( ( c suma t asignacin t O O O = = ,
) ( )) ( ( ) 7 ( ( n diferencia t asignacin t O O O = = ,
) ( )) 1 ( ( ) 8 ( (
2
n suma t asignacin t O O O = = .

Por tanto,
) ( )) ( ( ))) 3 ( ( )) ( (
2
c n nc n asignacin t n n f O O O O = = = ( .

Algoritmo geomdiv (pesos, q)
{pesos: lista de n enteros; q: entero}
0 ) ( o A
L
v

A

)

=
+


I
= =

=
=

= =
e
_para n fi
) 1 ( ) 1 ( ) (
) (
) , (
) 1 ( ) , (
) (
| | hasta 1 de para
| |
| ) ( |
0
| ) ( |
0
| | | |
) (
| ) ( |
0
| |
) (
))
p
ex(S \ (
| |
| )
p
ex(S \ |
_
| )
p
ex(S \ | ))
p
ex(S \ (
p
S
p
S
p
v
p
S ex
r
p
S ex
r
r
p
S p
S
r
r
p
S
p
S w
q k
p
S
kr p
S
p
S ex
r
r
p
S p
S
r
p
S
p
S w
p
S w k
p
S
p
S j
j k p
S
kj p
S
n
aux lista i
i
w p
S
p
S w
p
S
p
C S
z a z b z C
z a C
z x b z x P
z x z x z x P
S ex lista_aux
p
L
L


Proposicin 5.9 Sea la terna (N, v, L), donde (N, L) es una geometra convexa de particin
y (N, v), con v = [q; w
1
, . . ., w
n
], un juego simple de votacin ponderada. El clculo de los
dividendos, mediante el algoritmo geomdiv, requiere un tiempo
O(|L| D E), siendo
D = max{|ex(S)|: S e L} y
E = max{min(2
|ex(S)|
, |ex(S)|w(ex(S)) + 1) : S e L}.
24
Demostracin: Sea f(n) la funcin que determina el tiempo de ejecucin del algoritmo
geomdiv. Entonces, el orden de la complejidad de la funcin f(n) viene dado por
O(f(n)) = 1 + O(t(bucle)) = O(|L|(t(asignacin1) + . . . + t(asignacion4))).
Ahora bien, dentro del bucle, la complejidad de la primera asignacin sera
O(t(asignacin1)) = O(t(lista_aux)) = O(1),
ya que se supone que los extremales se han calculado previamente, y se encuentran
almacenados. Para la complejidad de la segunda asignacin, se tiene que, en el peor caso,
O(t(asignacin2)) = O(t(polinomio) ) = O(D E),
lo cual es consecuencia de la Proposicin 5.8. Del mismo modo, y considerando el peor
caso,
O(t(asignacin3)) = O(t(suma)) = O(E),
al ser E una cota superior del nmero de coeficientes no nulos de cualquier polinomio P
S
(x,
z). Anlogamente, teniendo en cuenta que, para toda coalicin SeL, la evaluacin de los
polinomios C
S
(z), que son de grado |ex(S)|, en z = 1, se realiza en un tiempo O(|ex(S)|), y
|ex(S)| s D, resulta ser
O(t(asignacin4) = O(D).
Finalmente, si se considera la regla del mximo de O(.), se sigue que,
O(f(n)) = O(|L|(t(asignacin2))) = O(|L| D E ).


Funcin MyersonStar(pesos, q)
{pesos: lista de n enteros; q: entero}
para l de 1 hasta n 1

I
v + v )) , ; | ( 1 ( ) , ; ( z x l i z x z x l
l
w

{ }

> e
= v
0
) , ; (
k N j
j k l
kj
z x c z x l


=
+
=
|
|
.
|

\
|

u
n
j
w q
q k
l
kj l
l
c
n
j n j
2
1
!
)! ( )! 1 (

fin_para

I

=
+ v
1
1
) 1 ( ) , ; (
n
j
w w
z x z x z x n
j n

{ }

> e
= v
0
) , ; (
k N j
j k n
kj
z x c z x n
25


= =
|
|
.
|

\
|

u
n
j
N w
q k
n
kj n
c
n
j n j
2
) (
!
)! ( )! 1 (

devolver {u
1
, . . . ,u
n
}
Proposicin 5.26 Sea la terna (N, v, G), donde G es un grafo estrella y (N, v), con
| |
n
w w q v ,..., ;
1
= , un juego de votacin ponderada. El clculo del valor de Myerson de
todos los jugadores con la funcin MyersonStar requiere un tiempo O(n
2
c), siendo c el
nmero de coeficientes no nulos del polinomio ) , ( z x
G
+ .

Demostracin: Sea f (n) la funcin que determina el tiempo de ejecucin de la funcin
MyersonStar. Entonces, se verifica
)) 4 ( ) 3 ( ) ( ( )) ( ( asignacin t asignacin t bucle t n f + + = O O
y, adems
)))) 2 ( ) 1 ( )( 1 (( )) ( ( asignacin t asignacin t n bucle t + = O O .
Ahora bien, por las Proposiciones 5.24 y 5.25, se verifica que
) ( )) ( ( )) 1 ( (
h
r O polinomio t asignacin t = = O O ,
donde r es el factor de ramificacin y h la altura del grafo estrella. Como, en el bucle, el
rbol se enraza en un nodo que no es el central, entonces r = n 2 y h = 2. Por tanto,
) ( )) 1 ( (
2
n asignacin t O O = .
Por otra parte,
))) 1 ( ) ( )( 1 (( )) 2 ( ( suma t coefi t n asignacin t + = O O ,
tenindose que ) ( )) ( ( n coefi t O O = , pues los factoriales se calculan en tiempo lineal, y
) ( )) 1 ( ( c suma t O O = , donde c es el nmero de coeficientes no nulos del polinomio
) , ( z x
G
+ y constituye una cota superior del nmero de coeficientes no nulos de los
polinomios ) , ; ( z x p v , con p e N. Por tanto, al ser c > n,
) ( ) ( )) 2 ( (
2
nc nc n asignacin t O O O = + = .
De lo anterior se deduce que el tiempo de ejecucin del bucle es
)) 2 ( ) 1 ( ) 1 (( )) ( ( asignacin t n asignacin t n bucle t + = O O .
) (
2 3
c n n + = O
) (
2
c n O = .
Las asignaciones restantes, que se refieren al nodo central, verifican, por un lado,
26
) ( ) ( )) ( ( )) 3 ( ( n r polinomio t asignacin t
h
O O O O = = =
ya que, para el vrtice central, r = n 1 y h = 1. Por otro lado,
))) 2 ( ) ( ( ( )) 4 ( ( suma t coefi t n asignacin t + = O O
) (
2
nc n + = O
) (nc O = .
Finalmente, resulta ) ( )) , , (max( )) ( (
2 2
c n nc n c n n f O O O = = .

También podría gustarte