Find closest vector











up vote
-1
down vote

favorite












We have a list of vectors with dimensions greater than two(dimension can be 10, 32, 64 or 15) and an arbitrary vector as the input.



It is required to find from the list of vectors the closest to the input vector



(for example: 10000 and 10001 are close vectors, but 10111 and 10000 are not close vectors), but without complete passage through the list. I know several Nearest neighbor search algorithms that allow us to find the closest similar element: kd-trees, Voronoi diagram , but they are aimed at finding elements in a plane or in 3-dimensional space.



Are there any algorithms, which allow to find the nearest vector, which dimension greater then 2?










share|improve this question
























  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Samuel Liew
    Nov 10 at 20:37















up vote
-1
down vote

favorite












We have a list of vectors with dimensions greater than two(dimension can be 10, 32, 64 or 15) and an arbitrary vector as the input.



It is required to find from the list of vectors the closest to the input vector



(for example: 10000 and 10001 are close vectors, but 10111 and 10000 are not close vectors), but without complete passage through the list. I know several Nearest neighbor search algorithms that allow us to find the closest similar element: kd-trees, Voronoi diagram , but they are aimed at finding elements in a plane or in 3-dimensional space.



Are there any algorithms, which allow to find the nearest vector, which dimension greater then 2?










share|improve this question
























  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Samuel Liew
    Nov 10 at 20:37













up vote
-1
down vote

favorite









up vote
-1
down vote

favorite











We have a list of vectors with dimensions greater than two(dimension can be 10, 32, 64 or 15) and an arbitrary vector as the input.



It is required to find from the list of vectors the closest to the input vector



(for example: 10000 and 10001 are close vectors, but 10111 and 10000 are not close vectors), but without complete passage through the list. I know several Nearest neighbor search algorithms that allow us to find the closest similar element: kd-trees, Voronoi diagram , but they are aimed at finding elements in a plane or in 3-dimensional space.



Are there any algorithms, which allow to find the nearest vector, which dimension greater then 2?










share|improve this question















We have a list of vectors with dimensions greater than two(dimension can be 10, 32, 64 or 15) and an arbitrary vector as the input.



It is required to find from the list of vectors the closest to the input vector



(for example: 10000 and 10001 are close vectors, but 10111 and 10000 are not close vectors), but without complete passage through the list. I know several Nearest neighbor search algorithms that allow us to find the closest similar element: kd-trees, Voronoi diagram , but they are aimed at finding elements in a plane or in 3-dimensional space.



Are there any algorithms, which allow to find the nearest vector, which dimension greater then 2?







algorithm search






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 12 at 12:30









Joris Schellekens

5,95611141




5,95611141










asked Nov 10 at 9:51









cvxbcvbsd fsddfgdfg

82




82












  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Samuel Liew
    Nov 10 at 20:37


















  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Samuel Liew
    Nov 10 at 20:37
















Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew
Nov 10 at 20:37




Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew
Nov 10 at 20:37












1 Answer
1






active

oldest

votes

















up vote
0
down vote



accepted










Almost all index structures for nearest-neighbour search support multi-dimensional data.



For example KD-Trees and R-Trees are well suited for low dimensional data ( d < 5-10). When the number of dimensions increases you run into the curse of dimensionality and most index structures degenerate (they become less selective).



Beyond something like 20 dimensions (this is just a rule of thumb and highly data distribution dependent) these traditional index structures offer no benefit over a full scan over the data. Then you can either




  • try to optimize this scan (e.g., early stopping during distance calculation or VA-File)

  • use approximate nearest neighbour approaches (e.g., locality sensitive hashing) that are fast but do not guarantee to return the nearest neighbour (but usually a close one)






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53237791%2ffind-closest-vector%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote



    accepted










    Almost all index structures for nearest-neighbour search support multi-dimensional data.



    For example KD-Trees and R-Trees are well suited for low dimensional data ( d < 5-10). When the number of dimensions increases you run into the curse of dimensionality and most index structures degenerate (they become less selective).



    Beyond something like 20 dimensions (this is just a rule of thumb and highly data distribution dependent) these traditional index structures offer no benefit over a full scan over the data. Then you can either




    • try to optimize this scan (e.g., early stopping during distance calculation or VA-File)

    • use approximate nearest neighbour approaches (e.g., locality sensitive hashing) that are fast but do not guarantee to return the nearest neighbour (but usually a close one)






    share|improve this answer



























      up vote
      0
      down vote



      accepted










      Almost all index structures for nearest-neighbour search support multi-dimensional data.



      For example KD-Trees and R-Trees are well suited for low dimensional data ( d < 5-10). When the number of dimensions increases you run into the curse of dimensionality and most index structures degenerate (they become less selective).



      Beyond something like 20 dimensions (this is just a rule of thumb and highly data distribution dependent) these traditional index structures offer no benefit over a full scan over the data. Then you can either




      • try to optimize this scan (e.g., early stopping during distance calculation or VA-File)

      • use approximate nearest neighbour approaches (e.g., locality sensitive hashing) that are fast but do not guarantee to return the nearest neighbour (but usually a close one)






      share|improve this answer

























        up vote
        0
        down vote



        accepted







        up vote
        0
        down vote



        accepted






        Almost all index structures for nearest-neighbour search support multi-dimensional data.



        For example KD-Trees and R-Trees are well suited for low dimensional data ( d < 5-10). When the number of dimensions increases you run into the curse of dimensionality and most index structures degenerate (they become less selective).



        Beyond something like 20 dimensions (this is just a rule of thumb and highly data distribution dependent) these traditional index structures offer no benefit over a full scan over the data. Then you can either




        • try to optimize this scan (e.g., early stopping during distance calculation or VA-File)

        • use approximate nearest neighbour approaches (e.g., locality sensitive hashing) that are fast but do not guarantee to return the nearest neighbour (but usually a close one)






        share|improve this answer














        Almost all index structures for nearest-neighbour search support multi-dimensional data.



        For example KD-Trees and R-Trees are well suited for low dimensional data ( d < 5-10). When the number of dimensions increases you run into the curse of dimensionality and most index structures degenerate (they become less selective).



        Beyond something like 20 dimensions (this is just a rule of thumb and highly data distribution dependent) these traditional index structures offer no benefit over a full scan over the data. Then you can either




        • try to optimize this scan (e.g., early stopping during distance calculation or VA-File)

        • use approximate nearest neighbour approaches (e.g., locality sensitive hashing) that are fast but do not guarantee to return the nearest neighbour (but usually a close one)







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 14 at 7:24

























        answered Nov 12 at 12:57









        SaiBot

        1,761414




        1,761414






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53237791%2ffind-closest-vector%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Schultheiß

            Verwaltungsgliederung Dänemarks

            Liste der Kulturdenkmale in Wilsdruff