Find Jobs
Hire Freelancers

I would like to hire a Software Developer

R210-1750 ZAR

Ακυρώθηκε
Αναρτήθηκε περίπου 7 χρόνια πριν

R210-1750 ZAR

Πληρωμή κατά την παράδοση
I need you to develop some software for me. I would like this software to be developed for Linux using Java. A very small Computer Science University project : a medical aid institution, who wants to track fraudulent claims. In South Africa, medical aids loose between R9 billion and R19 billion per year due to fraudulent claims [1]. Sophicated fraud detection techniques exists, and many of these are based on suspect patterns and relationships amongst individuals and claim types. For example, a certain doctor may write an excessive number of sick notes for students who did not prepare and do not wish to write a test. One way of finding such relationships, is visually. To aid the company in this process, you developed a directed graph with relationships between different types of nodes. There may be nodes for individual doctors, individual patients, and typical claims. The relationships form the edges between the nodes. For example, the node for an individual doctor may be linked to the sick note claim node, and many student nodes may be linked to that doctor. Multiple links between two given nodes can be colour coded, to aid in the visual analysis. For example, the edge between a certain doctor and the sick note claim node may be coloured green, orange or red, to indicate how many times such an edge occurred in the input data. Your task in this project is to implement a specific graph layout algorithm (described below) which will display the fraud graph. The input data is simply a list of edges, in the form x -> y, where x and y are integers in [0, |V|-1]. Each edge appears on a separate line. For example, 0 -> 1 1 -> 2 2 -> 3 3 -> 4 7 -> 1 1 -> 5 3 -> 6 2 -> 8 1 -> 9 10 -> 1 8 -> 6 The output is a picture of the graph, correctly laid out according to the given algorithm. [1] [login to view URL] The graph layout algorithm The algorithm has four major components. After having read the input file and creating the nodes and edges, it first ranks the nodes into different levels (Smin, Smax, S0, S1, ..., Sk). Secondly, it adds dummy nodes to the graph where edges stretch over rank sets. Thirdly, it orders the nodes inside each level to minimize edge crossings. The last step is to find coordinate positions for each node and spline control points to draw all the edges between the nodes. Step 1: How to rank nodes: A judicious node rank allocation will achieve a graph where the edges are mostly short (many long edges lead to a spaghetti drawing). As a first simple ranking method for the nodes, place every node with no incoming edges into the rank set Smax, and every node with no outgoing edges into rank set Smin. The input data will be guaranteed to have at least one edge in Smax and one edge in Smin. Start from Smin and fix a node ordering for it, in numerical order, from left to right. A node v is placed in set Sp if the longest path from v to any of the nodes in Smin has value p. Segdewick and Wayne's [login to view URL] class should be modified to take a Digraph as argument. This class can then be used to find the length of the longest path from v to any of the nodes in Smin. Step 2: Add dummy nodes to the graph Consider each rank set Si. For every node v in Si, consider its adjacent nodes w (in other ranked sets). If v is more than one rank away from any w, create a virtual (dummy) node t in rank set Si+1, and add a chain of virtual edges and nodes v-t0, t0-t1,..., tk-w, stepping through rank sets that are one rank apart. Step 3: Node ordering within ranks Now, for each set of ranked nodes, one can reduce the number of edge crossings if nodes are cleverly arranged in the rank set. Node ordering is defined between any two given rank sets. Start with the set Smin, and fix a node ordering for it. Then reorder the nodes in S1 to minimise edge crossings. Continue to use a fixed order for rank set Si, and minimise its edge crossings to Si+1. There are a few existing algorithms for this, such as the Barycenter method. Step 4: Find coordinate positions for each node The nodes are already ordered in rank sets. Assign a Y coordinate to each rank set, with good spacing between the rank sets. The next step is to find the x-coordinate of each node in each rank set, including the dummy nodes. There are many heuristics to improve the layout within the rank sets. For example, try to achieve symmetry in the final graph, by centering the rank set and set nodes a fixed distance apart. Drawing the edges Draw the edges as straight lines, with bends at the virtual nodes. Do not draw the virtual nodes. Finally, edges are to be colourcoded to indicate that they occur often (or not, if they occur only a few times). That is, you have to keep count of how often every edge occurs in the graph, and then colour the edges that occur the most red, the edges that occur second-most orange, and the edges that occur third-most dark yellow (make sure that the yellow is dark enough to be clearly visible on the screen). All other edges are to be drawn in black. For example, suppose there are five parallel edges between nodes 1 and 2, four edges between nodes 2 and 3, three edges between 1 and 3, and all other edges occur only once. Then you have to draw a single edge between 1 and 2, but colour it red, one edge coloured orange between 2 and 3, and one edge coloured dark yellow between 1 and 3. All other edges will be black. Input and output Your program must contain a class file named "[login to view URL]" which must take the path of the input file as a command line argument. This argument will be used to test your program, so it is essential that you create it. Your program will be tested by running your compiled Layout class with different input files as arguments e.g. java Layout [login to view URL] Your program must produce a picture of the graph laid out according to the given algorithm. Your program will be marked based on this picture, so it is essential that your graph is displayed correctly. Furthermore, you must dump a text file named "[login to view URL]" with the final coordinates for each node and the final spline points for each edge, for additional marking purposes. A number of assumptions will be made about the graphs used as input data: There will be at least one node without outgoing edges, and at least one node without incoming edges. The graph may contain cycles -- you have to test whether the graph is cyclic, and if so, reject the input. There are no self-edges in the input.
Ταυτότητα εργασίας: 13994920

