Why is Adleman's molecular algorithm for Hamiltonian Path linear?












5















In Adleman's 1994 paper (archived), he describes a method of manipulating DNA molecules in a lab that results in a solution to the Hamiltonian Path problem with high probability.



He claims that "The number of different oligonucleotides required should grow linearly with the number of edges", and this makes sense given the molecular encoding of the edges described in the paper, but he also claims that "the number of procedures required should grow linearly with the number of vertices in the graph".
Why is this last claim true? In other words, why isn't the assembly of edge molecules counted towards this calculation? If it were, the complexity of lab procedures would be $O(|V|^2)$, as the number of edges in a graph is bound by this function.



Thank you.










share|cite|improve this question





























    5















    In Adleman's 1994 paper (archived), he describes a method of manipulating DNA molecules in a lab that results in a solution to the Hamiltonian Path problem with high probability.



    He claims that "The number of different oligonucleotides required should grow linearly with the number of edges", and this makes sense given the molecular encoding of the edges described in the paper, but he also claims that "the number of procedures required should grow linearly with the number of vertices in the graph".
    Why is this last claim true? In other words, why isn't the assembly of edge molecules counted towards this calculation? If it were, the complexity of lab procedures would be $O(|V|^2)$, as the number of edges in a graph is bound by this function.



    Thank you.










    share|cite|improve this question



























      5












      5








      5


      1






      In Adleman's 1994 paper (archived), he describes a method of manipulating DNA molecules in a lab that results in a solution to the Hamiltonian Path problem with high probability.



      He claims that "The number of different oligonucleotides required should grow linearly with the number of edges", and this makes sense given the molecular encoding of the edges described in the paper, but he also claims that "the number of procedures required should grow linearly with the number of vertices in the graph".
      Why is this last claim true? In other words, why isn't the assembly of edge molecules counted towards this calculation? If it were, the complexity of lab procedures would be $O(|V|^2)$, as the number of edges in a graph is bound by this function.



      Thank you.










      share|cite|improve this question
















      In Adleman's 1994 paper (archived), he describes a method of manipulating DNA molecules in a lab that results in a solution to the Hamiltonian Path problem with high probability.



      He claims that "The number of different oligonucleotides required should grow linearly with the number of edges", and this makes sense given the molecular encoding of the edges described in the paper, but he also claims that "the number of procedures required should grow linearly with the number of vertices in the graph".
      Why is this last claim true? In other words, why isn't the assembly of edge molecules counted towards this calculation? If it were, the complexity of lab procedures would be $O(|V|^2)$, as the number of edges in a graph is bound by this function.



      Thank you.







      complexity-theory graphs hamiltonian-path






      share|cite|improve this question















      share|cite|improve this question













      share|cite|improve this question




      share|cite|improve this question








      edited Jan 1 at 7:39







      idoby

















      asked Jan 1 at 7:32









      idobyidoby

      1264




      1264






















          1 Answer
          1






          active

          oldest

          votes


















          2














          You are right that in the coding of the graph one needs a possibly quadratic number of strands to represent the edges.



          My guess is that Adleman likes to distinguish the two kinds of operations. First there is the coding of the input graph, which may be very complicated to avoid accidental combinations. Then there is the number of laboratory steps to actually check the presence of Hamiltonian paths.



          I think this might be explained by the way he envisions how molecular computing can be used. Given a big "database" of available strands one performs a number of laboratory steps to find the solution to a problem. This is then the same operation performed in parallel to zillions of molecules. This I read from the way how he explains the number of operations performed per second.






          share|cite|improve this answer
























          • So it's the same as not counting the time it takes to construct the input of a standard Turing machine? If you think about molecular computing as its own model rather than a form of reduction from classically given problems, it makes sense, I guess. I wonder how practical it will turn out to be.

            – idoby
            Jan 2 at 8:44











          • I do not think that people are advocating molecular computing to solve general computational problems. Instead Adleman showed a proof of concept. Now one searches for niche areas where computing with molecules can be efficiently applied. But is has also opened up our eyes for the question: what computational processes are happening in our body?

            – Hendrik Jan
            Jan 2 at 11:39











          Your Answer





          StackExchange.ifUsing("editor", function () {
          return StackExchange.using("mathjaxEditing", function () {
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
          });
          });
          }, "mathjax-editing");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "419"
          };
          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',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          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%2fcs.stackexchange.com%2fquestions%2f102235%2fwhy-is-adlemans-molecular-algorithm-for-hamiltonian-path-linear%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









          2














          You are right that in the coding of the graph one needs a possibly quadratic number of strands to represent the edges.



          My guess is that Adleman likes to distinguish the two kinds of operations. First there is the coding of the input graph, which may be very complicated to avoid accidental combinations. Then there is the number of laboratory steps to actually check the presence of Hamiltonian paths.



          I think this might be explained by the way he envisions how molecular computing can be used. Given a big "database" of available strands one performs a number of laboratory steps to find the solution to a problem. This is then the same operation performed in parallel to zillions of molecules. This I read from the way how he explains the number of operations performed per second.






          share|cite|improve this answer
























          • So it's the same as not counting the time it takes to construct the input of a standard Turing machine? If you think about molecular computing as its own model rather than a form of reduction from classically given problems, it makes sense, I guess. I wonder how practical it will turn out to be.

            – idoby
            Jan 2 at 8:44











          • I do not think that people are advocating molecular computing to solve general computational problems. Instead Adleman showed a proof of concept. Now one searches for niche areas where computing with molecules can be efficiently applied. But is has also opened up our eyes for the question: what computational processes are happening in our body?

            – Hendrik Jan
            Jan 2 at 11:39
















          2














          You are right that in the coding of the graph one needs a possibly quadratic number of strands to represent the edges.



          My guess is that Adleman likes to distinguish the two kinds of operations. First there is the coding of the input graph, which may be very complicated to avoid accidental combinations. Then there is the number of laboratory steps to actually check the presence of Hamiltonian paths.



          I think this might be explained by the way he envisions how molecular computing can be used. Given a big "database" of available strands one performs a number of laboratory steps to find the solution to a problem. This is then the same operation performed in parallel to zillions of molecules. This I read from the way how he explains the number of operations performed per second.






          share|cite|improve this answer
























          • So it's the same as not counting the time it takes to construct the input of a standard Turing machine? If you think about molecular computing as its own model rather than a form of reduction from classically given problems, it makes sense, I guess. I wonder how practical it will turn out to be.

            – idoby
            Jan 2 at 8:44











          • I do not think that people are advocating molecular computing to solve general computational problems. Instead Adleman showed a proof of concept. Now one searches for niche areas where computing with molecules can be efficiently applied. But is has also opened up our eyes for the question: what computational processes are happening in our body?

            – Hendrik Jan
            Jan 2 at 11:39














          2












          2








          2







          You are right that in the coding of the graph one needs a possibly quadratic number of strands to represent the edges.



          My guess is that Adleman likes to distinguish the two kinds of operations. First there is the coding of the input graph, which may be very complicated to avoid accidental combinations. Then there is the number of laboratory steps to actually check the presence of Hamiltonian paths.



          I think this might be explained by the way he envisions how molecular computing can be used. Given a big "database" of available strands one performs a number of laboratory steps to find the solution to a problem. This is then the same operation performed in parallel to zillions of molecules. This I read from the way how he explains the number of operations performed per second.






          share|cite|improve this answer













          You are right that in the coding of the graph one needs a possibly quadratic number of strands to represent the edges.



          My guess is that Adleman likes to distinguish the two kinds of operations. First there is the coding of the input graph, which may be very complicated to avoid accidental combinations. Then there is the number of laboratory steps to actually check the presence of Hamiltonian paths.



          I think this might be explained by the way he envisions how molecular computing can be used. Given a big "database" of available strands one performs a number of laboratory steps to find the solution to a problem. This is then the same operation performed in parallel to zillions of molecules. This I read from the way how he explains the number of operations performed per second.







          share|cite|improve this answer












          share|cite|improve this answer



          share|cite|improve this answer










          answered Jan 1 at 11:32









          Hendrik JanHendrik Jan

          20.8k2565




          20.8k2565













          • So it's the same as not counting the time it takes to construct the input of a standard Turing machine? If you think about molecular computing as its own model rather than a form of reduction from classically given problems, it makes sense, I guess. I wonder how practical it will turn out to be.

            – idoby
            Jan 2 at 8:44











          • I do not think that people are advocating molecular computing to solve general computational problems. Instead Adleman showed a proof of concept. Now one searches for niche areas where computing with molecules can be efficiently applied. But is has also opened up our eyes for the question: what computational processes are happening in our body?

            – Hendrik Jan
            Jan 2 at 11:39



















          • So it's the same as not counting the time it takes to construct the input of a standard Turing machine? If you think about molecular computing as its own model rather than a form of reduction from classically given problems, it makes sense, I guess. I wonder how practical it will turn out to be.

            – idoby
            Jan 2 at 8:44











          • I do not think that people are advocating molecular computing to solve general computational problems. Instead Adleman showed a proof of concept. Now one searches for niche areas where computing with molecules can be efficiently applied. But is has also opened up our eyes for the question: what computational processes are happening in our body?

            – Hendrik Jan
            Jan 2 at 11:39

















          So it's the same as not counting the time it takes to construct the input of a standard Turing machine? If you think about molecular computing as its own model rather than a form of reduction from classically given problems, it makes sense, I guess. I wonder how practical it will turn out to be.

          – idoby
          Jan 2 at 8:44





          So it's the same as not counting the time it takes to construct the input of a standard Turing machine? If you think about molecular computing as its own model rather than a form of reduction from classically given problems, it makes sense, I guess. I wonder how practical it will turn out to be.

          – idoby
          Jan 2 at 8:44













          I do not think that people are advocating molecular computing to solve general computational problems. Instead Adleman showed a proof of concept. Now one searches for niche areas where computing with molecules can be efficiently applied. But is has also opened up our eyes for the question: what computational processes are happening in our body?

          – Hendrik Jan
          Jan 2 at 11:39





          I do not think that people are advocating molecular computing to solve general computational problems. Instead Adleman showed a proof of concept. Now one searches for niche areas where computing with molecules can be efficiently applied. But is has also opened up our eyes for the question: what computational processes are happening in our body?

          – Hendrik Jan
          Jan 2 at 11:39


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Computer Science Stack Exchange!


          • 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.


          Use MathJax to format equations. MathJax reference.


          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%2fcs.stackexchange.com%2fquestions%2f102235%2fwhy-is-adlemans-molecular-algorithm-for-hamiltonian-path-linear%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

          MongoDB - Not Authorized To Execute Command

          How to fix TextFormField cause rebuild widget in Flutter

          in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith