From this revision: http://en.wikipedia.org/w/index.php?title=Inchrosil&oldid=522968385
Inorganic Chromosome based in Silicon (InChroSil) <ref name="Hirsch">Template:Cite news</ref><ref name="Ministry of justice Israel 2009">Template:Cite journal</ref><ref name="NanoSapin.org 2009 168">Template:Cite journal</ref><ref name="Javier Carazo">Template:Cite news</ref><ref name="CDTI - Centro de desarrollo tecnologico e innovación 2009 60">Template:Cite journal</ref><ref name="University of Granada 2008">Template:Cite journal</ref><ref name="ANTONIO GONZÁLEZ">Template:Cite news</ref><ref name="Generalitat Valenciana 2008 143">Template:Cite book</ref><ref name="de las heras">Template:Cite news</ref><ref name="Sanchis">Template:Cite news</ref><ref name="belt.es">Template:Cite news</ref> is an electronic device, which has the same organization and structure of organic DNA (double helix),<ref>Template:Cite journal</ref> except for the chemical reactions.<ref>Template:Cite book</ref> This device was developed using the standard technology Complementary metal–oxide–semiconductor (CMOS)<ref>Template:Cite book</ref> and will be made in the nanometric scale, being the first inorganic DNA based on silicon.
InChroSil and its systems were invented and patented in 2006 by two brothers and one Sister (Silvia, Carlos and Jose Daniel Llopis Llopis) in your house and few economics resources. The first prototype was a single nucleotide pair and had a size of a sheet of paper. Today, it has developed and improved the integrated circuit.<ref>Template:Cite web</ref><ref>Template:Cite book</ref> This configuration is now commonly referred to as a hybrid integrated circuit.<ref>Template:Cite book</ref><ref>Template:Cite book</ref><ref>Template:Cite book</ref> Integrated circuit has since come to refer to the single-piece circuit construction originally known as a monolithic integrated circuit and can save billions of nucleotides and with a space-saving storage of 88 percent compared to the current genetic storage systems.
Currently prototypes are being built in the clean room of Microsystems Technology Laboratories MTL of Massachusetts Institute of Technology MIT and staff Threellop Nanotechnology Inc (owner of industrial property (patent)).
InChroSil<ref name="Silvia, Carlos y Jose Daniel">Template:Cite web</ref> allow us to store in less space, more genetic information (saving 88 percent). Current systems have a problem with the amount of information storage that organizations and institutions require. I.e. the human genome has approximately 3,000 million pairs of nucleotides,<ref>Template:Cite book</ref><ref name=Alberts>Template:Cite book</ref><ref name=Butler>Template:Cite book pp. 14–15.</ref> and is divided into 23 chromosomes.<ref>Template:Cite journal</ref> This information is too big for available systems, so currently only the principal chain is stored, meaning that holes within the DNA are not represented. InChroSil, offers less space and more information, with higher performance. It can store the entire structure of the DNA (principal and secondary chains), meaning InChroSil can store and represent even incomplete chains including the existent holes within the DNA chain.
This device uses non‐volatile digital memory, less storage space, is portable and allows for rewriting. It is also able to store non‐genetic information in the nucleotides (the basic elements of the DNA strand). The nucleotides can be used to represent genetic information, text, files, or even pictures in a more compact manner and with a wide range of device, hardware and software compatibility.
In Figure 1, we can see minimum storage unit in inchrosil system. This unit consist in four electronic components connect in parallel and they emulate one structure of DNA chain by means of electronic components, for this reason, Its principal function is to storage of one nucleotide pair of DNA chain. The general storage system consist in a large number of this minimum units to create one bank or memories of DNA chain.
The storage unit has been called Mem-InChroSil <ref name="Hirsch"/><ref name="Ministry of justice Israel 2009"/><ref name="NanoSapin.org 2009 168"/><ref name="Javier Carazo"/><ref name="CDTI - Centro de desarrollo tecnologico e innovación 2009 60"/><ref name="University of Granada 2008"/><ref name="ANTONIO GONZÁLEZ"/><ref name="Generalitat Valenciana 2008 143"/><ref name="de las heras"/><ref name="Sanchis"/><ref name="belt.es"/><ref name="Silvia, Carlos y Jose Daniel"/> (Memory INorganic CHROmosome based in SILicon). Mem-Inchrosil may use volatile and non-volatile memories technologies.<ref>Template:Cite book</ref><ref>Template:Cite book</ref> The version in volatile memory implemented has been called Inchrosil Access Memory (IAM). This type of memory, In addition to having the characteristic of being volatile, has the property of structured access; in this way we access a nucleotide, by the previous localization of the strand, to later designate the nucleotide. This volatile memory permits the writing and reading of the information stored in it. This memory is volatile, i.e. If it Is disconnected from the electrical energy, the information is lost.For this reason, this type of temporary memory is usually used to store intermediate results or data which are not permanent.
The access designed for these type of memory (volatile and non-volatile) is structured, i.e. if we want to obtain data of this memory, the functionality is the following: an artificial inorganic DNA chain by silicon (or also called InChroSil) of the memory is chosen. Once the inorganic DNA chain has been determined, the strand Is chosen which contains the information we are looking for, and it should be indicated that the inorganic DNA chains that have been developed for the memories are composed of two strands, as with their organic homologues. With these two localized premises, the following point is to determine what nucleotide or group of nucleotides we want to access, although the case may also arise when the user wants to access, at the same time, one part or the whole inorganic DNA chain, which has previously been localized. With this three-dimensional system that we have implemented for a volatile and non-volatile memory system, the basic technology explained in previous paragraph (InChroSil) has been used, which can easily be integrated in the existing technology, for the manufacturing of volatile and non-volatile memories. For this reason,these memories can be integrated in the current systems or devices which require memory, for the simple reason that they can be manufactured with semiconductors and integrated in a circuit <ref>Template:Cite book</ref><ref>Template:Cite book</ref><ref>Template:Cite book</ref> by micro-technology <ref>Template:Cite book</ref>] or nano-technology.<ref>Template:Cite book</ref>
In InChroSil also provides for the encoding of a numeration system at base 4 using the different nucleotides of DNA chain, like A, C, G and T. This system is called Cod-Inchrosil <ref name="Hirsch"/><ref name="Ministry of justice Israel 2009"/><ref name="NanoSapin.org 2009 168"/><ref name="Javier Carazo"/><ref name="CDTI - Centro de desarrollo tecnologico e innovación 2009 60"/><ref name="University of Granada 2008"/><ref name="ANTONIO GONZÁLEZ"/><ref name="Generalitat Valenciana 2008 143"/><ref name="de las heras"/><ref name="Sanchis"/><ref name="belt.es"/> (CODification -Inorganic CHROmosome based in Silicon). With this system is possible to codify any number (integer or decimal) in DNA chains and to store any information (genetic or no) in Inchrosil memories. In Figure 2 you can see convertion table from cod-inchrosil to differents numerical systems, i.e, A is 0 in decimal, G is 1 in decimal, C is 2 in decimal and T is 3 in decimal.
In the process of codification uses fundamental theorem of the numeration (you can see Numeral system) where the figures of the number can have two values, on the one hand the intrinsic as figure and other the position of figure, in this way the change equation is determined as follows:
- n0(xn−1 ... x3x2x1x0)b = xn−1bn−1 + ... + x2b2 + x1b1 + x0b0
For example, we have the following number encoded in Cod-InChroSil AGAGTGGT4, the decimal numeral is the following:
- AGAGTGGT4 = A·47 + G·46 + A·45 + G·44 + T·43 + G·42 + G·41 + T·40 = 0·47 +1·46+ 0·45 + 1·44 + 3·43+ 1·42 + 1·41 + 3·40 = 456710
The inverse operation of a decimal numeral to a Cod-InChroSil encoding. Supposing the decimal number to be 18910, the Cod-lnChroSil number is as follows:
# 189 div 4 = 47 → minus(189,4) = 1 → G # 47 div 4 = 11 → minus(47,4) = 3 → T # 11 div 4 = 2 → minus(11,4) = 3 → T # 2 div 4 = 0 → minus(2,4) = 2 → C 18910 = CTTG4
Examples are shown; let us suppose we have number 873.87510 and we want to change to Cod-InChroSil, the mechanics is as follows:
- The integer part is calculated as TGCCG.
- 0.875 x 4 = 3.5, the integer part is 3 so is T.
- 0.5 x 4 = 2, the integer part is 2 so is C.
- Finally, the decimal part is zero, so the end number is TGCCG,TC4
In cod-inchrosil is possible to do mathematical operations with DNA chain like addition, subtraction, multiplication and division. In concrete with addition is defined as mathematical operation with two numbers in cod-inchrosil codification. In Figure 3 gives the guidelines for the addition of two nucleotides. On the other hand, as in decimal addition, it's possible carry caused by overflow between two nucleotides. For example, we will consider to add two numbers ATCGATA (number 1) is 3660 in decimal and TAGCCAA (number 2) is 12704 in decimal, in this case no carry is produced and the result to add number 1 and number 2 is:
- ATCGATA + TAGCCAA = TTTTCTA (not count of carry)
In this other example we have the following numbers ATCGATA (3660 in decimal) and ATCTTTC (3838 in decimal), in this case carries do occur. the result to add both numbers is:
- ATCGATA + ATCTTTC = GTGGACC (7498 in decirnal), also it has count of carry → GGGGG
Next operation is defined is subtraction in Cod-InChroSil. This operation is opposite to addition, we can see in figure 4 the guidelines to subtraction two nucleotides. As is observed in figure 4, the carry caused on subtracting two nucleotides has been taken into consideration, for that motive and as was done with the addition operation, in the same cell of the table (see figure 4), two symbols are written, the first makes reference to the overflow or carry and the second makes reference to the result. In Figure 5 we can see an example between two numbers. Other way to do a subtraction between two number is convert the second number in complementary form and later to add both numbers. For example, if it has number TGCG (217 in decimal) and we want to subtract it with number CCCT (171 in decimal), the decimal subtraction gives us the following result; 46 (ACTC). The following steps are applied in this numeration system:
- The first operand is not modified (TGCG)
- The complement of the second operand is taken, i.e. A is transformed into T and vice-versa and, C is transformed into G and vice-versa, in this case in particular it is GGGA.
- G is added to the number resulting from point 2 (GGGG). The first operand and the number of point 3 is added.
- The maximum number of nucleotides from the two operands is chosen and this will be the result of the operation, in this example it is ACTC.
The following operation defined is multiplication. The multiplication or product is defined as an arithmetic op¬≠eration where successive additions are performed. As with previous operations, guidelines are given for multiplication at a nucleotide level, these products are observed in figure 6 and one example in figure 7.
Finally, we still have to define the arithmetic operation of division. Division is performed the same (it has the same mechanism) as in the decimal case, but unlike that of the decimal, subtractions and multiplications are performed by subtraction and multiplication operations respectively, which have been defined in this document. For example, let us suppose the following numbers in Cod-InchroSil; dividing it is AGAACGA (in decimal it is 1060), whilst the divider is TGA (in decimal itis 52). After performing the operation, the quotient of the division is 20 in decimal (GGA in Cod-InchroSil) and, the subtraction, it is also 20 in decimal (GGA Cod-InchroSil), in this way, AGAACGA = TGA x GCA + GCA (dividing=divider x quotient + subtraction).
On the other hand, in that system is possible to represent decimal numbers in single or double precision, but for these format don't take bits if not nucleotides, for this reason, in figure 8 shows the different sections in which the single-precision floating point format with 20 nucleotides is divided. With the previous format, exponents can be achieved with the following ranges of values, which are presented in the following enumeration.
- Fixed point with sign, if x is the exponent then x ∈ [−127, 0] ∪ [0, +127]
- Complement A1, if x is the exponent then x ∈ [−127, 0] ∪ [0, +127]
- Complement A2, if x is the exponent then x ∈ [−128, 0] ∪ [0, +128)
- Excess 44, if x is the exponent then x ∈ [−128, 0] ∪ [0, +128)
Figure 9 shows the different encodings that the exponent can take on, The different relations thereof can also be observed in different encoding systems, in addition to the double strand characteristic which can be used according to the operations or purpose agreed.
On the other hand, the mantissa is taken to be composed of 11 nucleotides, in this way the ranges that canbe obtained with the following codifications are the following:
- Fixed point without sign, If m Is the mantissa then m ∈ [−411, 0] ∪ [0, 411]
- Complement A1, If m is the mantissa then m ∈ [−411-1, 0] ∪ [0, 411-1]
- Complement A2, If m is the mantissa then m ∈ [−411, 0] ∪ [0, 411)
- Excess 411. If m is the mantissa then m ∈ [−411, 0] ∪ [0, 411)
Overall, numbers can be achieved with this single-precision floating point representation format which are included in the following number range [−17592186044416 − 10127, 0] ∪ [0, 17592186044416 ¬∑ 10127], We will complete the explanation of the single-precision format with an example which has already been used for the IEEE 745 format. Remembering that the number was −118,62510 and its encoding in IEEE 745 of single precision is 11000010111011010100000000000000, a 32-bit binary number. Therefore, using our single-precision floating point system of the invention, we get the following encoding.
Strand 1: TAT CAGG AAAGCCCAAAAAA
Strand 2: A TA GTCC TT TCGGGTTTTTT
As can be observed, the first number is negative, for that reason the first nucleotide has been encoded as T, the following nucleotides indicate that the exponent is represented in strand 1 and its encoding is excess 128. With respect to the mantissa, it is represented with fixed point without sign and it corresponds to strand 1. The following floating point representation format is double precision, which used 40 nucleotides or two strands of 20 nucleotides, The double-precision representation format is the same as that for single, with the exception that the number of nucleotides is increased in the exponent and mantissa sections. Figure 10 graphically shows the double¬≠ precision representation format for 40 nucleotides.
The range of values which the exponent may allow would be defined by the following enumeration.
- Fixed point with sign, lf x is the exponent then x ∈ [−47-1, 0] ∪ [0, 47 − 1]
- Complement A1, If x is the exponent then x ∈ [−47 − 1, 0] ∪ [0, 47 − 1]
- Complement A2, If x is the exponent then x ∈ [−47, 0] ∪ [0, 47)
- Excess 47, If x is the exponent then x ∈ [−47, 0] ∪ [0, 47)
For the case of the mantissa, the range of values that can be represented in this double-precision floating point format are those shown in the following enumeration.
- Fixed point without sign, If m is the mantissa then m ∈ [−428_1 , 0] ∪ [0, 428-1]
- Complement A1, If m is the mantissa then m ∈ [−428_1, 0] ∪ [0, 428-1]
- Complement A2, If m is the mantissa then m ∈ [−428, 0] ∪ [0, 428)
- Excess 428, If m is the mantissa then m ∈ [−428, 0] ∪ [0, 428)
By making different combinations between the exponent and the mantissa, it is possible to obtain numbers with this double-precision floating point format which would be included In this numerical range ‚àà [−72057594037927936·1065536, 0] ∪ [0, 72057594037927936·1065536].
Resolving the Hamiltonian path problem by Inchrosil
Current computing systems are based on a sequential technology established by John Von Neumann in the middle of the last century. These sequential computers are good at resolving mathematical problems, but they have difficulties with so-called turnkey problems, where all possible solutions have to be sought until the right solution is found. This means that the computing time of the problems becomes exponential or of logarithmic order. Attempts have been made to mitigate these problems with the construction of parallel computers which can reduce the computing time. These solutions consume many resources in communications and number of interconnected nodes. For that reason, in the middle of 1994, Professor Leonard Adleman presented a new alternative for programming with organic DNA, this organic system has a massive parallelism In the performance of operations and, therefore, obtaining the final results, but with the aforementioned limitations. He designed a system to resolve the Hamiltonian path problem with programming with organic DNA and, therefore, demonstrated that NP-Complete problems could be resolved in a computational time close to the polynomial. From this time on, a whole new programming philosophy arose with this organic material, which was called computing with DNA (DNA Computing) or molecular programming. But, throughout the years, and due to the material's characteristics, which is mainly perishable, the different experiments to transfer organic technology to the business world were unfruitful.
The traveling salesman problem (TSP) or hamiltonian path problem is one of the most famous and best studied in the field of computational optimization. Despite the apparent simplicity of its approach, the problem is one of the most difficult to resolve, since it is considered NP-Complete complexity when it has a large number cities. In 1994, Professor Leonard Adleman created a system to solve this problem by means of organic DNA, he obtained final results in order polinomial. Principal objetive of Inchrosil was to solve this problem with electronic compoments based in silicon and it would obtain final results in order polinomial. The advantage that inorganic DNA has compared with sequential technologies is the great parallelism in the embodiment of the operations, for that reason is affordable to solve Hamiltonian Problem with amount of cities. On the other hand, Hamilton's problem can represented by a Graph (mathematics), where each node is a city and each edge or line is a way to connect one node with other node, in Figure 11 show a graph for 7 cities, also, these cities are called from 0 to 6.
This problem is of great difficulty for deterministic problems with polynomial order, since it is a NP-Complete problem, but a non-deterministic algorithm can be formulated for the solution of this problem. The non-deterministic algorithm is presented in the following lines:
inputs: Graph, Vin and Vout
- All paths existing in the graph are generated randomly. All the paths that comply with the inputs are eliminated.
- All those paths which do not have the required vertices are also eliminated.
- For each vertex, the paths are rejected which do not include the actual vertex.
Outputs: YES (If paths exist) NO (otherwise)
Therefore, in a conventional computer, the computing time cannot be polynomial, since it is necessary to compare all the cities one by one to find the path from an initial city Vin to a final city Vout. The first step is encoding the graph of Figure 11 in Cod-InChroSil and it was established that each city (vertex or node) had a determined number of nucleotides, for example, 20 nucleotides, and that the edges are composed of the same number, 20 nucleotides, which correspond to the last 10 nucleotides of a vertex or source city and the initial 10 nucleotides of the vertex or destination city. Therefore, using the InChroSil technology, a strand is created in which all edges represented in said graph will be housed. therefore, to give versatility to the experiment, said strand would offer the possibility, that in the worst of the cases compares a complete graph and and, in the best of the cases, for example, the graph shown In figure 11.
This permits the programmer of the electronic circuit who performs the encoding to choose as many edges as he wants within the range established by the actual graph, i.e. for the graph of the example, there would be a strand of 5040 pairs of nucleotides (factorial of 7 if we consider 7 cities), so that the programmer would only require the activation of the complementary part of the strand in the edges necessary for the graph to analyse.
In this case, complementarity would only be required with the parts of the strand that corresponded to the states which have an edge of the graph of figure 11. , On the other hand, when encoding the graph of figure 11, it is called 'G' (Graph) and can be seen in figure 12, wherein AO, A1.........represent the edges of the graph it links to the states (Ei), and wherein EO, E1......are the states of the cities of the problem posed.
Figure 13 graphically shows how the states are connected by edges and figure 14 details this encoding using cod-inchrosil. In figure 13, a state is formed by 20 nucleotides and an edge is composed of the final 10 nucleotides of one state and the initial 10 nucleotides of the following state.
The following step consists of being able to arrange all the possible existing Hamiltonian paths in a graph (Figure 11) of 7 complete vertices, which meant a set of 5040 chains of DNA was created; of course with the InChroSil technology these strands will be composed of 140 pairs of nucleotides (since there are 7 vertices and each one of them must be represented by 20 pairs of nucleotides, a strand length would be required of 7 by 20). These strands were disposed in matrix form because it was more convenient to be able to approach a three-dimensional chip, and continue In the line of being able to emulate the organic nature. This encoding, as with the example graph, was called 'CG' (Set of Graphs). Set theory is especially used to delimit the scope of a proposal, which forces the object of the proposal to remain in a certain measure concretized. This is desirable as it permits operating with the formed proposal, at the beginning at least a level of true of false, and at maximum, depending on how the parameterization of the established proposals corresponds, i.e. a set S is defined if, given any object "a", it is known with certainty whether It belongs to the set or not.
Therefore, this theory applied to this experiment permits comparing each edge of 'CG' of a set of strands, which represent all possible combinations of the states with each edge specified in graph 'G', totally parallel and determining, in this way, if said edge of graph 'CG' belongs or not to the set of edges encoded in graph 'G', therefore, the edges of graph 'G' become sets and, in turn, the edges of graph 'CG' become objects of which it should be known with certainty if they belong or not to the set stated by the programmer, i.e. to graph 'G', since 'CG' are templates of possible solutions, To be able to perform these comparisons, the philosophy of logical half-adders, carry save adders (CSA) and Wallace trees was used. These technologies simply acknowledged in the field of computer structures, offer the possibility of creating modifications in the designs to obtain the parallelism required by the problem and in this obtain the desired results. On the other hand, as observed in figure 15, the internal structure of a standard logical half-adder can be seen A modification which is present in this article is the elimination of the carry, only leaving the direct addition of the two inputs, if we take into consideration the truth table of a XOR gate, it can be observed that if the two bits are the same the logical result is 0, for which reason this project chooses to reject said output, in this way, direct and not inverse logic would be worked wit.
Due to this approach, comparers are developed by XNOR gate ports to resolve the problem. On the other hand, the fact of joining together 40 XNOR ports (since the edges are of 20 pairs of nucleotides, this entails 40 bits per edge and, therefore, 80 inputs, since it will be compared two by two), arose from the idea of being able to create CSA (carry-save adder, which permits performing additions obtaining as a result the addition of data and the carry), i.e. the linking of XNOR ports giving a unique result of 40 bits.
But these ports offered a 40 bit result, which was not optimum, for which reason the following questions were posed: Are all the bits the same? Are they the same edge?, for this a 40 Input AND port and 1 single response bit was used, obtaining in a single datum the response to our questions. Since if this AND port, gives a '1' as logical result, this would mean that the edges are the same and, therefore, said edge belongs to graph 'CG', and therefore, it would belong to the set of edges belonging to graph 'G'. In contrast, if the value is '0', it would mean that the mentioned edges are not the same, but they do not guarantee that they do not belong to the programmed set, which was a datum to resolve. Therefore, an encapsulation of the circuit was created the same as the CSAs, creating in this way the comparer shown in figure 16. To be able to resolve this problem, the comparers are established creating a matrix and comparing the edges, two by two, of both graphs ('G' and 'CG') in parallel form. But, a new question arises, How to establish if this is path or not?, to be able to respond to this question they considered the already known Wallace trees, although their structure or operating philosophy was not used, which is creating different levels of requirement to be able to find the result required in a totally parallel form.
Therefore, it was considered that If it was required that each comparer in columns of said matrix of comparers, its equal result was directed towards an OR gate, so that if any of the comparers responded to logical '1', said logical port corresponding to the column, would confirm in parallel the belonging of said edge to the set of programmed edges. In this way, said levels of the Wallace trees are created.
Finally, all these OR logical ports, which in this case are as many as columns or edges existing In the InChroSil DNA strands, belonging to graph 'CG', i.e. OR logical ports. In this way, if all the edges confirm the belonging to the set, they represent a Hamiltonian path, this is achieved by directing all the outputs towards an AND logical port, in this way the response desired is definitively obtained, thus the final level of requirements is created.
Also, the result of the AND gate is stored in a non-represented results vector, so that this vector would have 5040, i.e. as many as strands of InChroSil, have been encoded, for which reason the positions wherein a logical '1' is reflected, would reflect that the strand encoded in said position of the vector is a Hamiltonian path of the graph presented, in figure 17 we can see the complete circuit.
With this technology is possible to solve hamilton's problem with weight by means of Cod-Inchrosil's operations, Eulerian path, cycles and in general all problem can convert in a graph.
Uses to Inchrosil
Inchrosil is used mostly for mass storage sequences DNA, with their uses:
- Fingerprinting staff, with the storage of the genetic fingerprint. His invention is Dr. Alec Jeffreys at the University of Leicester in 1984.<ref>Jeffreys A.J., Wilson V., Thein S.W. (1984). "Hypervariable 'minisatellite' regions in human DNA". Nature 314: 67–73. Template:Doi.</ref>
- Genetic studies, with the tool where large sequences would be stored, which could be compared and manipulated digitally.
- Genebanks, which store large amounts of genetic information.
- Classification of species and animals.
- Tool medical studies (genetic).
- Patent (WO/2009/022024) ELECTRONIC SYSTEM FOR EMULATING THE CHAIN OF THE DNA STRUCTURE OF A CHROMOSOME
- European Patent (EP2180434A1) ELECTRONIC SYSTEM FOR EMULATING THE CHAIN OF THE DNA STRUCTURE OF A CHROMOSOME
- US Patent (US2010/0268520) ELECTRONIC SYSTEM FOR EMULATING THE CHAIN OF THE DNA STRUCTURE OF A CHROMOSOME
- Ya es posible almacenar de forma masiva, LA RAZON spanish newspaper
- Tarjetas de ADN para identificar soldados, El PUBLICO spanish newspaper
- MTL's website
- MIT's website
- Hamiltonian Problem (English)
- Rubin, Frank, "A Search Procedure for Hamilton Paths and Circuits'". Journal of the ACM, Volume 21, Issue 4. October 1974. ISSN 0004-5411
- M. R. Garey, D. S. Johnson, and L. Stockmeyer. Some simplified NP-complete problems. Proceedings of the sixth annual ACM symposium on Theory of computing, p. 47–63. 1974.es:Cromosoma inorgánico basado en silicio