コード例 #1
0
 def get_fitness( self ):
     if ( self._fitness != -1 ):
         return self._fitness
     else:
         GeneticCode.surface.fill( (0,0,0) ) 
         self.draw_onto_surface( GeneticCode.surface )
         pixelArray = convertToPixelArray( GeneticCode.surface )
         euclideanDist = euclideanDistance( pixelArray , IMG_PIXEL_ARRAY )
         self._fitness = -(log10( euclideanDist ) - log10(norm( pixelArray ) + IMG_PIXEL_ARRAY_NORM ) )
         return self._fitness
コード例 #2
0
 def get_fitness(self):
     if (self._fitness != -1):
         return self._fitness
     else:
         GeneticCode.surface.fill((0, 0, 0))
         self.draw_onto_surface(GeneticCode.surface)
         pixelArray = convertToPixelArray(GeneticCode.surface)
         euclideanDist = euclideanDistance(pixelArray, IMG_PIXEL_ARRAY)
         self._fitness = -(log10(euclideanDist) -
                           log10(norm(pixelArray) + IMG_PIXEL_ARRAY_NORM))
         return self._fitness
コード例 #3
0
    def determine_dir(self):
        v2center = self.vect_to_target(self.position)
        d2center = norm(v2center)
        ennemy_velocity = 1.3 * norm(
            self._target[2:])  # Permet d'anticiper jusqu'à 30% de la vitesse max adverse connue
        self.target_max_known_speed = max(self.target_max_known_speed, ennemy_velocity)
        intercept_range_self = d2center * Jog.MAX_WHEEL_SPEED / self.target_max_known_speed

        v2prerob = self.allies[0] - self.position
        d2prerob = norm(v2prerob)
        intercept_range_pre = d2prerob * Jog.MAX_WHEEL_SPEED / self.target_max_known_speed

        v2postrob = self.allies[1] - self.position
        d2postrob = norm(v2postrob)
        intercept_range_post = d2postrob * Jog.MAX_WHEEL_SPEED / self.target_max_known_speed

        p = d2prerob - intercept_range_pre - intercept_range_self
        q = d2postrob - intercept_range_post - intercept_range_self

        targ_dir = [0, 0]
        # algorithmes de regulation des intercepteurs autour de l'ennemi
        if (p < -Jog.SAFETY_MARGIN) and (q < -Jog.SAFETY_MARGIN):
            targ_dir = v2center / d2center
        elif p <= q and ((q > - Jog.SAFETY_MARGIN) != (p > -Jog.SAFETY_MARGIN)):
            targ_dir = v2postrob / d2postrob
        elif p > q and ((q > - Jog.SAFETY_MARGIN) != (p > -Jog.SAFETY_MARGIN)):
            targ_dir = v2prerob / d2prerob
        else:
            if norm(self.vect_to_target(self.allies[1])) > d2center:
                targ_dir = v2postrob / d2postrob
            if norm(self.vect_to_target(self.allies[0])) < d2center:
                targ_dir = v2prerob / d2prerob
        return [Jog.NORMAL_SPEED, atan2(targ_dir[1], targ_dir[0])]
コード例 #4
0
ファイル: bhattacharyya.py プロジェクト: aredmon/test
def bhattacharyya(x, y, Sx, Sy, K_factor=5):
    BIG_L = TOM_SAPS.BIG_L

    (_, m) = x.shape
    (_, n) = y.shape
    M = np.zeros((m, n))
    dist = M.copy()

    S = (Sx + Sy) / 2.0
    Si = np.linalg.inv(S)

    lnS = 0.5 * log(
        np.linalg.det(S) / sqrt(np.linalg.det(Sx) * np.linalg.det(Sy)))

    for i in range(m):
        for j in range(n):
            dx = x[:, i] - y[:, j]
            dist[i, j] = norm(dx)
            d = np.dot(np.dot(dx.T, Si), dx)  ## NOTE: matrix multiplication
            M[i, j] = d + lnS
            if sqrt(d) > K_factor:
                M[i, j] = BIG_L

    return (M, dist)
コード例 #5
0
'''
Created on Sep 12, 2015

@author: mjchao
'''
import pygame
from Utils import convertToPixelArray, norm

#list of global parameter constants


P = 100
N = 1
K = 1
T = 500000
E = 500000

#---Change when image changes---#
IMG = pygame.image.load( "../html/mona_lisa.bmp" )
OUTPUT_DIR = "tmp"
IMG_WIDTH = 32
IMG_HEIGHT = 32
#--------------------------#

IMG_PIXEL_ARRAY = convertToPixelArray( IMG )
IMG_PIXEL_ARRAY_NORM = norm( IMG_PIXEL_ARRAY )