Saturday, January 25, 2020

Implementation Of Clustering Algorithm K Mean K Medoid Computer Science Essay

Implementation Of Clustering Algorithm K Mean K Medoid Computer Science Essay Data Mining is a fairly recent and contemporary topic in computing. However, Data Mining applies many older computational techniques from statistics, machine learning and pattern recognition. This paper explores two most popular clustering techniques are the k-means k-medoids clustering algorithm. However, k-means algorithm is cluster or to group your objects based on attributes into K number of group and  k-medoids  is a  related to the  K-means  algorithm. These algorithms are based on the k partition algorithms and both attempt to minimize  squared error. In contrast to the K-means algorithm K-medoids chooses data points as centres. The algorithms have been developed in Java, for integration with Weka Machine Learning Software. The algorithms have been run with two dataset Facial palsy and Stemming. It is having been shown that the algorithm is generally faster and more accurate than other clustering algorithms. Data Mining derives its name from the similarities between searching for valuable business information in a large database (for example, finding linked products in gigabytes of store scanner data) and mining a mountain for a vein of valuable ore.[1] Both process requires either sifting through an immense amount of material. Or intelligently probing it to find exactly where the value resides. Data Mining Data mining is also known as knowledge mining. Before it was named DATA MINING, it was called data collection, data warehousing or data access. Data mining tools predicts the behaviours of the models that are loaded in the data mining tools (like Weka) for analysis, allowing making predicted analysis, of the model. Data mining provides hands-on and practical information. Data mining is the most powerful tool available now. Data mining can be used for modelling in fields such as artificial intelligence, and neural network. What does it do? Data mining take the data which exists in unrelated patterns and designs, and uses this data to predict information which can be compared in terms of statistical and graphical results. Data mining distil / filters the information from the data that is inputted and final model is generated. Clustering What is cluster analysis? Unlike classification and prediction, which analyse class-labeled data objects, clustering analyses data objects without consulting a known class label. A 2-D plot of customer data with respect to customer locations in a city, showing three data clusters. Each cluster center is marked with a +.[6] Clustering is the technique by which like objects are grouped together. The objects are clustered or grouped based on the principle of maximizing the intra class similarity and minimizing the interclass similarity. i.e. clusters of the objects are made so that the clusters have resemblance in comparison to one another, but are very divergent to objects in other clusters. Each cluster that is made can be viewed as a class of objects, from which rules can be derived. [6] Problem overview The problem at hand is able to correctly cluster a facial palsy dataset which is given by our lecturer. This section will provide an overview of dataset being analysed, and description about dataset that we use in this implementation. Data Set 1.3.1.1 Facial_Palsy_svmlight_format Facial Palsy data is for binary classification. +1 severe facial palsy faces -1 Non-severe or normal faces 66 Principal components generated from 5050 Hamming distance images 1.3.1.2 A6_df2_stemming__svm: Attributes: 100 A6_df2_stemming__svm_100.dat +1 Open question -1 Closed question Section 2 Methodology This section will firstly discuss the methodology behind K-means k-medoids algorithm. It is than followed by steps to implement k-means and k medoids algorithms. How many input, output and what are the steps to perform k-means and k-medoids. 2.1 K-mean K-means clustering starts with a single cluster in the centre, as the mean of the data. Here after the cluster is split into 2 clusters and the mean of the new cluster are iteratively trained. Again these clusters are split and the process goes on until the specified numbers of the cluster are obtained. If the specified number of cluster is not a power of two, then the nearest power of two above the number specified is selected and then the least important clusters are removed and the remaining clusters are again iteratively trained to get the final clusters. If the user specifies the random start, random cluster is generated by the algorithm, and it goes ahead by fitting the data points into these clusters. This process is repeated many times in loops, for as many random numbers the user chooses or specifies and the best value is found at the end. The output values are displayed. The drawbacks of the clustering method are that, the measurement of the errors or the uncertainty is ignored associated with the data. Algorithm: The k-means algorithm for partitioning, where each clusters centre is represented by the mean value of the objects in the cluster. Input: k: the number of clusters, D: a data set containing n objects. Output: A set of k clusters. Method: (1) Arbitrarily choose k objects from D as the initial cluster centers; (2) Repeat (3) reassign each object to the cluster to which the object is the most similar, based on the mean value of the objects in the cluster; (4) Update the cluster means, i.e., calculate the mean value of the objects for each cluster; (5) Until no change; Where E is the sum of the square error for all objects in the data set; p is the point in space representing a given object; and mi is the mean of cluster Ci (both p and mi are multidimensional). In other words, for each object in each cluster, the distance from the object to its cluster center is squared, and the distances are summed. This criterion tries to make the resulting k clusters as compact and as separate as possible.[2] Clustering of a set of objects based on the k-means method. (The mean of each cluster is marked by a +.) 2.2 K- Medoids This report recommends a new algorithm for K-medoids, which runs like the K-means algorithm. The algorithm proposed scans and calculates distance matrix, and use it for finding new medoids at every constant and repetitive step. The evaluation is based on real and artificial data and is compared with the results of the other algorithms. Here we are discussing the approach on k- medoids clustering, using the k-medoids algorithm. The algorithm is to be implemented on the dataset which consist of uncertain data. K-medoids are implemented because they to represent the centrally located objects called medoids in a cluster. Here the k-medoids algorithm is used to find the representative objects called the  medoids  in the dataset. Algorithm: k-medoids. PAM, a k-medoids algorithm for partitioning based on medoids or central objects. Input: k: the number of clusters, D: a data set containing n objects. Output: A set of k clusters. Method: (1) Arbitrarily choose k objects in D as the initial representative objects or seeds; (2) Repeat (3) Assign each remaining object to the cluster with the nearest representative object; (4) Randomly select a no representative object, o random; (5) Compute the total cost, S, of swapping representative object, oj, with o random; (6) If S (7) Until no change; Where E is the sum of the absolute error for all objects in the data set; p is the point in space representing a given object in cluster Cj; and oj is the representative object of Cj. In general, the algorithm iterates until, eventually, each representative object is actually the medoids, or most centrally located object, of its cluster. This is the basis of the k-medoids method for grouping n objects into k clusters.[6] 2.3 Distance Matrix An important step in most clustering is to select a  distance measure, which will determine how the  similarity  of two elements is calculated. Common distance metrics: Euclidean Manhattan Minkowski Hamming etcà ¢Ã¢â€š ¬Ã‚ ¦ Here in our implementation we choose two distance matrix that you can see below with description. 2.3.1 Euclidean Distance Metric The  Euclidean distance  between points  p  and  q  is the length of the  line segment. In  Cartesian coordinates, if  p  =  (p1,  p2  pn) and q  =  (q1,  q2  qn) are two points in  Euclidean  n-space, then the distance from  p  to  q  is given by: 2.3.2 Manhattan Distance Metric The Manhattan (or taxicab) distance,  d1, between two vectors  in an n-dimensional  real  vector space  with fixed  Cartesian coordinate system, is the sum of the lengths of the projections of the  line segment  between the points onto the  coordinate axes. Section 3 Discussion In this section we are discussing about how Weka Machine learning work and how we implemented both k-means and k medoids algorithm. To implement these two algorithms we use Java and we are explaining how we implemented in java which function we use in order to implement these two algorithms. 3.1 Weka Machine Learning Weka is a machine learning software made using Java and many other languages. Weka has a collection of tools that are used to analyse the data that the user inputs in the form of dataset files. Weka supports more than four different input data formats. Weka uses an interactive GUI interface, which is easy for the user to use.  Ã‚  Weka provides the functionality for testing and visual aid options that can be used by the user to compare and sort the results. 3.2 Implementation In this section, we discuss about implementation of 2 clustering algorithms: K-Means and K-Medoids. Here, we use Object Oriented Programming to implement these 2 algorithms. The structure of program as below: There are 3 packages: K-Mean, K-Medoid, main. Files in K-Mean package: Centroid.java Cluster.java KMean_Algorithm.java KMean_Test.java KMean_UnitTest.java Files in K-Medoid package: KMedoid_Algorithm.java KMedoid_UnitTest.java Files in main package: Attribute.java DataPoint.java DistanceCalculation.java FileFilter.java MainFrame.java Utilities.jav There are some main functions implemented for clustering activity as below: 3.2.1 read_SVMLightFile_fill_up_missing_attribute() This function is about reading the SVM Light data file (.dat) and fill up all the missing attributes/values in data file before returning a Vector of data-points for clustering activity. 3.2.2 calculate_distance() This function is providing calculation according to the distance metric input in order to calculate distance between data objects for clustering activity. Overall, this function provides calculation for 3 different distance metrics as: Euclidean, Manhattan and Minkowski. 3.2.3 startClustering() This function is about running a particular clustering algorithm and returns a Vector of Clusters with their own data-points inside. All the steps of a particular clustering algorithm is implemented, here we implement K_Means and K_Medoids clustering algorithms. 3.2.4 calculateSumOfSquareError() This function is about calculating the total/sum square error for all the output clusters. By calling the function calculateSquareError() inside every cluster and sum up, the sum of Square Error will be calculated as long as the clustering activity finished. 3.2.5 calculateSumOfAbsoluteError() This function is about calculating the total/sum absolute error for all the output clusters. By calling the function calculateAbsoluteError() inside every cluster and sum up, the sum of Absolute Error will be calculated as long as the clustering activity finished. 3.2.6 toString() and main() The toString() function will return a string which represents the clustering output, including: total objects of every cluster, percent of object in every cluster, the error (such as: sum of square error or sum of absolute error), the centroid of every cluster and all the data-points clustered in the clusters. The main() function inside MainFrame.java class will allow to execute the GUI of the program, so users can interact with system by GUI instead of console or command-line. In this GUI, users can choose type of distance metric (such as Euclidean and Manhattan), Clustering algorithm (such as K-Means and K-Medoids) and enter input parameters such as number of clusters and number of iterations for clustering activity. Besides, users also can open any data file to view or modify and save before running clustering as well as export the original data file with missing attributes/values to new processed data file with all missing values filled up by zero (0). Section 4 Analysis In order to access the performance of the K-means k-medoids clusters, two dataset of analyses was carried out. The aim of this set to tests was provide an indicator as to how well the clusters performed using the k-means and k-medoids function. The tests were involved comparing the cluster to other cluster of various types provided within Weka cluster suite. The results are summarised throughout the remainder of this section. 4.1 Experiment (Facial Palsy dataset) results vs. Weka Here In this section how we did a comparison with our application algorithm vs. Weka you can see below. In this pattern we give iterations when we run a dataset with our application and Weka. Iterations: 10 >> 30 >> 50 >> 100 >> 200 >> 300 >> 400 >> 500 In this pattern we give a cluster when we run a dataset with our application and Weka. Clusters: 2 >> 3 >> 4 >> 5 After we run dataset with this format than each and every run we get result we combine that result, compare with Weka, we make a total of each and every column and come with average and we are displaying in table that you can see in below table. This Symbol is object. To see a result please click on this object it will show you result. We put as object because result is too big in size so we are not able to put in this A4 page. 4.2 Experiment (Stemming Question dataset) results vs. Weka Here In this section how we did a comparison with our application algorithm vs. Weka you can see below. In this pattern we give iterations when we run a dataset with our application and Weka. Iterations: 10 >> 30 >> 50 >> 100 >> 200 >> 300 >> 400 >> 500 In this pattern we give a cluster when we run a dataset with our application and Weka. Clusters: 2 >> 3 >> 4 >> 5 After we run dataset with this format than each and every run we get result we combine that result, compare with Weka, we make a total of each and every column and come with average and we are displaying in table that you can see in below table. This Symbol is object. To see a result please click on this object it will show you result. We put as object because result is too big in size so we are not able to put in this A4 page. Section 5 Conclusion In evaluating the performance of data mining techniques, in addition to predicative accuracy, some researchers have been done the importance of the explanatory nature of models and the need to reveal patterns that are valid, novel, useful and may be most importantly understandable and explainable. The K-means and k-medoids clusters achieved this by successfully clustering with facial palsy dataset. Which method is more robust-k-means or k-medoids? The k-medoids method is more robust than k-means in the presence of noise and outliers, because a medoids is less influenced by outliers or other extreme values than a mean. However, its processing is more costly than the k-means method. Both methods require the user to specify k, the number of clusters. Aside from using the mean or the medoids as a measure of cluster center, other alternative measures are also commonly used in partitioning clustering methods. The median can be used, resulting in the k-median method, where the median or middle value is taken for each ordered attribute. Alternatively, in the k-modes method, the most frequent value for each attribute is used. 5.1 Future Work The K-means algorithm can create some in efficiency as; it scans the dataset leaving some noise and outliners. These small flaws can be considered major to some of the users, but this doesnt means that the implementation can be prevented. It is always possible that sometimes the dataset is more efficient to follow other algorithms more efficiently, and the result distribution can be equal or acceptable. It is always advisable to make the dataset more efficient by removing unwanted attributes and more meaning full by pre-processing the nominal values to the numeric values. 5.2 Summery Throughout this report the k-mean and the k-medoids algorithms are implemented, which find the best result by scanning the dataset and creating clusters. The algorithm was developed using Java API and more Java classes.  

