I will try to summary the steps

First, how to run the program 
You can use netBean to compile and run the project.
i have attached screenshot for compiling and running in netbean

But if you like to run via command line
open cmd
cd to directory where project is place and use "javac *.java" to compile and then "java TreeDemo" to run the program

..............................................................................................................................

Now, the construction 
(For the 12 cells case)
A.	You start with replace 10 moving objects insertion at the beginning of the main class (Showed at screenshot Insert 1)  
tree.insert("C1",6);
tree.insert("C3",8);
tree.insert("C4",3);
tree.insert("C8",4);
..etc 
B.	Then run the code and check the profile file for the results (depends on which compiler you use) 
C.	Again now you replace 100 moving objects and check the results 
D.	Again now you replace 500 moving objects and check the results 

E.	Again now you replace 700 moving objects and check the results 

F.	 Again now you replace 1000 moving objects and check the results  

(Of course more than one until stabilize the cache memory or take the average)


Now for the connection construction tests

You need to copy the File called “table” and rename it (to keep the original values), now you go the “table” values and start change some of the values (which mean you need increase the connectivity to be more) , change some to be 1 values ( means has many neighbors)  ( this will be done for all cells cases)

Then start again and run the previous ( A, B  C ..etc)  all and check the results again 
 
.................................................................................................

For the Query processing and Insertion 
We start with the original values of the table without any changes 
•	At each density, for example 100 objects, try to search about any values?  Of course more than one until stabilize the cache memory or take the average, try to search for more than one object at certain cell 
•	Similarly you must do that with all densities and all cells cases
Check the results and record them 
•	Now again for the connection test, you must again use the high connection values ( the modified “table” file ,  and Similarly you must do that with all densities and all cells cases

Also  start with the original values of the table without any changes 
•	At each density, for example 100 objects, try to insert an objects at a certain cells ( enter 1 then the objects value then the cell name )  Of course more than one until stabilize the cache memory or take the average, 
Check the results and record them 
•	Now again for the connection test, you must again use the high connection values ( the modified “table” file ,  and Similarly you must do that with all densities and all cells cases
.................................................................................................

For expand cells we have a file expandcell.txt.
In this file you can give the expand cell having order from highest to lowest (RC and LE) I mean if you put the below three entries in expandcell.txt
c1
c2
c6
c1 has highest
c6 has lowest order
..etc
Here we assume that the expand cells is can be extended , so we increase the number of them to be higher , which mean we assume that C5 is Expand cell and C3 and some others, so we increase it to 10 expand cells instead of 6 expand cells  ( this will be done for all cells cases) 
Now you repeat all above steps all again :) , now the expand cells are high, and we want to measure everything again and see the effect of that 
Do the constructions + query + connections + insert……. steps again 

Thanks 

Note that in  Node.java you can change the min  m and max M value for child
Note you can do the Insertion one by one  (enter 1 then the value then the cells name) 
Note that I have done this many many time (+300) for insertion and querying..etc 


