Every pair of electrons repels each other as one over the distance between them—the Coulomb potential or energy. A configuration is considered optimal if it minimizes the Coulomb potential. If two points are close then the reciprocal of their distance will be large and so minimizing the energy is a way of uniformly spreading out points. Several authors have remarked on possible comparisons to regular polyhedra, stable molecules e.
The purpose of this project is to give each student an opportunity to do some in-depth practical work on the design, implementation, and analysis of algorithms. Although you will have approximately one month to work on the project, you are required to submit a project proposal by 5th November to receive credit details below.
General Description The theme of the project is to implement one or more of the algorithms that we have read about or studied during this course, and to run tests to determine whether the behavior that you see in practice agrees with the predictions of the formal analysis.
More specifically, your project will explore one of the following three topics: Implement the brute force and the Quickhull algorithms for convex hull. Compare their time efficiency empirically, and see how well these empirical results conform to what analysis predicts.
Implement a dictionary using various kinds of hash table and various kinds of tree. See how these data structures compare, for both space and time, and compare your empirical results with those predicted by analysis.
If you have a burning desire to work on something other than one of the three project ideas listed above, please check with me and I'll be happy to give you my thoughts and a green light to proceed if I think the idea is appropriate and interesting.
If you want to read ahead and select some of the more-advanced algorithms from the textbook, that's fine. You may use any reasonable programming language or platform for your implementation; please check with me if you have any concerns about your specific choices in this area.
Collaboration I'm strongly encouraging students to form teams of two or three. Each team will submit single report.
I will not accept larger teams; experience has shown that the coordination problems of a larger team outweigh the technical problems, and its on the latter that I want you to focus your energies. Students who have a special need to work on their own should ask for permission to do so.
Team projects will enable you to investigate your topic in greater depth—for example, with more thorough testing and analysis, or with a broader range of algorithms. Generally, I believe that you learn more, and understand more deeply, by working with a partner or two, for example, by pair programming.
What won't work is a project in which you try to divide the work among team members and then hope to put the pieces together at the end. Such projects are doomed! Plan to work as a team; this means meeting in person.
If you have had prior success working remotely with partners, using screen-sharing and voice chat, you may want to try this. My own experience is that nothing beats sitting together at the same keyboard. At the end of the project, you will submit a written report that will be used as the sole basis for evaluating your project.
Specifically, your report will be expected: I also expect a one-page write-up from each individual, describing that individual's role in the project, the role taken on by the other team members, and how well the collaboration followed the plan.
Specific items that may appear in a report include:Jul 23, · To Write a program that implements the full DES. Use the S-boxes that are specified for the DES standard. Make sure you implement all of the key generation steps. Sorting and Searching. The sorting problem is to rearrange an array of items in ascending order.
then 1, then 2, then 3, and so forth, until hitting the secret number. We refer to such an algorithm as a brute-force algorithm: it seems to get the job done, but Write a program rutadeltambor.com that reads in a command line parameter N. October CS 3. Convex Hull Problem: Discuss one algorithm for the convex hull problem not discussed in the text or in class.
Provide pseudo-code and analysis. Implement this algorithm in a language of choice.
Implement a convex hull algorithm that has running time O(nlogn) or O(nh), where nis the number of input points and his the number of convex hull vertices. You should probably choose either Graham’s scan, the Graham-Andrew variation from.
Implementing incremental Convex hull algorithm. is the difference between incremental online CH algo and incremental CH algo and what is deterministic incremental convex hull algo??
i want to write a program which: allows user to input points and as the user dynamically inputs points i maintain the Conv Hull of the points input so far.
Dec 27, · Knapsack. Here I test a brute force and pruning implementation to solve Knapsack problem. Because Knapsack is NP for floating numbers the algorithms will only be usable for few items.. Brute Force. This is an implementation where negative values and weights of .