Introduction et notations:
Voici une version nouvelle et simple de mon algorithme qui semble se terminer (selon mes expériences), et maintenant je voudrais le prouver.
Soit la notation faire référence à un point de données dimensionnelles (un vecteur). J'ai trois ensembles A, B et C, tels que , , :
Étant donné , soit la distance euclidienne moyenne de à ses points les plus proches dans ; et représentent la distance euclidienne moyenne de à son points les plus proches en .
Algorithme:
J'ai l'algorithme suivant qui modifie de manière itérative les ensembles A et B en déplaçant certains éléments sélectionnés de A vers B et vice versa, et C reste toujours le même (ne change pas). Pour faire simple: le but de l'algorithme est de mieux séparer les ensembles et telle sorte que "les points de sont plus similaires à ceux d'un ensemble fixe connu " et "les points de sont finalement auto-similaires et plus éloigné de ceux de et du set final ":
- ... (1)
- ; ... (2)
- } ... (3)
- ; ... (4)
- Répétez (1), (2), (3) et (4) jusqu'à ce que: (aucun élément ne passe de à ou de à , c'est-à-dire A 'et B' deviennent vides) ou ( ou )
L'algorithme se termine dans deux cas:
- quandoudevient inférieur ou égal à| B | k
- ou le cas le plus standard, quand , ce qui signifie qu'aucun élément ne se déplace entre A et B.
Question:
Comment prouver que cet algorithme se termine finalement? Je n'ai pas trouvé de fonction potentielle pratique qui puisse être strictement minimisée ou maximisée par l'algorithme. J'ai essayé en vain certaines fonctions: la fonction mais elle n'augmente pas à chaque itération. La fonction mais elle ne diminue pas à chaque itération. La fonction ne semble pas diminuer à chaque itération. La fonction ∑ x ∈ A d A x + ∑ x ∈ B d C x ∑ x ∈ A d A x + ∑ x ∈ B d B x ∑ x ∈ A d B x + ∑ x ∈ B d A xne semble pas augmenter à chaque itération. Alors, quelle est la fonction potentielle pratique qui peut augmenter ou diminuer à chaque itération? Ou faut-il montrer que la fonction diminue mais pas à chaque itération (après quelques itérations plutôt)? Comment ?
Remarques:
- Les points les plus proches de dans un ensemble , signifie: les points (autres que ) dans , ayant la plus petite distance euclidienne à . Vous pouvez simplement prendre pour simplifier l'analyse.
- Je ne sais pas si cela peut aider ou non, mais j'ai la propriété suivante pour mes ensembles initiaux : initialement , si est le point le plus proche à et est le point le plus proche de puis toujours . Ce moyen intuitivement que les points en sont plus proches de que dans les points .
- Si cela facilite l'analyse: il est tout à fait possible d'envisager une version légèrement différente de l'algorithme où dès qu'un point de doit être déplacé vers , il est déplacé de vers (sans passer par ), et vis versa pour .
Réponses:
Voici la solution pour le cas :k=1
Supposons que l'algorithme ne se termine pas. Puisqu'il existe un nombre fini d'états de l'algorithme (affectation de points à et ), l'état de l'algorithme doit se répéter dans un cycle. Puisque le cycle passe par différents états, il doit y avoir un point qui bascule entre et infiniment souvent.A B A B
Soit un point qui change infiniment souvent dans ce cycle. Choisir la première itération de l'algorithme dans le cycle au cours de laquelle passe de à . Pour que passe à , il doit y avoir au moins un point dans , avec . Choisir arbitrairement le point le plus petit étiqueté; définir une fonction pour que . Notez que doit également basculer entre et infiniment souvent (car si resté dansx x B A x A x′ A dCx>dist(x,x′) f f(x)=x′ x′ A B x′ A de façon permanente, ), donc nous pouvons prendre etc.x f(f(x)),f(f(f(x))),
Puisque nous avons un nombre fini de points, les itérations de f doivent finalement se répéter: pour certains . Regardez maintenant les séquences correspondantes de distances de C: . Puisqu'elle se répète, cette séquence ne peut pas être uniformément décroissante. Il doit y avoir une itération telle quefn(x)=fm(x) m>n dCf(x),dCf2(x),...dCfn(x),... o dCfo−1(x)≤dCfo(x)
Maintenant, et sont assez proches l'un de l'autre pour se faire mutuellement dans , si l'un d'eux l'est. C'est-à-dire qu'ils sont plus proches les uns des autres que l'un ou l'autre ne l'est de : (d'après la définition de )f o ( x ) Afo−1(x) fo(x) A d C f o ( x ) ≥ d C f o - 1 ( x ) > d i s t ( f o - 1 ( x ) , f o ( x ) ) fC dCfo(x)≥dCfo−1(x)>dist(fo−1(x),fo(x)) f
Donc, dès que et sont tous deux en , ils se tiendront mutuellement dans éternité (voir les lignes 1-2 de l'algorithme). Cela contredit le fait que tous les itérations de doivent changer de série infiniment souvent. Ainsi, pour le cas où , l'algorithme se termine.f o ( x ) A A f k = 1fo−1(x) fo(x) A A f k=1
la source