Soit un graphe complet, pondéré et non orienté. Nous construisons un deuxième graphe en ajoutant un à un les arêtes de à . Nous ajoutons des arêtes à au total.E E ′ Θ ( | V | ) G ′
Chaque fois que nous ajoutons une arête à , nous considérons les distances les plus courtes entre toutes les paires dans et . Nous comptons combien de ces distances les plus courtes ont changé suite à l'ajout de . Soit le nombre de distances les plus courtes qui changent lorsque nous ajoutons le ème bord, et soit le nombre d'arêtes que nous ajoutons au total.E ′ ( V , E ′ ) ( V , E ′ ∪ { ( u , v ) } ) ( u , v ) C i i n
Quelle est la taille de ?
Comme , également. Cette limite peut-elle être améliorée? Notez que je définis comme étant la moyenne sur toutes les arêtes qui ont été ajoutées, donc un seul tour dans lequel beaucoup de distances changent n'est pas si intéressant, même si cela prouve que .C = O ( n 2 ) C C = Ω ( n )
J'ai un algorithme pour calculer avidement une clé géométrique qui fonctionne en temps , donc si est , mon algorithme est plus rapide que l'algorithme gourmand d'origine, et si est vraiment petit, potentiellement plus rapide que l'algorithme le plus connu (bien que j'en doute).
Quelques propriétés spécifiques au problème qui pourraient aider à une bonne limite: l'arête qui est ajoutée a toujours un poids plus important que n'importe quelle arête déjà dans le graphique (pas nécessairement strictement plus grande). De plus, son poids est plus court que le chemin le plus court entre et .u v
Vous pouvez supposer que les sommets correspondent à des points dans un plan 2D et que les distances entre les sommets sont les distances euclidiennes entre ces points. Autrement dit, chaque sommet correspond à un certain point dans le plan, et pour une arête son poids est égal à