コード例 #1
0
def newAnalyzer():
    analyzer = {'TaxiNum': None, 'TaxiPQ': None, 'ServicePQ': None, 'ServicePQ': None, 'PointsTree': None, 'AreaGraph': None}
    analyzer["TaxiNum"] = m.newMap(numelements=2000,
                                              maptype="PROBING",
                                              comparefunction=compareCompanies)
    analyzer['TaxiPQ'] = {'PQ': ipq.newIndexMinPQ(compareCompanies), 'Map': m.newMap(numelements=500, comparefunction=compareCompanies)}
    analyzer['ServicePQ'] = {'PQ': ipq.newIndexMinPQ(compareCompanies), 'Map': m.newMap(numelements=500, comparefunction=compareCompanies)}
    analyzer['PointsTree'] = om.newMap(omaptype='BST',comparefunction=compareDates)
    analyzer['AreaGraph'] = gr.newGraph(datastructure='ADJ_LIST',
                                              directed=True,
                                              size=1000,
                                              comparefunction = compareAreas)
    return analyzer
def iminpq():
    iminpq = pq.newIndexMinPQ(greater)
    iminpq = pq.insert(iminpq, 'A', 23)
    iminpq = pq.insert(iminpq, 'B', 7)
    iminpq = pq.insert(iminpq, 'C', 30)
    iminpq = pq.insert(iminpq, 'D', 5)
    iminpq = pq.insert(iminpq, 'E', 15)
    return iminpq
コード例 #3
0
def newAnalyzer():
    bikes = {
        "Stations": None,
        "Trips": None,
        "grafo": None,
        'paths': None,
        "table": None
    }
    bikes["grafo"] = gr.newGraph(datastructure="ADJ_LIST",
                                 directed=True,
                                 size=1000,
                                 comparefunction=compareStations)
    bikes["topsalida"] = iminpq.newIndexMinPQ(cmpfunction=cmpimin)
    bikes["topllegada"] = iminpq.newIndexMinPQ(cmpfunction=cmpimin)
    bikes["topuso"] = iminpq.newIndexMinPQ(cmpfunction=cmpimin)
    bikes["stationtree"] = om.newMap(omaptype='',
                                     comparefunction=comparebycoord)
    bikes["tablesalida"] = m.newMap(maptype='', comparefunction=compareIds)
    bikes["tablellegada"] = m.newMap(maptype='', comparefunction=compareIds)
    bikes["mayoressalida"] = m.newMap(maptype='', comparefunction=compareIds)
    bikes["mayoresllegada"] = m.newMap(maptype='', comparefunction=compareIds)
    bikes["names"] = m.newMap(maptype='', comparefunction=compareIds)

    bikes["BikesIDs"] = m.newMap(50000,
                                 maptype='PROBING',
                                 loadfactor=0.5,
                                 comparefunction=compareIds)

    bikes["ageVertexAHash"] = m.newMap(maptype='', comparefunction=compareIds)
    bikes["ageVertexBHash"] = m.newMap(maptype='', comparefunction=compareIds)
    bikes["stationVertexAHash"] = m.newMap(maptype='',
                                           comparefunction=compareIds)
    bikes["stationVertexBHash"] = m.newMap(maptype='',
                                           comparefunction=compareIds)
    bikes["ageTrips"] = m.newMap(maptype='', comparefunction=compareIds)
    bikes["agesA"] = lt.newList('SINGLE_LINKED')
    bikes["agesB"] = lt.newList('SINGLE_LINKED')
    return bikes
コード例 #4
0
def initSearch(graph):
    """
    Inicializa la estructura de busqueda y deja
    todos los arcos en infinito.
    Se inserta en la cola el vertice source
    Args:
        graph: El grafo a examinar
        source: El vertice fuente
    Returns:
        Estructura de busqueda inicializada
    Raises:
        Exception
    """
    try:
        search = {
            'edgeTo': None,
            'distTo': None,
            'marked': None,
            'pq': None,
            'mst': None
        }

        search['edgeTo'] = map.newMap(numelements=g.numVertices(graph),
                                      maptype='PROBING',
                                      comparefunction=graph['comparefunction'])

        search['distTo'] = map.newMap(numelements=g.numVertices(graph),
                                      maptype='PROBING',
                                      comparefunction=graph['comparefunction'])

        search['marked'] = map.newMap(numelements=g.numVertices(graph),
                                      maptype='PROBING',
                                      comparefunction=graph['comparefunction'])

        vertices = g.vertices(graph)
        for vert in lt.iterator(vertices):
            map.put(search['distTo'], vert, math.inf)
            map.put(search['marked'], vert, False)

        search['pq'] = pq.newIndexMinPQ(cmpfunction=graph['comparefunction'])
        search['mst'] = q.newQueue()

        return search

    except Exception as exp:
        error.reraise(exp, 'bellman:init')
コード例 #5
0
def initSearch(graph, source):
    """
    Inicializa la estructura de busqueda y deja
    todos los arcos en infinito.
    Se inserta en la cola indexada el vertice source
    Args:
        graph: El grafo a examinar
        source: El vertice fuente
    Returns:
        Estructura de busqueda inicializada
    Raises:
        Exception
    """
    try:
        search = {
            'source': source,
            'visited': None,
            'iminpq': None
        }

        search['visited'] = map.newMap(numelements=g.numVertices(graph),
                                       maptype='PROBING',
                                       comparefunction=graph['comparefunction']
                                       )
        vertices = g.vertices(graph)
        itvertices = it.newIterator(vertices)
        while (it.hasNext(itvertices)):
            vert = it.next(itvertices)
            map.put(search['visited'],
                    vert,
                    {'marked': False, 'edgeTo': None, 'distTo': math.inf}
                    )
        map.put(search['visited'],
                source,
                {'marked': True, 'edgeTo': None, 'distTo': 0}
                )
        pq = iminpq.newIndexMinPQ(
            cmpfunction=graph['comparefunction']
        )
        search['iminpq'] = pq
        iminpq.insert(search['iminpq'], source, 0)
        return search
    except Exception as exp:
        error.reraise(exp, 'dks:init')