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