You are on page 1of 15

UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO

FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS


Carrera de Ingeniería Informática

Seminario de Grado
Modulo: Algoritmos y Estructura de Datos

“Tema 6. Vectores y Matrices”

Docente: Ing. Ubaldo Pérez Ferreira


E-mail: ubaperez@hotmail.com

Santa Cruz de la Sierra – Bolivia ©


2008
Arreglos - Vectores

• Esta ligado al direccionamiento de elementos


en la memoria principal

α … (α +1) …. … (α + n)
Arreglos - Vectores

Axiomatización

Definición: “Conjunto consecutivo de elementos de


memoria”
Definición: “Un conjunto de pares (índice, valor)

• Existen dos problemas fundamentales:


– Insertar
– Eliminar
Arreglos - Vectores

No siempre los índices de los arreglos deben ser valores enteros,


en algunos casos pueden tener otro tipo de datos.

(Lun, Mar, Mier,…, Dom)


(Ene, Feb,…,Dic)
(1990,1991,…,2008)

En resumen se tiene S=(a1, a2, …, an)

Entonces existe una variedad de operaciones a realizar

xii. Encontrar la longitud


xiii. Leer el arreglo de IZQ a DER o DER a IZQ
xiv. Recuperar el i-enesimo elemento 1<=i<=n
xv. Almacenar un nuevo valor en la posicion i-enesima 1<=i<=n
Arreglos - Matrices

Una matriz es un objeto matemático, con la cual se puede


representar muchos problemas del mundo real.

En el área de la Ciencias de la Computación, esta interesada en


como poder representar las matrices, que operaciones se pueden
realizar y cual seria la forma eficiente de realizar estas
operaciones.

Filas m Elemento de la matriz

Columnas n
Numero de elemento m x n, cuando m=n  Matriz Cuadrada
Cuando m=1 es un Vector
Representación de Matrices

Considerar la memoria como dirección de 1 a m


Se estudiara la representación de matrices en vectores

mxn 1 2 … mx
V
A n
K=1,2,…mxn

Para deducir en clases

Como encontrar el elemento k en V a partir de (i , j)?


Como encontrar (i , j) en A a partir de k?
Representación de Matrices

Como encontrar (i,j) en A a partir de k?

i = (k-1) / n + 1
j = k - (i -1 ) * n

Como encontrar el elemento k en V a partir de (i , j)?

k = (i-1) * n + j
Matrices Esparcidas (SPARCE)

1 0 0 0 3
3x5
A 2 0 0 0 0
0 1 3 4 0

Existen 9 elementos con valor 0 (> 50%)


Existen 6 elementos <> 0

Cuando un matriz tiene muchos elemento cuyo valor


es cero, se denomina matriz esparcida.
No existe una definición precisa para determinar
cuando una matriz es esparcida o no.
Matrices Esparcidas (SPARCE)

Una matriz esparcida requiere considerar una alternativa para su


representación
1000 x 10000
Ejemplo A done existe 1000 elementos con valor cero

Buscamos otra forma de almacenar los elementos ≠ 0


Cada elemento A(i , j) ≠ 0es definido por la fila, columna y valor (i,j,valor)
Ejemplo
Es necesario un arreglo A t,3
i j valor donde t es el numero de
elementos ≠ 0 + una fila para
3x2 2 0 3 2 2
almacenar el tamaño de la
A 0 0 A` 1 1 2 matriz y el numero de
0 1 3 2 1 elementos ≠ 0
0 0
Las matrices esparcidas reducen el espacio pero hace que los
algoritmos sean complejos.
Matrices Esparcidas (SPARCE)

Ejercicios en clase

nxm nxm nxm


a) C = A + B (normal)
nxm nxm nxm

b) C = A + B (esparcidas)

Trabajo Practico

Implementar en cualquier lenguaje (utilizando matrices esparcidas)


b) A=BxC
c) Listar los elementos de la diagonal principal
d) Revisar los algoritmos e implementar (HOROWITZ)
a) Traspose (pag 56)
b) Fast_Traspose (pag 56)
Problema a resolver

In

La idea es repetir varia veces


el experimento, hasta que la
rata recorra el camino sin
haber pasado por algún
camino falso.

Las paredes serán representados


con 1 y los caminos con 0 en una
matriz M mxn. El ratón estará
siempre en una posición (i,j) en M.
La entrada necesariamente es
(1,1) y la salida en (n , m)

Exit
Problema a resolver

Cuales son los posibles movimientos del ratón estando en una


posición (i , j)?

NO NE
i -1
(i-1, j-1) (i-1, j) (i-1, j+1)

O (i, j-1) (i, j) (i, j+1) E i

(i+1, j-1) (i+1, j) (i+1, j+1) i+1


SO
SE
S
j -1 j j+1
Si todas las posiciones adyacentes tienen valor 0 entonces el
ratón se puede mover a 8 posibles direcciones siguiendo las
manecillas del reloj
Problema a resolver

Que pasa si el ratón esta en (1,5), cuantos movimientos tiene?

(i, j-1) (i, j) (i, j+1)

(i+1, j-1) (i+1, j) (i+1, j+1)

Se debe considerar cuando:


i=1 o i=n
J=1 o j=m
Arreglos

A la Definición Formal original de arreglo, se pueden adicionar los siguientes


funciones y axiomas:

Swap(Array,Index,Index)  Array
F Xeqaul(Array,Index,Value)  Bollean
MaxV(Array,Index,Index)  Array
Equal(index,index) Bolean

А
A Є Array i, j Є Index x Є Value

A Retrieve(Create,i)::= error
Retrieve(Store(A,i,x),j)::= If Equal(i,j) Then x Else Retrieve(A,j)
Definición Formal

Structure Array(Value,index)
Declare Create()  Array
Retrive(Array,Index)  Vakue
F Store(Array,Index,Value)  Array
Funciones

Swap(Array,Index,Index)  Array
Equal(index,index) Bolean

А
A Є Array i, j Є Index x Є Value

Retrieve(Create,i)::= error
A Retrieve(Store(A,i,x),j)::= Axiomas
If Equal(i,j) Then x Else Retrieve(A,j)

You might also like