# Java Job by rbt79

Budget $495 USD

Hi,

I need a Java programming expert.

----------------------------------------------------------------------------------------------------------------------------------------------

I'm summarizing here the expected deliverable of project:

1. In the current application, all algorithms run with a different random scattering of data. In order to compare the better performance of one algorithm over another, I need to be able to run each algorithm with the same random scattering. So, if you can change the code as follows it will be better: - Randomly scatter items (by scatter button) - Run the chosen algorithm(s) with this item configuration. (When I click on scatter button once again, the scattering of objects will change again)

2. In the current application, I can only see the result of an individual run. In order to evaluate the quality of algorithms, I need to receive statistical results of 100 individual runs. When I click on run button, cluster validity metrics for 100 runs should be documented.

3. There are four stages in AntClass algorithm (attached in pdf). Your first work in this project is to implement an efficient merging stage that will be replaced with the third stage of the algorithm. You'll label the new algorithm as AntClass_HM. The merging criteria is as follows:

After 1st and 2nd stages of the algorithm, there are some heaps.

Let we say there are k heaps generated by the earlier stages of algorithm.

H1, H2, H3, ..., HK

H1 has several data objects: o1, o2, o3, o4, o5, ..., on

H2 has several data objects: t1, t2, t3, t4, t5, ... tn

H3 has several data objects: z1, z2, z3, z4, z5, ..., zn

The other heaps through H1-Hk also have data objects. Above, I write data objects in each heap starting from 1 to n, but there may be different number of objects in each heap.

1- Take the heaps generated in earlier stages. For each heap, look 8 heaps close to it. (As an example, i write here H1, H2, H3, H4, H5, H6, H7, H8)

2- First search for merging criteria for H1-H2:

a. For each object in H1, compute the distance of object with its heap's center and the distance of the object with another heap's center. If the distance of the object to the other heap's center is smaller than the distance of it to its heap, then merge two heaps.

b. For each object in H2, compute the distance of object with its heap's center and the distance of the object with another heap's center. If the distance of the object to the other heap's center is smaller than the distance of it to its heap, then merge two heaps.

3- Continue the process in Stage2 by other combinations. (like H1-H3, H1-H4, etc.)

In the above scheme, two heaps are merged once any object in one of the 2 heaps that satisfies the condition of being closer to other heap's center is achieved. Please make it changeable. I mean, I can change it as "finding at least 2/3/4/5/6/7 objects satisfying the condition of being closer to other heap's center". As another issue, please make "look 8 heaps close to it" dynamic, as well. I should easily change it to "look 16 heaps close to it".

4- The use of K-nearest neighbor algorithm for better heap merging. (If the results of stage 3 are well enough, I may omit it, but it's not obvious now)

5- Documentation (Documentation is needed especially for any algorithmic changes to above ideas made by you during the project)

Expected delivery deadline:

Stage#3: within 5 days (regarding the start of project)

Stage#1-2: within 7 days (regarding the start of project)

Stage#4: within 15 days (from the start of project)

Milestone: Completion of Stage 1,2,3: payment: $300

Milestone: Completion of Stage 4: payment: $195