GRAFOS CREACIÓN DE ÍNDICES EN GOOGLE DE LOS SITIOS DE LA RED DE INTERNET INDICE 1. Introducción 2. Conceptos matemáticos con ejemplos 3. Resolución de ejercicios 4. Ejercicios con Maxima 5. Explicación del modelo ilustrada con un ejemplo 6. Ejercicios propuestos sobre el tema 7. Bibliografía Tania Guzmán García Luis González Varela Alexandre González Rivas
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
GRAFOS CREACIOacuteN DE IacuteNDICES EN GOOGLE DE LOS SITIOS DE LA RED DE INTERNET
INDICE
1 Introduccioacuten 2 Conceptos matemaacuteticos con ejemplos 3 Resolucioacuten de ejercicios 4 Ejercicios con Maxima 5 Explicacioacuten del modelo ilustrada con un ejemplo 6 Ejercicios propuestos sobre el tema
7 Bibliografiacutea
Tania Guzmaacuten Garciacutea
Luis Gonzaacutelez Varela
Alexandre Gonzaacutelez Rivas
1 Introduccioacuten
La teoriacutea de grafos es una disciplina antigua con muchas
aplicaciones modernas Sus ideales baacutesicos fueron introducidos por el gran matemaacutetico suizo Leonhard Euler (1700-1783) en el siglo XVIII
L Euler utilizoacute los grafos para resolver el famoso problema de los puentes de Koumlnigsberg que se considera el primer trabajo sobre esta
materia
Los grafos se emplean para resolver problemas de diversas
aacutereas Pueden utilizarse por ejemplo para determinar si se puede o no implementar un circuito sobre una placa de una sola capa para
estudiar la estructura de una red de Internet para determinar si dos ordenadores estaacuten conectados o no dentro de una red informatizada
para hallar el camino maacutes corto entre dos ciudades en una red de transportes para trazar rutas de vuelo en un espacio aeacutereo
concretohellip
El primer ejemplo de trabajo con grafos fue este trabajo que surgioacute para resolver un problema en la ciudad de Koumlnigsberg (Rusia)
La ciudad estaba dividida en cuatro partes por dos brazos del riacuteo Pregel estando conectadas por siete puentes
La pregunta que se hizo L Euler fue iquestEs posible recorrer los siete puentes pasando por todos ellos una uacutenica vez partiendo y
llegando al mismo sitio
Para intentar resolver este problema representoacute esquemaacuteticamente las aacutereas de tierra por puntos y los puentes por
liacuteneas conectando esos puntos El resultado fue el siguiente grafo
D
e2
e4
e5
A
B C
e1
e3
e6
e7
V = ABCD
E = e1e2e3e4e5e6e7
e1 = ABhellipe7 = CD
2 Conceptos matemaacuteticos con ejemplos
Grafo ldquoInformalmente un grafo es un conjunto de objetos llamados
veacutertices o nodos unidos por enlaces llamados aristas o arcos que permiten representar relaciones binarias entre elementos de un
conjuntordquo 1
Definicioacuten formal ldquoUn grafo es un par G =
(VE) donde V es un conjunto finito no
vaciacuteo cuyos elementos se llaman veacutertices o nodos y E es una familia cuyos elementos
se llaman aristas Una rasita es un par no ordenado de veacutertices de Vrdquo 2
Tipos de grafos
Grafos simples Un grafo simple es un conjunto de veacutertices y
aristas Las aristas unen pares de veacutertices no habiendo dos
aristas que conecten el mismo par
Multigrafos Son grafos que contienen dos aristas que conectan
el mismo par de veacutertices
Pseudografos Son multigrafos que permiten la existencia de
lazos o aristas que unen un veacutertice consigo mismo
Grafos dirigidos Son grafos que indistintamente de si son
simples multigrafos o pseudografos tienen aristas con
direccioacuten o aristas dirigidas Los grafos sin aristas dirigidas son
grafos no dirigidos
1 httpeswikipediaorgwikiGrafo
2 Definicioacuten recogida en los apuntes de Matemaacutetica Discreta de la FIC (2006-2007) tema 5 paacuteg 100
Grafo etiquetado con 6 veacutertices y 7 aristas
Terminologiacuteas o propiedades
Etiquetado Distincioacuten que se hace a los veacutertices yo aristas
mediante una marca que los hace uniacutevocamente distinguibles del resto es decir asignarle a cada veacutertice o arista un nombre
Quedan registrados los veacutertices A y B y la arista que los une como e1
Adyacencia Se dice que dos veacutertices son adyacentes si hay una
arista que los conecte entre ellos A y B son adyacentes
Grado de un veacutertice El grado de un veacutertice es un nuacutemero natural
de 0 al infinito que designa el nuacutemero de aristas le conectan
con otros veacutertices El grado de A es 2
Incidencia Una arista es incidente a un veacutertice si eacutesta lo une a
otro E1 es una arista incidente entre A y B
Ponderacioacuten Corresponde a una funcioacuten que a cada arista le
asocia un valor (costo peso longitud etc) para aumentar la
expresividad del modelo El valor ponderado de la arista entre A y B es 6
Camino Un camino es una secuencia de aristas que comienzan
en un veacutertice del grafo y recorren parte o la totalidad del grafo
conectando veacutertices adyacentes ERTYUI es un camino del grafo
A B
A B
C
A B e1
A B
C
6
9
A B e1
E R T Y U I
Circuito Cuando existe un camino que empieza y acaba en el
mismo veacutertice El siguiente grafo contiene el circuito VBNMV
Isomorfismo Si dos grafos son isomorfos soacutelo variacutea la
apariencia es decir que se mantienen las adyacencias
estructura caminos ciclos nuacutemero de veacutertices y nuacutemero de aristas Los dos grafos son isomorfos
Conexo Un grafo es conexo si tiene una uacutenica componente
conexa es decir todos los veacutertices del grafo estaacuten relacionados En el caso contrario seriacutea un grafo disconexo
A B
C
E R T
A B
C
E R T
Y Grafo disconexo
A B
C Grafo conexo
V B N
M
Familias de grafos simples
Grafo regular Un grafo simple es regular si todos sus veacutertices
tienen el mismo grado
Grafo completo El grafo completo es aquel que tiene
exactamente una arista entre cada par de veacutertices
Grafo complementario Un grafo complementario es aquel grafo
que contiene todos los veacutertices del original y las aristas que no
estaacutes
Grafo bipartito Un Grafo bipartito se denomina en Teoriacutea de
grafos a un grafo no dirigido cuyos veacutertices se pueden separar en dos conjuntos disjuntos y teniendo que las aristas siempre
uniraacuten veacutertices de un conjunto con veacutertices de otro
Grafo bipartito completo Cumple ambas condiciones
Grafo original Grafo complementario
Un aacuterbol etiquetado con 6 veacutertices y 5
aristas
Aacuterboles
Definicioacuten de aacuterbol Un aacuterbol es un grafo conexo y
sin ciclos o lazos es decir un grafo simple
Terminologiacuteas o propiedades
Definicioacuten de bosque Un aacuterbol es considerado un bosque si sus
componentes conexas son aacuterboles
Aacuterbol generador Un aacuterbol generador de un grafo conexo es un
subgrafo conexo con el menor nuacutemero posible de aristas y con todos los veacutertices del grafo original No tiene porque ser uacutenico
Aacuterbol generador miacutenimo El aacuterbol generador miacutenimo es un aacuterbol
generador construido sobre un grafo conexo ponderado con un
criterio de seleccioacuten de aristas definido por su menor peso
Raiacutez Un aacuterbol con raiacutez es un aacuterbol en el que uno de sus veacutertices
ha sido designado como la raiacutez y todas las aristas estaacuten colocadas alejaacutendose de dicha raiacutez
Otros ejemplos de aacuterboles
G
Grsquo
Raiacutez
Padre Se considera padre de un veacutertice al veacutertice adyacente
superior
Hijo Se consideran hijos de un veacutertice a todos los veacutertices
comunicados por una arista y adyacentes que se encuentren
por de este A es padre de B y C o lo que es lo mismo B y C son hijos de A
Hoja Son los veacutertices que no tienen hijos En este ejemplo
ABCDE son hojas del aacuterbol
Buacutesqueda en profundidad y buacutesqueda en profundidad en grafos dirigidos
Buacutesqueda en profundidad rdquoUna Buacutesqueda en profundidad es un
algoritmo que permite recorrer todos los nodos de un grafo o
aacuterbol de manera ordenada pero no uniforme Su funcionamiento consiste en ir expandiendo todos y cada uno de
los nodos que va localizando de forma recurrente en un camino concreto Cuando ya no quedan maacutes nodos que visitar
en dicho camino regresa de modo que repite el mismo
proceso con cada uno de los hermanos del nodo ya procesadordquo3
Algoritmo de ejemplo de una buacutesqueda en profundidad 4
Buacutesqueda en profundidad en grafos dirigidos La buacutesqueda en
grafos dirigidos es muy similar a la buacutesqueda sobre un grafo
no-dirigido sin embargo el resultado final no tiene porque ser un aacuterbol generador del grafo original sino que puede ser un
bosque 5
4 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
5 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
procedure BP(G grafo conexo de veacutertices v1v2hellip vn)
T= aacuterbol que consta soacutelo del veacutertice v1
visita(v1)
procedure visita(v veacutertice de G)
for cada veacutertice w adyacente a v y que no esteacute en T
begin
antildeadir el veacutertice w y la arista vw a T
visita(w)
end
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
d
h
l
k
j
j
Una buacutesqueda de ejemplo en un grafo dirigido
3 Resolucioacuten de ejercicios
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
1 Introduccioacuten
La teoriacutea de grafos es una disciplina antigua con muchas
aplicaciones modernas Sus ideales baacutesicos fueron introducidos por el gran matemaacutetico suizo Leonhard Euler (1700-1783) en el siglo XVIII
L Euler utilizoacute los grafos para resolver el famoso problema de los puentes de Koumlnigsberg que se considera el primer trabajo sobre esta
materia
Los grafos se emplean para resolver problemas de diversas
aacutereas Pueden utilizarse por ejemplo para determinar si se puede o no implementar un circuito sobre una placa de una sola capa para
estudiar la estructura de una red de Internet para determinar si dos ordenadores estaacuten conectados o no dentro de una red informatizada
para hallar el camino maacutes corto entre dos ciudades en una red de transportes para trazar rutas de vuelo en un espacio aeacutereo
concretohellip
El primer ejemplo de trabajo con grafos fue este trabajo que surgioacute para resolver un problema en la ciudad de Koumlnigsberg (Rusia)
La ciudad estaba dividida en cuatro partes por dos brazos del riacuteo Pregel estando conectadas por siete puentes
La pregunta que se hizo L Euler fue iquestEs posible recorrer los siete puentes pasando por todos ellos una uacutenica vez partiendo y
llegando al mismo sitio
Para intentar resolver este problema representoacute esquemaacuteticamente las aacutereas de tierra por puntos y los puentes por
liacuteneas conectando esos puntos El resultado fue el siguiente grafo
D
e2
e4
e5
A
B C
e1
e3
e6
e7
V = ABCD
E = e1e2e3e4e5e6e7
e1 = ABhellipe7 = CD
2 Conceptos matemaacuteticos con ejemplos
Grafo ldquoInformalmente un grafo es un conjunto de objetos llamados
veacutertices o nodos unidos por enlaces llamados aristas o arcos que permiten representar relaciones binarias entre elementos de un
conjuntordquo 1
Definicioacuten formal ldquoUn grafo es un par G =
(VE) donde V es un conjunto finito no
vaciacuteo cuyos elementos se llaman veacutertices o nodos y E es una familia cuyos elementos
se llaman aristas Una rasita es un par no ordenado de veacutertices de Vrdquo 2
Tipos de grafos
Grafos simples Un grafo simple es un conjunto de veacutertices y
aristas Las aristas unen pares de veacutertices no habiendo dos
aristas que conecten el mismo par
Multigrafos Son grafos que contienen dos aristas que conectan
el mismo par de veacutertices
Pseudografos Son multigrafos que permiten la existencia de
lazos o aristas que unen un veacutertice consigo mismo
Grafos dirigidos Son grafos que indistintamente de si son
simples multigrafos o pseudografos tienen aristas con
direccioacuten o aristas dirigidas Los grafos sin aristas dirigidas son
grafos no dirigidos
1 httpeswikipediaorgwikiGrafo
2 Definicioacuten recogida en los apuntes de Matemaacutetica Discreta de la FIC (2006-2007) tema 5 paacuteg 100
Grafo etiquetado con 6 veacutertices y 7 aristas
Terminologiacuteas o propiedades
Etiquetado Distincioacuten que se hace a los veacutertices yo aristas
mediante una marca que los hace uniacutevocamente distinguibles del resto es decir asignarle a cada veacutertice o arista un nombre
Quedan registrados los veacutertices A y B y la arista que los une como e1
Adyacencia Se dice que dos veacutertices son adyacentes si hay una
arista que los conecte entre ellos A y B son adyacentes
Grado de un veacutertice El grado de un veacutertice es un nuacutemero natural
de 0 al infinito que designa el nuacutemero de aristas le conectan
con otros veacutertices El grado de A es 2
Incidencia Una arista es incidente a un veacutertice si eacutesta lo une a
otro E1 es una arista incidente entre A y B
Ponderacioacuten Corresponde a una funcioacuten que a cada arista le
asocia un valor (costo peso longitud etc) para aumentar la
expresividad del modelo El valor ponderado de la arista entre A y B es 6
Camino Un camino es una secuencia de aristas que comienzan
en un veacutertice del grafo y recorren parte o la totalidad del grafo
conectando veacutertices adyacentes ERTYUI es un camino del grafo
A B
A B
C
A B e1
A B
C
6
9
A B e1
E R T Y U I
Circuito Cuando existe un camino que empieza y acaba en el
mismo veacutertice El siguiente grafo contiene el circuito VBNMV
Isomorfismo Si dos grafos son isomorfos soacutelo variacutea la
apariencia es decir que se mantienen las adyacencias
estructura caminos ciclos nuacutemero de veacutertices y nuacutemero de aristas Los dos grafos son isomorfos
Conexo Un grafo es conexo si tiene una uacutenica componente
conexa es decir todos los veacutertices del grafo estaacuten relacionados En el caso contrario seriacutea un grafo disconexo
A B
C
E R T
A B
C
E R T
Y Grafo disconexo
A B
C Grafo conexo
V B N
M
Familias de grafos simples
Grafo regular Un grafo simple es regular si todos sus veacutertices
tienen el mismo grado
Grafo completo El grafo completo es aquel que tiene
exactamente una arista entre cada par de veacutertices
Grafo complementario Un grafo complementario es aquel grafo
que contiene todos los veacutertices del original y las aristas que no
estaacutes
Grafo bipartito Un Grafo bipartito se denomina en Teoriacutea de
grafos a un grafo no dirigido cuyos veacutertices se pueden separar en dos conjuntos disjuntos y teniendo que las aristas siempre
uniraacuten veacutertices de un conjunto con veacutertices de otro
Grafo bipartito completo Cumple ambas condiciones
Grafo original Grafo complementario
Un aacuterbol etiquetado con 6 veacutertices y 5
aristas
Aacuterboles
Definicioacuten de aacuterbol Un aacuterbol es un grafo conexo y
sin ciclos o lazos es decir un grafo simple
Terminologiacuteas o propiedades
Definicioacuten de bosque Un aacuterbol es considerado un bosque si sus
componentes conexas son aacuterboles
Aacuterbol generador Un aacuterbol generador de un grafo conexo es un
subgrafo conexo con el menor nuacutemero posible de aristas y con todos los veacutertices del grafo original No tiene porque ser uacutenico
Aacuterbol generador miacutenimo El aacuterbol generador miacutenimo es un aacuterbol
generador construido sobre un grafo conexo ponderado con un
criterio de seleccioacuten de aristas definido por su menor peso
Raiacutez Un aacuterbol con raiacutez es un aacuterbol en el que uno de sus veacutertices
ha sido designado como la raiacutez y todas las aristas estaacuten colocadas alejaacutendose de dicha raiacutez
Otros ejemplos de aacuterboles
G
Grsquo
Raiacutez
Padre Se considera padre de un veacutertice al veacutertice adyacente
superior
Hijo Se consideran hijos de un veacutertice a todos los veacutertices
comunicados por una arista y adyacentes que se encuentren
por de este A es padre de B y C o lo que es lo mismo B y C son hijos de A
Hoja Son los veacutertices que no tienen hijos En este ejemplo
ABCDE son hojas del aacuterbol
Buacutesqueda en profundidad y buacutesqueda en profundidad en grafos dirigidos
Buacutesqueda en profundidad rdquoUna Buacutesqueda en profundidad es un
algoritmo que permite recorrer todos los nodos de un grafo o
aacuterbol de manera ordenada pero no uniforme Su funcionamiento consiste en ir expandiendo todos y cada uno de
los nodos que va localizando de forma recurrente en un camino concreto Cuando ya no quedan maacutes nodos que visitar
en dicho camino regresa de modo que repite el mismo
proceso con cada uno de los hermanos del nodo ya procesadordquo3
Algoritmo de ejemplo de una buacutesqueda en profundidad 4
Buacutesqueda en profundidad en grafos dirigidos La buacutesqueda en
grafos dirigidos es muy similar a la buacutesqueda sobre un grafo
no-dirigido sin embargo el resultado final no tiene porque ser un aacuterbol generador del grafo original sino que puede ser un
bosque 5
4 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
5 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
procedure BP(G grafo conexo de veacutertices v1v2hellip vn)
T= aacuterbol que consta soacutelo del veacutertice v1
visita(v1)
procedure visita(v veacutertice de G)
for cada veacutertice w adyacente a v y que no esteacute en T
begin
antildeadir el veacutertice w y la arista vw a T
visita(w)
end
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
d
h
l
k
j
j
Una buacutesqueda de ejemplo en un grafo dirigido
3 Resolucioacuten de ejercicios
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
2 Conceptos matemaacuteticos con ejemplos
Grafo ldquoInformalmente un grafo es un conjunto de objetos llamados
veacutertices o nodos unidos por enlaces llamados aristas o arcos que permiten representar relaciones binarias entre elementos de un
conjuntordquo 1
Definicioacuten formal ldquoUn grafo es un par G =
(VE) donde V es un conjunto finito no
vaciacuteo cuyos elementos se llaman veacutertices o nodos y E es una familia cuyos elementos
se llaman aristas Una rasita es un par no ordenado de veacutertices de Vrdquo 2
Tipos de grafos
Grafos simples Un grafo simple es un conjunto de veacutertices y
aristas Las aristas unen pares de veacutertices no habiendo dos
aristas que conecten el mismo par
Multigrafos Son grafos que contienen dos aristas que conectan
el mismo par de veacutertices
Pseudografos Son multigrafos que permiten la existencia de
lazos o aristas que unen un veacutertice consigo mismo
Grafos dirigidos Son grafos que indistintamente de si son
simples multigrafos o pseudografos tienen aristas con
direccioacuten o aristas dirigidas Los grafos sin aristas dirigidas son
grafos no dirigidos
1 httpeswikipediaorgwikiGrafo
2 Definicioacuten recogida en los apuntes de Matemaacutetica Discreta de la FIC (2006-2007) tema 5 paacuteg 100
Grafo etiquetado con 6 veacutertices y 7 aristas
Terminologiacuteas o propiedades
Etiquetado Distincioacuten que se hace a los veacutertices yo aristas
mediante una marca que los hace uniacutevocamente distinguibles del resto es decir asignarle a cada veacutertice o arista un nombre
Quedan registrados los veacutertices A y B y la arista que los une como e1
Adyacencia Se dice que dos veacutertices son adyacentes si hay una
arista que los conecte entre ellos A y B son adyacentes
Grado de un veacutertice El grado de un veacutertice es un nuacutemero natural
de 0 al infinito que designa el nuacutemero de aristas le conectan
con otros veacutertices El grado de A es 2
Incidencia Una arista es incidente a un veacutertice si eacutesta lo une a
otro E1 es una arista incidente entre A y B
Ponderacioacuten Corresponde a una funcioacuten que a cada arista le
asocia un valor (costo peso longitud etc) para aumentar la
expresividad del modelo El valor ponderado de la arista entre A y B es 6
Camino Un camino es una secuencia de aristas que comienzan
en un veacutertice del grafo y recorren parte o la totalidad del grafo
conectando veacutertices adyacentes ERTYUI es un camino del grafo
A B
A B
C
A B e1
A B
C
6
9
A B e1
E R T Y U I
Circuito Cuando existe un camino que empieza y acaba en el
mismo veacutertice El siguiente grafo contiene el circuito VBNMV
Isomorfismo Si dos grafos son isomorfos soacutelo variacutea la
apariencia es decir que se mantienen las adyacencias
estructura caminos ciclos nuacutemero de veacutertices y nuacutemero de aristas Los dos grafos son isomorfos
Conexo Un grafo es conexo si tiene una uacutenica componente
conexa es decir todos los veacutertices del grafo estaacuten relacionados En el caso contrario seriacutea un grafo disconexo
A B
C
E R T
A B
C
E R T
Y Grafo disconexo
A B
C Grafo conexo
V B N
M
Familias de grafos simples
Grafo regular Un grafo simple es regular si todos sus veacutertices
tienen el mismo grado
Grafo completo El grafo completo es aquel que tiene
exactamente una arista entre cada par de veacutertices
Grafo complementario Un grafo complementario es aquel grafo
que contiene todos los veacutertices del original y las aristas que no
estaacutes
Grafo bipartito Un Grafo bipartito se denomina en Teoriacutea de
grafos a un grafo no dirigido cuyos veacutertices se pueden separar en dos conjuntos disjuntos y teniendo que las aristas siempre
uniraacuten veacutertices de un conjunto con veacutertices de otro
Grafo bipartito completo Cumple ambas condiciones
Grafo original Grafo complementario
Un aacuterbol etiquetado con 6 veacutertices y 5
aristas
Aacuterboles
Definicioacuten de aacuterbol Un aacuterbol es un grafo conexo y
sin ciclos o lazos es decir un grafo simple
Terminologiacuteas o propiedades
Definicioacuten de bosque Un aacuterbol es considerado un bosque si sus
componentes conexas son aacuterboles
Aacuterbol generador Un aacuterbol generador de un grafo conexo es un
subgrafo conexo con el menor nuacutemero posible de aristas y con todos los veacutertices del grafo original No tiene porque ser uacutenico
Aacuterbol generador miacutenimo El aacuterbol generador miacutenimo es un aacuterbol
generador construido sobre un grafo conexo ponderado con un
criterio de seleccioacuten de aristas definido por su menor peso
Raiacutez Un aacuterbol con raiacutez es un aacuterbol en el que uno de sus veacutertices
ha sido designado como la raiacutez y todas las aristas estaacuten colocadas alejaacutendose de dicha raiacutez
Otros ejemplos de aacuterboles
G
Grsquo
Raiacutez
Padre Se considera padre de un veacutertice al veacutertice adyacente
superior
Hijo Se consideran hijos de un veacutertice a todos los veacutertices
comunicados por una arista y adyacentes que se encuentren
por de este A es padre de B y C o lo que es lo mismo B y C son hijos de A
Hoja Son los veacutertices que no tienen hijos En este ejemplo
ABCDE son hojas del aacuterbol
Buacutesqueda en profundidad y buacutesqueda en profundidad en grafos dirigidos
Buacutesqueda en profundidad rdquoUna Buacutesqueda en profundidad es un
algoritmo que permite recorrer todos los nodos de un grafo o
aacuterbol de manera ordenada pero no uniforme Su funcionamiento consiste en ir expandiendo todos y cada uno de
los nodos que va localizando de forma recurrente en un camino concreto Cuando ya no quedan maacutes nodos que visitar
en dicho camino regresa de modo que repite el mismo
proceso con cada uno de los hermanos del nodo ya procesadordquo3
Algoritmo de ejemplo de una buacutesqueda en profundidad 4
Buacutesqueda en profundidad en grafos dirigidos La buacutesqueda en
grafos dirigidos es muy similar a la buacutesqueda sobre un grafo
no-dirigido sin embargo el resultado final no tiene porque ser un aacuterbol generador del grafo original sino que puede ser un
bosque 5
4 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
5 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
procedure BP(G grafo conexo de veacutertices v1v2hellip vn)
T= aacuterbol que consta soacutelo del veacutertice v1
visita(v1)
procedure visita(v veacutertice de G)
for cada veacutertice w adyacente a v y que no esteacute en T
begin
antildeadir el veacutertice w y la arista vw a T
visita(w)
end
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
d
h
l
k
j
j
Una buacutesqueda de ejemplo en un grafo dirigido
3 Resolucioacuten de ejercicios
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
Terminologiacuteas o propiedades
Etiquetado Distincioacuten que se hace a los veacutertices yo aristas
mediante una marca que los hace uniacutevocamente distinguibles del resto es decir asignarle a cada veacutertice o arista un nombre
Quedan registrados los veacutertices A y B y la arista que los une como e1
Adyacencia Se dice que dos veacutertices son adyacentes si hay una
arista que los conecte entre ellos A y B son adyacentes
Grado de un veacutertice El grado de un veacutertice es un nuacutemero natural
de 0 al infinito que designa el nuacutemero de aristas le conectan
con otros veacutertices El grado de A es 2
Incidencia Una arista es incidente a un veacutertice si eacutesta lo une a
otro E1 es una arista incidente entre A y B
Ponderacioacuten Corresponde a una funcioacuten que a cada arista le
asocia un valor (costo peso longitud etc) para aumentar la
expresividad del modelo El valor ponderado de la arista entre A y B es 6
Camino Un camino es una secuencia de aristas que comienzan
en un veacutertice del grafo y recorren parte o la totalidad del grafo
conectando veacutertices adyacentes ERTYUI es un camino del grafo
A B
A B
C
A B e1
A B
C
6
9
A B e1
E R T Y U I
Circuito Cuando existe un camino que empieza y acaba en el
mismo veacutertice El siguiente grafo contiene el circuito VBNMV
Isomorfismo Si dos grafos son isomorfos soacutelo variacutea la
apariencia es decir que se mantienen las adyacencias
estructura caminos ciclos nuacutemero de veacutertices y nuacutemero de aristas Los dos grafos son isomorfos
Conexo Un grafo es conexo si tiene una uacutenica componente
conexa es decir todos los veacutertices del grafo estaacuten relacionados En el caso contrario seriacutea un grafo disconexo
A B
C
E R T
A B
C
E R T
Y Grafo disconexo
A B
C Grafo conexo
V B N
M
Familias de grafos simples
Grafo regular Un grafo simple es regular si todos sus veacutertices
tienen el mismo grado
Grafo completo El grafo completo es aquel que tiene
exactamente una arista entre cada par de veacutertices
Grafo complementario Un grafo complementario es aquel grafo
que contiene todos los veacutertices del original y las aristas que no
estaacutes
Grafo bipartito Un Grafo bipartito se denomina en Teoriacutea de
grafos a un grafo no dirigido cuyos veacutertices se pueden separar en dos conjuntos disjuntos y teniendo que las aristas siempre
uniraacuten veacutertices de un conjunto con veacutertices de otro
Grafo bipartito completo Cumple ambas condiciones
Grafo original Grafo complementario
Un aacuterbol etiquetado con 6 veacutertices y 5
aristas
Aacuterboles
Definicioacuten de aacuterbol Un aacuterbol es un grafo conexo y
sin ciclos o lazos es decir un grafo simple
Terminologiacuteas o propiedades
Definicioacuten de bosque Un aacuterbol es considerado un bosque si sus
componentes conexas son aacuterboles
Aacuterbol generador Un aacuterbol generador de un grafo conexo es un
subgrafo conexo con el menor nuacutemero posible de aristas y con todos los veacutertices del grafo original No tiene porque ser uacutenico
Aacuterbol generador miacutenimo El aacuterbol generador miacutenimo es un aacuterbol
generador construido sobre un grafo conexo ponderado con un
criterio de seleccioacuten de aristas definido por su menor peso
Raiacutez Un aacuterbol con raiacutez es un aacuterbol en el que uno de sus veacutertices
ha sido designado como la raiacutez y todas las aristas estaacuten colocadas alejaacutendose de dicha raiacutez
Otros ejemplos de aacuterboles
G
Grsquo
Raiacutez
Padre Se considera padre de un veacutertice al veacutertice adyacente
superior
Hijo Se consideran hijos de un veacutertice a todos los veacutertices
comunicados por una arista y adyacentes que se encuentren
por de este A es padre de B y C o lo que es lo mismo B y C son hijos de A
Hoja Son los veacutertices que no tienen hijos En este ejemplo
ABCDE son hojas del aacuterbol
Buacutesqueda en profundidad y buacutesqueda en profundidad en grafos dirigidos
Buacutesqueda en profundidad rdquoUna Buacutesqueda en profundidad es un
algoritmo que permite recorrer todos los nodos de un grafo o
aacuterbol de manera ordenada pero no uniforme Su funcionamiento consiste en ir expandiendo todos y cada uno de
los nodos que va localizando de forma recurrente en un camino concreto Cuando ya no quedan maacutes nodos que visitar
en dicho camino regresa de modo que repite el mismo
proceso con cada uno de los hermanos del nodo ya procesadordquo3
Algoritmo de ejemplo de una buacutesqueda en profundidad 4
Buacutesqueda en profundidad en grafos dirigidos La buacutesqueda en
grafos dirigidos es muy similar a la buacutesqueda sobre un grafo
no-dirigido sin embargo el resultado final no tiene porque ser un aacuterbol generador del grafo original sino que puede ser un
bosque 5
4 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
5 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
procedure BP(G grafo conexo de veacutertices v1v2hellip vn)
T= aacuterbol que consta soacutelo del veacutertice v1
visita(v1)
procedure visita(v veacutertice de G)
for cada veacutertice w adyacente a v y que no esteacute en T
begin
antildeadir el veacutertice w y la arista vw a T
visita(w)
end
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
d
h
l
k
j
j
Una buacutesqueda de ejemplo en un grafo dirigido
3 Resolucioacuten de ejercicios
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
Circuito Cuando existe un camino que empieza y acaba en el
mismo veacutertice El siguiente grafo contiene el circuito VBNMV
Isomorfismo Si dos grafos son isomorfos soacutelo variacutea la
apariencia es decir que se mantienen las adyacencias
estructura caminos ciclos nuacutemero de veacutertices y nuacutemero de aristas Los dos grafos son isomorfos
Conexo Un grafo es conexo si tiene una uacutenica componente
conexa es decir todos los veacutertices del grafo estaacuten relacionados En el caso contrario seriacutea un grafo disconexo
A B
C
E R T
A B
C
E R T
Y Grafo disconexo
A B
C Grafo conexo
V B N
M
Familias de grafos simples
Grafo regular Un grafo simple es regular si todos sus veacutertices
tienen el mismo grado
Grafo completo El grafo completo es aquel que tiene
exactamente una arista entre cada par de veacutertices
Grafo complementario Un grafo complementario es aquel grafo
que contiene todos los veacutertices del original y las aristas que no
estaacutes
Grafo bipartito Un Grafo bipartito se denomina en Teoriacutea de
grafos a un grafo no dirigido cuyos veacutertices se pueden separar en dos conjuntos disjuntos y teniendo que las aristas siempre
uniraacuten veacutertices de un conjunto con veacutertices de otro
Grafo bipartito completo Cumple ambas condiciones
Grafo original Grafo complementario
Un aacuterbol etiquetado con 6 veacutertices y 5
aristas
Aacuterboles
Definicioacuten de aacuterbol Un aacuterbol es un grafo conexo y
sin ciclos o lazos es decir un grafo simple
Terminologiacuteas o propiedades
Definicioacuten de bosque Un aacuterbol es considerado un bosque si sus
componentes conexas son aacuterboles
Aacuterbol generador Un aacuterbol generador de un grafo conexo es un
subgrafo conexo con el menor nuacutemero posible de aristas y con todos los veacutertices del grafo original No tiene porque ser uacutenico
Aacuterbol generador miacutenimo El aacuterbol generador miacutenimo es un aacuterbol
generador construido sobre un grafo conexo ponderado con un
criterio de seleccioacuten de aristas definido por su menor peso
Raiacutez Un aacuterbol con raiacutez es un aacuterbol en el que uno de sus veacutertices
ha sido designado como la raiacutez y todas las aristas estaacuten colocadas alejaacutendose de dicha raiacutez
Otros ejemplos de aacuterboles
G
Grsquo
Raiacutez
Padre Se considera padre de un veacutertice al veacutertice adyacente
superior
Hijo Se consideran hijos de un veacutertice a todos los veacutertices
comunicados por una arista y adyacentes que se encuentren
por de este A es padre de B y C o lo que es lo mismo B y C son hijos de A
Hoja Son los veacutertices que no tienen hijos En este ejemplo
ABCDE son hojas del aacuterbol
Buacutesqueda en profundidad y buacutesqueda en profundidad en grafos dirigidos
Buacutesqueda en profundidad rdquoUna Buacutesqueda en profundidad es un
algoritmo que permite recorrer todos los nodos de un grafo o
aacuterbol de manera ordenada pero no uniforme Su funcionamiento consiste en ir expandiendo todos y cada uno de
los nodos que va localizando de forma recurrente en un camino concreto Cuando ya no quedan maacutes nodos que visitar
en dicho camino regresa de modo que repite el mismo
proceso con cada uno de los hermanos del nodo ya procesadordquo3
Algoritmo de ejemplo de una buacutesqueda en profundidad 4
Buacutesqueda en profundidad en grafos dirigidos La buacutesqueda en
grafos dirigidos es muy similar a la buacutesqueda sobre un grafo
no-dirigido sin embargo el resultado final no tiene porque ser un aacuterbol generador del grafo original sino que puede ser un
bosque 5
4 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
5 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
procedure BP(G grafo conexo de veacutertices v1v2hellip vn)
T= aacuterbol que consta soacutelo del veacutertice v1
visita(v1)
procedure visita(v veacutertice de G)
for cada veacutertice w adyacente a v y que no esteacute en T
begin
antildeadir el veacutertice w y la arista vw a T
visita(w)
end
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
d
h
l
k
j
j
Una buacutesqueda de ejemplo en un grafo dirigido
3 Resolucioacuten de ejercicios
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
Familias de grafos simples
Grafo regular Un grafo simple es regular si todos sus veacutertices
tienen el mismo grado
Grafo completo El grafo completo es aquel que tiene
exactamente una arista entre cada par de veacutertices
Grafo complementario Un grafo complementario es aquel grafo
que contiene todos los veacutertices del original y las aristas que no
estaacutes
Grafo bipartito Un Grafo bipartito se denomina en Teoriacutea de
grafos a un grafo no dirigido cuyos veacutertices se pueden separar en dos conjuntos disjuntos y teniendo que las aristas siempre
uniraacuten veacutertices de un conjunto con veacutertices de otro
Grafo bipartito completo Cumple ambas condiciones
Grafo original Grafo complementario
Un aacuterbol etiquetado con 6 veacutertices y 5
aristas
Aacuterboles
Definicioacuten de aacuterbol Un aacuterbol es un grafo conexo y
sin ciclos o lazos es decir un grafo simple
Terminologiacuteas o propiedades
Definicioacuten de bosque Un aacuterbol es considerado un bosque si sus
componentes conexas son aacuterboles
Aacuterbol generador Un aacuterbol generador de un grafo conexo es un
subgrafo conexo con el menor nuacutemero posible de aristas y con todos los veacutertices del grafo original No tiene porque ser uacutenico
Aacuterbol generador miacutenimo El aacuterbol generador miacutenimo es un aacuterbol
generador construido sobre un grafo conexo ponderado con un
criterio de seleccioacuten de aristas definido por su menor peso
Raiacutez Un aacuterbol con raiacutez es un aacuterbol en el que uno de sus veacutertices
ha sido designado como la raiacutez y todas las aristas estaacuten colocadas alejaacutendose de dicha raiacutez
Otros ejemplos de aacuterboles
G
Grsquo
Raiacutez
Padre Se considera padre de un veacutertice al veacutertice adyacente
superior
Hijo Se consideran hijos de un veacutertice a todos los veacutertices
comunicados por una arista y adyacentes que se encuentren
por de este A es padre de B y C o lo que es lo mismo B y C son hijos de A
Hoja Son los veacutertices que no tienen hijos En este ejemplo
ABCDE son hojas del aacuterbol
Buacutesqueda en profundidad y buacutesqueda en profundidad en grafos dirigidos
Buacutesqueda en profundidad rdquoUna Buacutesqueda en profundidad es un
algoritmo que permite recorrer todos los nodos de un grafo o
aacuterbol de manera ordenada pero no uniforme Su funcionamiento consiste en ir expandiendo todos y cada uno de
los nodos que va localizando de forma recurrente en un camino concreto Cuando ya no quedan maacutes nodos que visitar
en dicho camino regresa de modo que repite el mismo
proceso con cada uno de los hermanos del nodo ya procesadordquo3
Algoritmo de ejemplo de una buacutesqueda en profundidad 4
Buacutesqueda en profundidad en grafos dirigidos La buacutesqueda en
grafos dirigidos es muy similar a la buacutesqueda sobre un grafo
no-dirigido sin embargo el resultado final no tiene porque ser un aacuterbol generador del grafo original sino que puede ser un
bosque 5
4 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
5 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
procedure BP(G grafo conexo de veacutertices v1v2hellip vn)
T= aacuterbol que consta soacutelo del veacutertice v1
visita(v1)
procedure visita(v veacutertice de G)
for cada veacutertice w adyacente a v y que no esteacute en T
begin
antildeadir el veacutertice w y la arista vw a T
visita(w)
end
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
d
h
l
k
j
j
Una buacutesqueda de ejemplo en un grafo dirigido
3 Resolucioacuten de ejercicios
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
Un aacuterbol etiquetado con 6 veacutertices y 5
aristas
Aacuterboles
Definicioacuten de aacuterbol Un aacuterbol es un grafo conexo y
sin ciclos o lazos es decir un grafo simple
Terminologiacuteas o propiedades
Definicioacuten de bosque Un aacuterbol es considerado un bosque si sus
componentes conexas son aacuterboles
Aacuterbol generador Un aacuterbol generador de un grafo conexo es un
subgrafo conexo con el menor nuacutemero posible de aristas y con todos los veacutertices del grafo original No tiene porque ser uacutenico
Aacuterbol generador miacutenimo El aacuterbol generador miacutenimo es un aacuterbol
generador construido sobre un grafo conexo ponderado con un
criterio de seleccioacuten de aristas definido por su menor peso
Raiacutez Un aacuterbol con raiacutez es un aacuterbol en el que uno de sus veacutertices
ha sido designado como la raiacutez y todas las aristas estaacuten colocadas alejaacutendose de dicha raiacutez
Otros ejemplos de aacuterboles
G
Grsquo
Raiacutez
Padre Se considera padre de un veacutertice al veacutertice adyacente
superior
Hijo Se consideran hijos de un veacutertice a todos los veacutertices
comunicados por una arista y adyacentes que se encuentren
por de este A es padre de B y C o lo que es lo mismo B y C son hijos de A
Hoja Son los veacutertices que no tienen hijos En este ejemplo
ABCDE son hojas del aacuterbol
Buacutesqueda en profundidad y buacutesqueda en profundidad en grafos dirigidos
Buacutesqueda en profundidad rdquoUna Buacutesqueda en profundidad es un
algoritmo que permite recorrer todos los nodos de un grafo o
aacuterbol de manera ordenada pero no uniforme Su funcionamiento consiste en ir expandiendo todos y cada uno de
los nodos que va localizando de forma recurrente en un camino concreto Cuando ya no quedan maacutes nodos que visitar
en dicho camino regresa de modo que repite el mismo
proceso con cada uno de los hermanos del nodo ya procesadordquo3
Algoritmo de ejemplo de una buacutesqueda en profundidad 4
Buacutesqueda en profundidad en grafos dirigidos La buacutesqueda en
grafos dirigidos es muy similar a la buacutesqueda sobre un grafo
no-dirigido sin embargo el resultado final no tiene porque ser un aacuterbol generador del grafo original sino que puede ser un
bosque 5
4 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
5 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
procedure BP(G grafo conexo de veacutertices v1v2hellip vn)
T= aacuterbol que consta soacutelo del veacutertice v1
visita(v1)
procedure visita(v veacutertice de G)
for cada veacutertice w adyacente a v y que no esteacute en T
begin
antildeadir el veacutertice w y la arista vw a T
visita(w)
end
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
d
h
l
k
j
j
Una buacutesqueda de ejemplo en un grafo dirigido
3 Resolucioacuten de ejercicios
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
Padre Se considera padre de un veacutertice al veacutertice adyacente
superior
Hijo Se consideran hijos de un veacutertice a todos los veacutertices
comunicados por una arista y adyacentes que se encuentren
por de este A es padre de B y C o lo que es lo mismo B y C son hijos de A
Hoja Son los veacutertices que no tienen hijos En este ejemplo
ABCDE son hojas del aacuterbol
Buacutesqueda en profundidad y buacutesqueda en profundidad en grafos dirigidos
Buacutesqueda en profundidad rdquoUna Buacutesqueda en profundidad es un
algoritmo que permite recorrer todos los nodos de un grafo o
aacuterbol de manera ordenada pero no uniforme Su funcionamiento consiste en ir expandiendo todos y cada uno de
los nodos que va localizando de forma recurrente en un camino concreto Cuando ya no quedan maacutes nodos que visitar
en dicho camino regresa de modo que repite el mismo
proceso con cada uno de los hermanos del nodo ya procesadordquo3
Algoritmo de ejemplo de una buacutesqueda en profundidad 4
Buacutesqueda en profundidad en grafos dirigidos La buacutesqueda en
grafos dirigidos es muy similar a la buacutesqueda sobre un grafo
no-dirigido sin embargo el resultado final no tiene porque ser un aacuterbol generador del grafo original sino que puede ser un
bosque 5
4 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
5 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
procedure BP(G grafo conexo de veacutertices v1v2hellip vn)
T= aacuterbol que consta soacutelo del veacutertice v1
visita(v1)
procedure visita(v veacutertice de G)
for cada veacutertice w adyacente a v y que no esteacute en T
begin
antildeadir el veacutertice w y la arista vw a T
visita(w)
end
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
d
h
l
k
j
j
Una buacutesqueda de ejemplo en un grafo dirigido
3 Resolucioacuten de ejercicios
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
Algoritmo de ejemplo de una buacutesqueda en profundidad 4
Buacutesqueda en profundidad en grafos dirigidos La buacutesqueda en
grafos dirigidos es muy similar a la buacutesqueda sobre un grafo
no-dirigido sin embargo el resultado final no tiene porque ser un aacuterbol generador del grafo original sino que puede ser un
bosque 5
4 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
5 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
procedure BP(G grafo conexo de veacutertices v1v2hellip vn)
T= aacuterbol que consta soacutelo del veacutertice v1
visita(v1)
procedure visita(v veacutertice de G)
for cada veacutertice w adyacente a v y que no esteacute en T
begin
antildeadir el veacutertice w y la arista vw a T
visita(w)
end
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
d
h
l
k
j
j
Una buacutesqueda de ejemplo en un grafo dirigido
3 Resolucioacuten de ejercicios
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
3 Resolucioacuten de ejercicios
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
4 Ejercicios con Maxima
1 Escribe el nombre del paquete de Maxima que incorpora las funciones
relacionadas con Teoriacutea de Grafos
El paquete graphs permite trabajar con estructuras de grafos y
digrafos en Maxima
2 Escribe las funciones de dicho paquete que
Define y crea los grafos
create_graph
Devuelve un ciclo de n veacutertices
cycle_graph
Devuelve un camino de n veacutertices
path_graph
Devuelve un aacuterbol aleatorio de n veacutertices
random_tree
Determina si un grafo es conexo
is_connected (Devuelve true si el grafo gr es conexo y false
en caso contrario)
Devuelve las componentes conexas de un grafo
connected_components
Determina si un grafo es un aacuterbol
is_tree (Devuelve true si es un arbol y false en caso contrario)
Devuelve un aacuterbol generador de un grafo
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
min_edge_cut
Dibuja un grafo
draw_graph
3 Utilizando Maxima
Crea los grafos de los ejercicios del Rosen paacuteg 509 3 4 5 7 8
Rosen paacuteg 538 Ejercicios 3 4 5 6
Rosen paacuteg 598-599 Ejercicio 1
Obteacuten un aacuterbol generador para cada uno los grafos de los ejercicios del
Rosen paacuteg 638 2 3 13
[wxMaxima batch file version 1] [ DO NOT EDIT
BY HAND ]
[ Created with wxMaxima version 086 ]
[wxMaxima input start ]
load(graphs)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
[wxMaxima input start ]
EJERCICIO 3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234]
[[12][23][13][24]])$
print_graph(g)$
draw_graphs(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 7
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 8
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 3 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 4 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 5 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
is_connected(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
[wxMaxima input start ]
EJERCICIO 6 PAG 538
[wxMaxima input end ]
[wxMaxima input start ]
3
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123] [[12][23]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234][[14][34]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
4
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)4
gcreate_graph([1234567891011][[12][1
3][28][37][39][48][410][59][511][610]
])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
5
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[15][13][26][24
][35][46]])$
print_graph(g)$
connected_components(g)
[wxMaxima input end ]
[wxMaxima input start ]
EJERCICIO 1 pag 598
[wxMaxima input end ]
[wxMaxima input start ]
a
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
b
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][35][36
]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
c
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][25][23][36
][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
d
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][24][25][35
][36][45]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
e
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([1234567][[14][24][34][5
4][64][74]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
[wxMaxima input start ]
f
[wxMaxima input end ]
[wxMaxima input start ]
load(graphs)$
gcreate_graph([123456][[14][16][24][25
][35][36]])$
print_graph(g)$
is_tree(g)
[wxMaxima input end ]
Maxima cant loadbatch files which end with a
comment
Created with wxMaxima$
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
5 Explicacioacuten del modelo ilustrada con un ejemplo
Conceptos previos
El grafo de red rdquoLa Red de Internet se puede representar por
medio de un grafo dirigido en el que cada paacutegina web estaacute representada por un veacutertice y en el que una arista comienza
en la paacutegina a y termina en la b si hay un enlace en la paacutegina a que conduce a la b[hellip]rdquo 6
Arantildeas web ldquoPara indexar los sitios de la red de Internet
buscadores como Google Hotbot y Lycos exploran
sistemaacuteticamente la Red comenzando en sitios conocidos Estos buscadores utilizar los contenidos Las arantildeas web
utilizan tanto la buacutesqueda en anchura como en profundidad
para crear iacutendices [hellip]rdquo 7
Otra definicioacuten ldquoUna arantildea web (o arantildea de la web) es un programa
que inspecciona las paacuteginas del World Wide Web de forma metoacutedica y
automatizada Uno de los usos maacutes frecuentes que se les da consiste en crear una copia de todas las paacuteginas web visitadas para su
procesado posterior por un motor de buacutesqueda que indexa las
paacuteginas proporcionando un sistema de buacutesquedas raacutepido Las arantildeas web suelen ser bots (el tipo maacutes usado de eacutestos)
Las arantildeas web comienzan visitando una lista de URLrsquos identifica los
hiperenlaces en dichas paacuteginas y los antildeade a la lista de URLrsquos a visitar de manera recurrente de acuerdo a determinado conjunto de reglas
6 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 508
7 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 637
Ejemplo de un grafo de red
a
b
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
La operacioacuten normal es que se le da al programa un grupo de
direcciones iniciales la arantildea descarga estas direcciones analiza las paacuteginas y busca enlaces a paacuteginas nuevas Luego descarga estas
paacuteginas nuevas analiza sus enlaces y asiacute sucesivamenterdquo8
Ejemplo de buacutesqueda en profundidad en un grafo dirigido
Partiendo del siguiente grafo explicaremos una buacutesqueda en
profundidad 9
Elegimos empezar por el veacutertice a para mantener un orden alfabeacutetico podriacutea empezarse por cualquier veacutertice del aacuterbol en este caso en otro
aacuterbol en el que la raiacutez fuera maacutes clara deberiacutea ser el veacutertice raiacutez el primero
Siguiendo las aristas dirigidas de a nos encontramos con los
siguientes caminos 1) (abcg) y (abfe) lo que nos da como resultado el siguiente aacuterbol
8 httpeswikipediaorgwikiAraC3B1a_web
9 Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones paacutegina 632
a b c d
e
f g
h
l i
j k
a
b
c
g
f
e
De a la arista dirigida nos lleva a b
de b tenemos dos caminos escogemos primero por orden
alfabeacutetico ir a c y de este veacutertice a g
como no tenemos maacutes caminos volvemos a b y continuamos de b a f
y de f a e Nuevamente no tenemos por donde seguir Esta parte estaacute
completa
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
Ahora elegimos el veacutertice d nuevamente por orden alfabeacutetico para
continuar nuestra buacutesqueda El camino resultante es (dhlkj)
El uacutenico veacutertice no recogido por nuestros dos aacuterboles es i para este resultado de una buacutesqueda los aacuterboles son los mostrados una
buacutesqueda que comenzara en otro veacutertice dariacutea lugar a otros aacuterboles
Esta vez es mucho maacutes sencillo
encontrar el camino de d a h de h a l de l a k y de k a j
d
h
l
k
j
j
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
6 Ejercicios propuestos sobre el tema
1- De que tipo son los siguientes grafos
E R T
Y
A B
C D
a b c d
e
f g
h
l i
j k
a)
b)
c)
d)
e)
f)
g)
h)
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
2- Partiendo del siguiente aacuterbol indica
a) iquestCuaacutel es el veacutertice raiacutez
b) iquestQueacute veacutertices son hojas
c) iquestQueacute veacutertices son hijos de b
d) iquestQueacute veacutertice es padre de d
e) iquestCuaacuteles son hermanos de e
f) iquestQueacute veacutertices son los antecesores de j
g) iquestCuaacuteles son los posibles caminos de aacuterbol
d
i j
h
f
e
c
a
b
g
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
3- En un juego de ordenador en 2D los usuarios gestionan una
ciudad disentildeando y estructurando sus recursos e infraestructuras
Un amigo nuestro que juega a ese juego se ha encontrado con un
problema que no consigue solucionar tiene que enviar agua luz y
gas a seis viviendas desde las distintas estaciones que se la
proporcionan pero no encuentra la manera de hacerlo iquestSeriacuteas
capaz de ayudarle teniendo en cuenta que el mundo es un plano y
por lo tanto las tuberiacuteas y los cables no se pueden cruzar
0 1 2
3 4 5
Luz Agua Gas
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search
7 Bibliografiacutea
Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)
Introduccioacuten a la Teoriacutea de Grafos de Reinaldo Giudici Espinoza y
Angeles Bris Lluch editorial Equinoccio Universidad Simoacuten Boliacutevar Caracas Venezuela 1997 httpteoriadegrafosblogspotcom
Un ejemplo de buacutesqueda en profundidad en grafos no dirigidos httptranslategoogleestranslatehl=esamplangpair=en|esampu=httpenwikipediaorgwikiDepth-first_search