Friday, January 17, 2020

English grammar Essay

Read the passage given below: and answer the questions a, b, c, and d that follow: [25] A list of queries on email asks recipients to name the world’s richest man in 2008; the winner of the world’s golf title in 2007; the designer of the first rockets; the manufacturer of the first bicycle and so on? building up a roll call of achievers who left their mark on mankind. It ended with, â€Å"Who was the teacher who helped you to enjoy school and whom you remember most vividly? † I don’t know a single recipient of the email who answered a single one of the questions except the last. In other words, everyone’s most unforgettable person was a supportiveand encouraging teacher whose wealth, fame and social standing mattered not at all. What the grateful student received was beyond evaluation because what the teacher gave most freely was the precious gift of the self. It was not just knowledge to pass an examination that they gave their students but an understanding of the value of knowledge itself and a love of it. Great teachers seek to form, not merely inform their students. Today, when teaching (especially teaching young children who have not learned to write) is no longer a coveted profession, I wish we could all pay a silent tribute to the many obscure men and women who shaped our lives and asked for so little in return. Surely, a good teacher deserves to be called a deva because the real meaning of the word is â€Å"the shining one†. Every year, choosing a day when it is not functioning, my cousin visits his old school. The building and compound are much the same as they were when he was a student, so the sense of stepping back into the past is powerful. He moves from classroom to classroom following the exact progression his student-graph had taken him more than half a century ago, and pays a silent tribute to each of the teachers, intensely recalling those impoverished gentlemen whose wardrobes had hardly held more than two shirts. What still moves him is the memory of the care they had taken in the lives and progress of every student, encouraging each of them and guiding every child to do his best and then some. A drop in concentration or performance led to the â€Å"master† calling on the child’s parents to enquire if there was something wrong at home which the child found disturbing or was unable to cope with; very few homes had phones in those days and even if they did, a school-teacher would certainly not have been able to afford a phone call. So, umbrella held high, he would walk those extra miles. My first teacher was a smiling and very gentle woman named Mrs. Delamose, whose name my brother and I repeated over and over again to get it right so that we might greet her correctly: â€Å"delamosedelamosedelamose†. I still recall her dark eyes, and charming crooked smile with faint streaks of lipstick out of place, as she led us through Songs the Letters Sing. She was a true teacher who believed that every single child is unique and that there is no such thing as an unintelligent child I owe my profession to her. a) Give the meaning of the following words as used in the passage: [3] 1. Supportive

