Esempio n. 1
0
def tsp_load(file_name='', use_numpy=False, use_path=False):
    """
        Mi version :P, del codigo para cargar los problemas de TCP, ademas
        opcionalmente permite convertir a un array de la libreria Numpy.
        como todos los archivos que vi (aunque no lei exaustivamente la info
        sobre como estan formateados) estan bien formados omitire algunas
        comprobaciones sobre identificadores.

        Parametros Entrada:
            file_name : nombre del archivo o la  ruta del mismo
            use_numpy : (bool), si se devovera un array normal o un objecto
                        numpy
            use_path : (bool)si se usara la ruta de los problemas para el
                        fichero a cargar, en caso contrario la ruta del mismo
                        devera ser pasada en file_name

        Devuelve:
            name : nombre del problema
            comment : comentarios
            point_list: lista de puntos
    """
    #Inclui un directorio con todos los problemas descargados de TSPLib por
    #lo que solo tendran que colocar en True 'use_path' y colocar solo el
    #nombre del fichero del problema
    if use_path:
        path = os.path.join(PROB_DIR, file_name)
    else:
        path = file_name

    #comprobacion de que el fichero exista en la ruta que pasamos
    try:
        file = open(path, 'r')
    except IOError, e:
        echo('Error no se pudo cargar el fichero %s' %path)
        exit(1)
Esempio n. 2
0
def tsp_load_(file_name='', use_path=False):
    """
        funcion ampliada, la cual lanzara un error si se intenta cargar un
        archivo con tipo de distancia Explicito. como el uso de numpy no esta
        soportado completamente el mismo esta desactivado

        Devuelve:
            name : nombre del problema
            comment : comentarios
            dist_type: tipo de distancia que se usa
            point_list: lista de puntos
    """
    #Inclui un directorio con todos los problemas descargados de TSPLib por
    #lo que solo tendran que colocar en True 'use_path' y colocar solo el
    #nombre del fichero del problema
    if use_path:
        path = os.path.join(PROB_DIR, file_name)
    else:
        path = file_name

    #comprobacion de que el fichero exista en la ruta que pasamos
    try:
        file = open(path, 'r')
    except IOError, e:
        echo('Error no se pudo cargar el fichero %s' %path)
        exit(1)
Esempio n. 3
0
def tsp_sol_load(file_name='', use_numpy=False, use_path=False):
    """
        Esta funcion permite cargar las soluciones optimas de algunos de los
        los problemas que vienen con la TSPLib (no todos tienen solucion
        optima). La misma acepta los mismos parametros que tsp_load()

        Parametros Entrada:
            file_name : nombre del archivo o la  ruta del mismo
            use_numpy : (bool), si se devovera un array normal o un objecto
                        numpy
            use_path : (bool)si se usara la ruta de las soluciones para el
                        fichero a cargar, en caso contrario la ruta del mismo
                        devera ser pasada en file_name

        Devuelve:
            prob_file : nombre del fichero '.tsp' del cual este archivo es
                        solucion
            soluc_opt: solucion optima, listado de nodos (indice de cada nodo)
    """
    #Inclui un directorio con todos las soluciones optimas descargados desde
    #TSPLib, por lo que solo tendran que colocar en True 'use_path' y colocar
    #solo el nombre del fichero
    if use_path:
        path = os.path.join(SOLUC_DIR, file_name)
    else:
        path = file_name

    #comprobacion de que el fichero exista en la ruta que pasamos
    try:
        file = open(path, 'r')
    except IOError, e:
        echo('Error no se pudo cargar el fichero %s' %path)
        exit(1)
Esempio n. 4
0
    point_list = [] #lista de  puntos x,y que representaran los vertices
    for linea in data_points:
        #obtengo las posiciones de los vertices o nodos, split por defecto
        #separara por saltos de linea \n y espacios en blanco ' '
        num = linea.split()
        tupla = float(num[1]), float(num[2])
        point_list.append(tupla)
        #v = Vector2D(float(num[1]), float(num[2]))
        #point_list.append(v)

    #pregunta si se devolvera un objecto array de numpy o un array tradicional
    #por ende requiere tener Numpy instalado :P
    if use_numpy and NUMPY_OK:
        point_list = np.array(point_list, np.float)

    echo('Cantidad de Vertices del problema %s: %s' %(name, len(point_list)))
    return name, comment, point_list


def tsp_load_(file_name='', use_path=False):
    """
        funcion ampliada, la cual lanzara un error si se intenta cargar un
        archivo con tipo de distancia Explicito. como el uso de numpy no esta
        soportado completamente el mismo esta desactivado

        Devuelve:
            name : nombre del problema
            comment : comentarios
            dist_type: tipo de distancia que se usa
            point_list: lista de puntos
    """