Exemplo n.º 1
0
def lastTwo(tiles, s1, s2, s3):
    final = np.zeros((2, 2))
    points = 0
    '''
    t_1 = []
    t_2 = []
    t_3 = []
    '''
    for i in tiles:
        temp_1 = t1.Location(int(i / 100), i % 100)
        for j in tiles:
            if (i != j):

                temp_2 = t1.Location(int(j / 100), j % 100)
                cPts = connxionPts(checkConnection(temp_1)) + connxionPts(
                    checkConnection(temp_2))
                rPts = roadPts(temp_1, temp_2)
                pPts = populationPts(temp_1, temp_2)
                total = (cPts - 11.44) / 3.8995 * s1 + (
                    rPts - 64.18) / 2.295 * s2 + (pPts - 641.6) / 8.2486 * s3

                if (total > points):
                    final = [[temp_1.x, temp_1.y], [temp_2.x, temp_2.y]]
                    points = total
    return final
Exemplo n.º 2
0
def populationPts(l1, l2):
    pts = 0
    popMap = removeBonuses(dt.get_populaton_map(), lastP)
    for i in range(25):
        for j in range(72):
            temp = t1.Location(i, j)
            if (temp.getDistance(l1) <= 52.7):
                pts += popMap[i][j]
    popMap = removeBonuses(popMap, l1)
    for i in range(25):
        for j in range(72):
            temp = t1.Location(i, j)
            if (temp.getDistance(l2) <= 52.7):
                pts += popMap[i][j]
    return pts
Exemplo n.º 3
0
def removeBonuses(map, loc):
    for i in range(25):
        for j in range(72):
            temp = t1.Location(i, j)
            if (temp.getDistance(loc) <= 52.7):
                map[i][j] = 0
    return map
Exemplo n.º 4
0
def removeImpedence(adjPar, loc):
    for i in adjPar:
        y = i % 100
        x = int(i / 100)
        tarTile = t1.Location(x, y)
        adjPar[i] = adjPar[i] / (np.exp(-tarTile.getDistance(loc)) + 1)
    return adjPar
Exemplo n.º 5
0
def downToFifty(tiles):
    adjPar = {}  #initialize adjust parameters
    lastFifty = {}
    counter = 1
    for i in tiles:
        adjPar[i] = 1

    keys = list(tiles.keys())
    random.shuffle(keys)
    for i in keys:
        print(counter)
        '''
        if(counter == 135):
            print ('1/4 DONE!!')
            printTiles(lastFifty)
        if(counter == 270):
            print ('HALF DONE!!!')
            printTiles(lastFifty)
        if(counter == 405):
            print ('3/4 DONE!!!!')
            printTiles(lastFifty)
        '''

        counter += 1
        y = i % 100
        x = int(i / 100)
        tarLoc = t1.Location(x, y)

        if (len(lastFifty) < 50):
            lastFifty[i] = getAddedImped(tarLoc)
            adjPar = adjImpedence(adjPar, tarLoc)

        else:
            temp = adjedTile(lastFifty, adjPar)
            #print (i)
            ff = getAddedImped(tarLoc)
            if (temp[getMax(temp)] > ff * adjPar[i]):
                adx = getMax(temp) % 100
                ady = int(getMax(temp) / 100)
                delLoc = t1.Location(adx, ady)
                del lastFifty[getMax(temp)]
                lastFifty[i] = ff
                adjPar = adjImpedence(adjPar, tarLoc)
                adjPar = removeImpedence(adjPar, delLoc)
    return lastFifty
Exemplo n.º 6
0
def roadPts(l1, l2):
    pts = 0
    roadMap = removeBonuses(dt.get_highway_map(), lastP)
    # print (roadMap)
    for i in range(25):
        for j in range(72):
            temp = t1.Location(i, j)
            if (temp.getDistance(l1) <= 52.7):
                if (roadMap[i][j] != 0):
                    pts += 1
    roadMap = removeBonuses(roadMap, l1)
    for i in range(25):
        for j in range(72):
            temp = t1.Location(i, j)
            if (temp.getDistance(l2) <= 52.7):
                if (roadMap[i][j] != 0):
                    pts += 1
    return pts
Exemplo n.º 7
0
def pickOneEtile(tiles):
    lastOne = {}
    for i in tiles:
        y = i % 100
        x = int(i / 100)
        tarLoc = t1.Location(x, y)
        curMin = getMinWeight(dt.destruction_wind_rainfall_analysis(), eHos,
                              tarLoc)
        if (len(lastOne) == 0):
            lastOne[i] = curMin
        elif (lastOne[list(tiles.keys())[0]] > curMin):
            lastOne.clear()
            lastOne[i] = curMin
    return lastOne
Exemplo n.º 8
0
def pickEhosTiles(map, percentile):
    size = int(percentile / 100 * 72 * 25)
    dict = {}
    for i in range(0, 25):
        for j in range(0, 72):
            loc = t1.Location(i, j)
            if (loc.getDistance(eHos) <= 52.7):
                if (loc.getDistance(dHos) <= 52.7
                        or loc.getDistance(cHos) <= 52.7):
                    if (len(dict) < size):
                        dict[i * 100 + j] = map[i][j]
                    else:
                        if (map[i][j] < dict[getMax(dict)]):
                            del dict[getMax(dict)]
                            dict[i * 100 + j] = map[i][j]

    return dict
Exemplo n.º 9
0
import math
import matplotlib.pyplot as plt
import matplotlib.image as img
import numpy as np
import scipy as sp
import scipy.stats as st
import pickle as pkl
import csv as csv
import database as dt
import task1 as t1
import routinePlanning as rp
import random

eHos = t1.Location(1, 22)
dHos = t1.Location(4, 48)
cHos = t1.Location(2, 53)
bHos = t1.Location(13, 54)
aHos = t1.Location(7, 71)
lastP = t1.Location(3, 34)
locBest1 = t1.Location(3, 50)
locBest2 = t1.Location(8, 54)
locBest3 = t1.Location(3, 34)

print(locBest1.getDistance(aHos))
print(locBest2.getDistance(aHos))

print(locBest1.getDistance(dHos))
print(locBest2.getDistance(dHos))

print(locBest1.getDistance(bHos))
print(locBest1.getDistance(cHos))