################################################################################
################################################################################
#   IA 2022-2023
################################################################################
################################################################################

import numpy as np, numpy.random as rd,  numpy.linalg as alg
import matplotlib.pyplot as plt

################################################################################
#   GENERATION DE DONNEES
################################################################################


def gener_pop(N,tm,ts):
    C=len(tm) # C : nombre de classes
    pop=[[] for k in range(C)]
    for k in range(C):
        mx,my=tm[k]
        sx,sy=ts[k]
        for i in range(N):
            pt=np.array([rd.normal(mx,sx),rd.normal(my,sy)])
            pop[k].append(pt)
    return pop


################################################################################
#   BASE D'APPRENTISSAGE
################################################################################

C=3
tm=[(0,0),(2,3),(2,0)]
ts=[(.4,.4),(.6,.7),(.5,.5)]


N=20
pop_0=gener_pop(N,tm,ts)

for c in range(C):
    tx=[pt[0] for pt in pop_0[c]]
    ty=[pt[1] for pt in pop_0[c]]
    plt.plot(tx,ty,'o')
plt.show()


################################################################################
#   KNN
################################################################################


def majo(L):
    # A COMPLETER
    pass

def knn(k,X,A):
    # A COMPLETER
    pass


################################################################################
#   BASE DE TEST
################################################################################




N=10
pop_1=gener_pop(N,tm,ts)

for c in range(C):
    tx=[pt[0] for pt in pop_1[c]]
    ty=[pt[1] for pt in pop_1[c]]
    plt.plot(tx,ty,'o')
plt.show()

confusion=[[0]*C for i in range(C)]
# A COMPLETER

print(np.array(confusion))    


 