Σχετικά με την εργασία

7 προτάσεις
Απομακρυσμένη Εργασία
Ενεργός/ή 7 χρόνια πριν

Ψάχνεις τρόπο για να κερδίσεις μερικά χρήματα;

Πλεονεκτήματα πλειοδοσίας στο Freelancer

Καθόρισε τον προϋπολογισμό σου και το χρονοδιάγραμμα
Πληρώσου για τη δουλειά σου
Περίγραψε την πρόταση σου
Η εγγραφή και η πλειοδοσία σε εργασίες είναι δωρεάν
7 freelancers δίνουν μια μέση προσφορά R1.339 ZAR για αυτή τη δουλειά
Avatar Χρήστη
hello,how are you.i read your bid carefully. i am java/javafx expert and have full experience for 12 years. java/javafx is my top skill and passision. i can provide most quality and high speed. if you want to success, please contact me. Then, I will give you good result. hire me.
R1.088 ZAR σε 3 ημέρες
5,0 (64 αξιολογήσεις)
6,9
6,9
Avatar Χρήστη
Hi I have long experience in this field. I can provide you perfect solution. I can work full time or part time for you. Hope to meet you and discuss please. Thanks
R1.652 ZAR σε 3 ημέρες
4,9 (15 αξιολογήσεις)
4,1
4,1
Avatar Χρήστη
Hi. Thanks for posting such a job. I am a full time programmer with Java skill. I can finish your project perfectly. Best regards.
R1.750 ZAR σε 3 ημέρες
5,0 (5 αξιολογήσεις)
2,8
2,8
Avatar Χρήστη
We've dedicated team of experts to deliver quality solution within your time frame. Our software developers are very keen to solve complicated problems. I can answer your queries on CHAT. Looking forward to work on your project. But we need to understand project for that so that we can deliver appropriate solution.
R1.620 ZAR σε 3 ημέρες
5,0 (1 αξιολόγηση)
3,0
3,0
Avatar Χρήστη
Hi,  I'm a Web Developer, and I'm very interested in your job post as i am having related work experience in fulfilling the need for the job posted and also i am having expertise in web based languages from static to dynamic. I have consistently developing projects on time and under budget, which has earned me the base for my own company and now i want to expand my self more and prove my worth. I believe my skills would be ideal for your project. I have done many projects for my previous company and also of my own as i have started my own work from this freelancer profile. I can guarantee you the complete satisfaction and a complete reliable solution for your work.  Thanks and Regards
R1.088 ZAR σε 3 ημέρες
5,0 (3 αξιολογήσεις)
2,9
2,9
Avatar Χρήστη
Hi, I have more then 10 years of experienced in java, i did lots of work on Swing,AWT, JDBC, servlet, JSP, Spring. Kindly initiate the discussion .
R1.088 ZAR σε 3 ημέρες
3,2 (20 αξιολογήσεις)
3,7
3,7

Σχετικά με τον πελάτη

Σημαία της SOUTH AFRICA
South Africa
0,0
0
Μέλος από Μαΐ 10, 2017

Επαλήθευση Πελάτη

Ευχαριστούμε! Σου έχουμε στείλει ένα email με ένα σύνδεσμο για να διεκδικήσεις τη δωρεάν πίστωση σου.
Κάτι πήγε στραβά κατά την προσπάθεια αποστολής του email σου. Παρακαλούμε δοκίμασε ξανά.
Εγγεγραμμένοι Χρήστες Συνολικές Αναρτημένες Δουλειές
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Φόρτωση προεπισκόπησης
Δόθηκε πρόσβαση για Geolocation.
Η σύνδεση σου έχει λήξει και τώρα έχεις αποσυνδεθεί. Παρακαλούμε συνδέσου ξανά.