Algoritmia - coloracion de grafos

 
Vista:

coloracion de grafos

Publicado por Anthares (1 intervención) el 29/09/2006 21:07:00
Hola no se como hacer para dado un grafo darme cuenta si el numero cromatico es 2.
Si alguien me puede decir se lo agradezco mucho ¡¡¡¡¡¡¡¡
saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Determinar si el número cromático es 2 en un grafo

Publicado por Alejandro (307 intervenciones) el 06/03/2024 23:47:15
Anthares, para determinar si el número cromático de un grafo es 2, puedes utilizar el siguiente enfoque. El número cromático de un grafo es el número mínimo de colores necesarios para asignar un color a cada vértice de manera que no haya dos vértices adyacentes del mismo color.

Aquí hay un algoritmo simple en Python utilizando la biblioteca `networkx` para trabajar con grafos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import networkx as nx
 
def es_numero_cromatico_2(grafo):
    try:
        # Intenta colorear el grafo con 2 colores
        coloreo = nx.coloring.greedy_color(grafo, strategy="largest_first", interchange=True)
 
        # Verifica si ningún par de vértices adyacentes tiene el mismo color
        for u, v in grafo.edges():
            if coloreo[u] == coloreo[v]:
                return False
 
        return True
 
    except nx.NetworkXError:
        # Maneja errores si el grafo no es conexo o tiene otros problemas
        return False
 
# Ejemplo de uso
grafo_ejemplo = nx.Graph([(1, 2), (2, 3), (3, 4), (4, 1)])
 
if es_numero_cromatico_2(grafo_ejemplo):
    print("El número cromático es 2.")
else:
    print("El número cromático no es 2.")

Este código utiliza el algoritmo de coloreo voraz proporcionado por `networkx` para intentar colorear el grafo con 2 colores. Si tiene éxito sin encontrar conflictos (dos vértices adyacentes con el mismo color), entonces se considera que el número cromático es 2.

Asegúrate de tener instalada la biblioteca `networkx` antes de ejecutar el código:

1
pip install networkx

Puedes adaptar este código según tus necesidades y la representación específica de tu grafo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar