Un modo semplice per dimostrare che questo algoritmo alla fine termina


10

Introduzione e notazioni:

Ecco una nuova e semplice versione del mio algoritmo che sembra terminare (secondo i miei esperimenti), e ora vorrei dimostrarlo.

Lascia che la notazione riferisca a un punto dati p dimensionale (un vettore). Ho tre set A, B e C, tali che | A | = n , | B | = m , | C | = l : A = { x i | i = 1 , . . , n } B = { x j | j = n + 1xiRpp|A|=n|B|=m|C|=l

A={xi|i=1,..,n}
C = { x u | u = n + m + 1 , . . , n + m + l }
B={xj|j=n+1,..,n+m}
C={xu|u=n+m+1,..,n+m+l}

Dato , d d A x i denota la distanza euclidea media da x i ai suoi k punti più vicini in A ; e d C x i denotano la distanza euclidea medio da x i al suo k più vicino a punti C .kNdxiAxikAdxiCxikC

Algoritmo:

ABBCACB

  • A={xiAdxiA>dxiC}
  • A=AAB=BA
  • B={xiBdxiA<dxiC
  • B=BBA=AB
  • ABBA|A|k|B|k

L'algoritmo termina in due casi:

  • |A||B|k
  • A=B=

Domanda:

xAdxC+xBdxAxAdxA+xBdxCxAdxA+xBdxBxAdxB+xBdxA

Appunti:

  • kxSkxSxk=1
  • A,B,CxiB,xjAxbCxixaCxjdistance(xi,xb)<distance(xj,xa)BCA
  • ABABAB

3
Perché sei interessato a questo particolare algoritmo?

1
shna: Che cosa vuoi fare con una raccolta di punti arbitrariamente divisa in tre serie?

4
@shna Conoscere lo scopo e l'obiettivo dell'algoritmo può portare a una migliore intuizione e quindi aiutare il problema.

ABBCACB

La migrazione a Cstheory è stata rifiutata.

Risposte:


2

k=1

ABAB

xxBAxAxAdxC>dist(x,x)ff(x)=xxABxAxf(f(x)),f(f(f(x))),

fn(x)=fm(x)m>ndf(x)C,df2(x)C,...dfn(x)C,...odfo1(x)Cdfo(x)C

fo1(x)fo(x)ACdfo(x)Cdfo1(x)C>dist(fo1(x),fo(x))f

fo1(x)fo(x)AAfk=1


Questo è in qualche modo complicato e può essere mostrato solo per k=1

1
@shn Non sono sicuro del motivo per cui stai criticando la scelta della tecnica di prova di qualcuno che ha avuto più successo nel risolvere il tuo problema di te. Soprattutto quando la tua domanda elenca quattro tentativi falliti di usare la tua tecnica preferita.
David Richerby,

1
@DavidRicherby Non sto criticando;) In realtà ho discusso di quella soluzione con "causativo" (che ha dato questa risposta) su IRC e abbiamo scoperto che non sarà possibile dimostrarlo in questo modo per k>1
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.