def inicializacao(c, q, mapa_x, mapa_y, t_min, t_max, denom, matrizes, individuals_objects):

    prototipos = []
    individuals = []

    individuals.extend(individuals_objects)

    mapa = Mapa(individuals, mapa_x, mapa_y, q)

    for cluster in mapa.mapa.flat:
        for cluster2 in mapa.mapa.flat:
            cluster.deltas[cluster2.point] = delta(cluster.point, cluster2.point)

    for obj in mapa.objetos:
        obj.set_pertinencias(mapa_x * mapa_y)

    # Etapa de afetação
    for objeto in mapa.objetos:
        criterios = [
            (mapa.calcula_criterio_fuzzy(objeto, denom, matrizes, cluster.point), cluster) for cluster in mapa.mapa.flat
        ]
        (menor_criterio, menor_criterio_cluster) = min(criterios)

        # Insere o objeto no cluster de menor critério
        mapa.mapa[menor_criterio_cluster.point.x, menor_criterio_cluster.point.y].inserir_objeto(objeto)
        objeto.set_cluster(mapa.mapa[menor_criterio_cluster.point.x, menor_criterio_cluster.point.y])

    return mapa