Thursday, January 9, 2020

Machiavelli And Humanism - 930 Words

While the moral codes of Humanism and Catholicism consider being deceitful to be wrong, from an amoral perspective, betrayal is unavoidable and comes with its own set of benefits. This is Machiavelli’s view in his 1513 work The Prince, in which he details the complexities of gaining and maintaining political power to his Italian statesman Lorenzo de’ Medici, from whom he hopes to regain a political position after shifts in the unstable Florentine republic. Machiavelli argues that people, particularly political leaders, should have flexible moral codes so that they can bend them when necessary. For him, betraying allies or betraying one’s own beliefs is acceptable, even beneficial, because it aids in making tough political decisions to†¦show more content†¦Despite Machiavelli’s tongue-in-cheek perspective, his intentions in writing The Prince exemplify the two-faced nature of mankind. During political upset in Florence, the ruling family betrays Ma chiavelli himself by temporarily jailing him for treason, stripping him of his political position, and banishing him. Yet unlike Dante, who is more personally affected by his exile, Machiavelli sees Medici family’s return to power as an opportunity to regain his own position, which is why he hopes to impress Lorenzo with The Prince. For him, betrayal is more expected under the circumstances, and so he hopes to play them at their own game. By feigning loyalty and kissing up to Lorenzo, Machiavelli improves his chances of obtaining power, even though he likely doesn’t believe everything he’s saying. For him, his true intentions or beliefs don’t matter—like with religion and betrayal, his deceitfulness is a useful political tool in a world of deceitful men. With the sixteenth-century Florentine power struggle and religious tension, it was difficult for anyone to find stability. While Machiavelli experienced treachery firsthand through being banned fro m Florence, many Florentines could relate to a general lack of loyalty. During a time of political turmoil, aspiring leaders would have to hurt people in the process of gainingShow MoreRelatedThe Rise Of The Renaissance Essay1525 Words   |  7 Pagesarose and was called Humanism, and what humanism is, is an ideology where humans can lead themselves to create a prosperous life and instead of leaning on supernatural forces for answers. Humanists believe that humans have enough logic to create conclusions themselves. This brand-new way of thinking caused a lot of controversy because it did question God’s ability and the church’s power, but the ideas behind it are still heavily used today, even in the 21st century. Humanism in the early RenaissanceRead MoreSir Thomas More s Utopia And Niccolo Machiavelli s The Prince1454 Words   |  6 PagesNiccolo Machiavelli was an Italian civic humanist, historian, diplomat, philosopher, politician, and writer during the Renaissanc e. He applied the values of the Renaissance to his political treatise, The Prince. Sir Thomas was an English lawyer, philosopher, statesman, and humanist during the Renaissance. He employed the ideals of the Renaissance to his Latin dialogue, Utopia. Both The Prince and Utopia reflect the ideals of the Renaissance through their promotion of education, humanism, and reformRead MoreThe Renaissance Prince Essay853 Words   |  4 Pageswould still have a hand in government. It would no longer shun the vast stores of knowledge created in the past and ignored for a thousand years, although opponents would remain. The ideas of humanism, individualism, and secularism would come to play a role in society as they had in the past. Niccolo Machiavelli lived in a time when the Renaissance was at its peak, and, as a part of it, manifested its ideas in his works. His most famous piece, The Prince, used the principles of the Renaissance toRead MoreNiccolo Machiavellis Change In The Scientific Revolution And Secularism Essay1334 Words   |  6 Pagesthe Greco-Roman world, as well as the secularism and humanism movements, many began questioning the world around them through science and philosophy. Western thought throughout this period placed a major emphasis on the natural rights of the individual, science, and economic liberalism. Machiavelli’s major contributions to political science are his ideas on secularization, absolutism, and utilitarianism. The Renaissance ideas of realism, humanism, and secularism would have an everlasting effect onRead MoreHumanism : Renaissance And Renaissance Thought955 Words   |  4 PagesSTANFORD MARQUIS HU 141 Humanism in Renaissance Thought The word ‘Renaissance’ is French for ‘Rebirth’. The Renaissance is a period in European history which signifies the rebirth of classical learning and rediscovery. The best possible way to get a grasp about what the Renaissance was all about is to compare it to a previous age. The middle ages for example, could be defined as a spiritual age. In contrast, the Renaissance was a secular age which was more man-centered rather than God-centeredRead MoreWilliam Shakespeare s The Prince And Julius Caesar1317 Words   |  6 Pageshistorical tragedy ‘Julius Caesar’ (1599). The values and attitudes of these two texts anticipated responders and influenced purpose, form and content such as the darker aspects of humanism, the changeless nature of man, and the fickle nature of people. Machiavelli’s text ‘The Prince’ mirrors the darker aspects of humanism – man is essentially corrupt, self-serving and deceptive . His intended responders were a select of people in power and of educated elite, in particular Lorenzo de Medici. Machiavelli’sRead MoreThe Classical Greek And Roman Education1256 Words   |  6 Pageseducation and wisdom which many believed were lost to the Middle Ages. Italian scholars believed the middle ages to be a dark time, a time considered a period of stagnation in which education, literature, and the arts did not progress and declined. Humanism was the intellectual movement of the Renaissance period, in which individuals concentrated on life in the present rather than life after death. Two major works from the period of the Renaissance, at different ends of the spectrum, illustrated thisRead MoreMachiavelli’s Political Ideas and Influence1477 Words   |  6 PagesRoman eras. One social ideal of the Renaissance was Humanism. Humanism was a Renaissance idea that emphasis human potential and ability. A political idea from the Renaissance was political realism. Political realism is when a ruler accomplishes goals in the interest of state and does not mind resorting to violence if necessary. A major author and political figure from the Renaissance who embodied political realism was Niccolo Machiavelli. Machiavelli was a Florentine born in 1469 and lived during theRead MoreThe Renaissance Essay1164 Words   |  5 Pagessignificant tribute to their respective religion. Thus, it can be safely concluded that religion and politics were interwoven in Medieval period. The Renaissance, however, represented a dramatic transformation from the Medieval outlook. Secularism humanism and individualism were three aspects of life that appeared in the Renaissance and each of those three aspects had a great impact on the socio-economic and political structure of the era. During the Renaissance, the concept of individualismRead MoreThe Emergence Of Italian Nationalism1346 Words   |  6 Pagescenters of wealth and creativity. A new intellectual approach was taken to the way of thinking: humanism. Humanism challenged the previous mindset of Christians, and aided in the desire for liberty and unification of the Italian state. The concept of humanism began early on in the 14th century, and it focused on humankind as a center of intellectual and artistic endeavors. Considered â€Å"The Father of Humanism,†2 Petrarch holds a permanent place in literature as a humanist writer during the Renaissance

