TRAJO SOBRE GRAFOS

25
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

Transcript of TRAJO SOBRE GRAFOS

Page 1: TRAJO SOBRE GRAFOS

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

3 httpeswikipediaorgwikiBC3BAsqueda_en_profundidad

A

B C

A

B C

D

E

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 2: TRAJO SOBRE GRAFOS

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

3 httpeswikipediaorgwikiBC3BAsqueda_en_profundidad

A

B C

A

B C

D

E

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 3: TRAJO SOBRE GRAFOS

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

3 httpeswikipediaorgwikiBC3BAsqueda_en_profundidad

A

B C

A

B C

D

E

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 4: TRAJO SOBRE GRAFOS

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

3 httpeswikipediaorgwikiBC3BAsqueda_en_profundidad

A

B C

A

B C

D

E

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 5: TRAJO SOBRE GRAFOS

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

3 httpeswikipediaorgwikiBC3BAsqueda_en_profundidad

A

B C

A

B C

D

E

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 6: TRAJO SOBRE GRAFOS

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

3 httpeswikipediaorgwikiBC3BAsqueda_en_profundidad

A

B C

A

B C

D

E

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 7: TRAJO SOBRE GRAFOS

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

3 httpeswikipediaorgwikiBC3BAsqueda_en_profundidad

A

B C

A

B C

D

E

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 8: TRAJO SOBRE GRAFOS

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

3 httpeswikipediaorgwikiBC3BAsqueda_en_profundidad

A

B C

A

B C

D

E

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 9: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 10: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 11: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 12: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 13: TRAJO SOBRE GRAFOS

[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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 14: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 15: TRAJO SOBRE GRAFOS

[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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 16: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 17: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 18: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 19: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 20: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 21: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 22: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 23: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 24: TRAJO SOBRE GRAFOS

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)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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

Page 25: TRAJO SOBRE GRAFOS

7 Bibliografiacutea

Rosen Kenneth H Matemaacutetica discreta y sus aplicaciones Edicioacuten 5ordf McGraw-Hill 2004 (Hay varios ejemplares disponibles en la biblioteca del Campus)

Garciacutea Merayo Feacutelix Matemaacutetica discreta Edicioacuten 2ordf ed Paraninfo DL 2005

Kolman Bernard Estructuras de matemaacuteticas discretas para la computacioacuten Edicioacuten 3ordf Prentice Hall 1997

Apuntes de Matemaacutetica Discreta de la Facultad de informaacutetica de Coruntildea (2006-2007)

Poli Abascal Fuentes Teoriacutea de Grafos

httpenolepsigunioviesmatdiscmaterialestrgrafosalupdf

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