Example #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
Example #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
Example #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
Example #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
Example #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
Example #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
Example #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
Example #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
Example #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))