Wednesday, January 1, 2020

How Quantum Computers Work

A quantum computer is a computer design which uses the principles of quantum physics to increase the computational power beyond what is attainable by a traditional computer. Quantum computers have been built on a small scale and work continues to upgrade them to more practical models. How Computers Work Computers function by storing data in a binary number format, which result in a series of 1s 0s retained in electronic components such as transistors. Each component of computer memory is called a bit and can be manipulated through the steps of Boolean logic so that the bits change, based upon the algorithms applied by the computer program, between the 1 and 0 modes (sometimes referred to as on and off). How a Quantum Computer Would Work A quantum computer, on the other hand, would store information as either a 1, 0, or a quantum superposition of the two states. Such a quantum bit allows for far greater flexibility than the binary system. Specifically, a quantum computer would be able to perform calculations on a far greater order of magnitude than traditional computers ... a concept which has serious concerns and applications in the realm of cryptography encryption. Some fear that a successful practical quantum computer would devastate the worlds financial system by ripping through their computer security encryptions, which are based on factoring large numbers that literally cannot be cracked by traditional computers within the lifespan of the universe. A quantum computer, on the other hand, could factor the numbers in a reasonable period of time. To understand how this speeds things up, consider this example. If the qubit is in a superposition of the 1 state and the 0 state, and it performed a calculation with another qubit in the same superposition, then one calculation actually obtains 4 results: a 1/1 result, a 1/0 result, a 0/1 result, and a 0/0 result. This is a result of the mathematics applied to a quantum system when in a state of decoherence, which lasts while it is in a superposition of states until it collapses down into one state. The ability of a quantum computer to perform multiple computations simultaneously (or in parallel, in computer terms) is called quantum parallelism. The exact physical mechanism at work within the quantum computer is somewhat theoretically complex and intuitively disturbing. Generally, it is explained in terms of the multi-world interpretation of quantum physics, wherein the computer performs calculations not only in our universe but also in other universes simultaneously, while the various qubits are in a state of quantum decoherence. While this sounds far-fetched, the multi-world interpretation has been shown to make predictions which match experimental results. History of Quantum Computing Quantum computing tends to trace its roots back to a 1959 speech by Richard P. Feynman in which he spoke about the effects of miniaturization, including the idea of exploiting quantum effects to create more powerful computers. This speech is also generally considered the starting point of nanotechnology. Of course, before the quantum effects of computing could be realized, scientists and engineers had to more fully develop the technology of traditional computers. This is why, for many years, there was little direct progress, nor even interest, in the idea of making Feynmans suggestions into reality. In 1985, the idea of quantum logic gates was put forth by the University of Oxfords David Deutsch, as a means of harnessing the quantum realm inside a computer. In fact, Deutschs paper on the subject showed that any physical process could be modeled by a quantum computer. Nearly a decade later, in 1994, ATTs Peter Shor devised an algorithm that could use only 6 qubits to perform some basic factorizations ... more cubits the more complex the numbers requiring factorization became, of course. A handful of quantum computers has been built. The first, a 2-qubit quantum computer in 1998, could perform trivial calculations before losing decoherence after a few nanoseconds. In 2000, teams successfully built both a 4-qubit and a 7-qubit quantum computer. Research on the subject is still very active, although some physicists and engineers express concerns over the difficulties involved in upscaling these experiments to full-scale computing systems. Still, the success of these initial steps does show that the fundamental theory is sound. Difficulties With Quantum Computers The quantum computers main drawback is the same as its strength: quantum decoherence. The qubit calculations are performed while the quantum wave function is in a state of superposition between states, which is what allows it to perform the calculations using both 1 0 states simultaneously. However, when a measurement of any type is made to a quantum system, decoherence breaks down and the wave function collapses into a single state. Therefore, the computer has to somehow continue making these calculations without having any measurements made until the proper time, when it can then drop out of the quantum state, have a measurement taken to read its result, which then gets passed on to the rest of the system. The physical requirements of manipulating a system on this scale are considerable, touching on the realms of superconductors, nanotechnology, and quantum electronics, as well as others. Each of these is itself a sophisticated field which is still being fully developed, so trying to merge them all together into a functional quantum computer is a task which I dont particularly envy anyone ... except for the person who finally succeeds.