示例#1
0
def proxima_entrega(objetivo):

    for x in arange(0, len(matrizEntregas) - 1):
        listaEntrega = []
        if matrizEntregas[x][1] == objetivo[1]:
            listaEntrega = matrizEntregas[x + 1][0:]
            return listaEntrega
    listaEntrega = [-1]
    return listaEntrega
示例#2
0
def busca(
    raiz,
    objetivo,
):
    q = PriorityQueue()
    custo = 0
    tempo = objetivo[0]
    q.put((custo, raiz, [raiz]))

    while not q.empty():
        listaCidade = []
        listaCidade = q.get()
        cidade = listaCidade[1]

        if cidade == objetivo[1]:
            custoTotal = calcular_entrega(listaCidade[2])
            print("Tempo :{} ".format(custoTotal * 2))
            print("Caminho : {}".format(listaCidade[2]))
            print("Lucro : {}".format(objetivo[2]))

            listaTotal.append(int(objetivo[2]))
            listaEntrega = proxima_entrega(objetivo)
            for x in arange(len(matrizEntregas) - 1):
                if int(listaEntrega[0]) == -1:
                    print("Lucro Total : {}".format(sum(listaTotal)))
                    return
                if (custoTotal * 2) + int(objetivo[0]) <= int(listaEntrega[0]):
                    return busca('A', listaEntrega)
                else:
                    return busca('A', proxima_entrega(listaEntrega))
            print("Lucro Total : {}".format(sum(listaTotal)))
            return

        cidades_ad = deliveryCidades[cidade]

        for cidade_ad, custoCidade in cidades_ad.items():
            if listaCidade[2].count(cidade_ad):
                continue

            else:
                q.put((custoCidade, cidade_ad, listaCidade[2] + [cidade_ad]))
                custo = int(custoCidade) + custo
示例#3
0
# numpy是python科学计算的基础包,存储其中的数据类型必须相同
# 切片功能和元组一样
import numpy
from numpy.core._multiarray_umath import arange

a = arange(5)
print(a)  # 一个数组,类似list
print(a.shape)  # a的长度
print(a.dtype)  # a数组中元素的类型
a1 = numpy.array([numpy.arange(3),
                  numpy.arange(5)])  # 生成一个长度为2,每行元素为array的二维数组
print(a1.shape)
print(a1[0][1])  # 等同于a1[0,1]
a2 = a.astype(numpy.float)  # 将一个一维数组强行转换为其他类型,该类型为numpy自带类型,非python类型,只能转换一维数组
print(a2)
示例#4
0
def from_shape(shape: Tuple[int,int],
               size: Tuple[int,int],
               step: Tuple[int,int])->Iterator[Tuple[Tuple[int,int], Tuple[int,int]]]:
    for i in arange(0, shape[0] - size[0], step[0]):
        for j in arange(0, shape[1] - size[1], step[1]):
            yield (i, j), size
示例#5
0
def calcular_entrega(rota):
    valor_da_rota = 0
    for x in arange(0, len(rota) - 1):
        valor_da_rota = int(
            deliveryCidades[rota[x]][rota[x + 1]]) + valor_da_rota
    return valor_da_rota