├── _config.yml ├── modules ├── script.sh ├── Module_6_Loading.c ├── Module_3_TimeCalculator.c ├── README.md ├── Module_2_ReadCSV.c ├── Module_1_CreateCSV.c ├── Module_9_Random.c ├── Module_8_Prims_Implementation.c ├── Module_4_readCSV.c ├── Module_7_Kruskal_implementation.c ├── Module_10_PSO.c ├── Module_5_AdjancyMTL.c └── Main.c ├── .gitignore ├── img ├── Pert_chart.png ├── ClassDiagram.jpg ├── UseCaseDiagram.png ├── Flowchart_Basic_PSO.jpg └── Flowchart_CustomPSO.jpg ├── references ├── Synopsis.docx └── Synopsis_presentation.pptx ├── .github └── ISSUE_TEMPLATE │ └── feature_request.md ├── LICENSE ├── CONTRIBUTING.md ├── README.md ├── CODE_OF_CONDUCT.md ├── pso.c └── models ├── FlowChart_BasicPSO.mdj ├── Flowchart_CustomPSO.mdj └── ClassDiagram.mdj /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /modules/script.sh: -------------------------------------------------------------------------------- 1 | g++ Main.c 2 | ./a.out 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.exe 2 | *.txt 3 | a.out 4 | *.csv 5 | -------------------------------------------------------------------------------- /img/Pert_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NishkarshRaj/Particle_Swarm_Intelligence/HEAD/img/Pert_chart.png -------------------------------------------------------------------------------- /img/ClassDiagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NishkarshRaj/Particle_Swarm_Intelligence/HEAD/img/ClassDiagram.jpg -------------------------------------------------------------------------------- /img/UseCaseDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NishkarshRaj/Particle_Swarm_Intelligence/HEAD/img/UseCaseDiagram.png -------------------------------------------------------------------------------- /references/Synopsis.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NishkarshRaj/Particle_Swarm_Intelligence/HEAD/references/Synopsis.docx -------------------------------------------------------------------------------- /img/Flowchart_Basic_PSO.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NishkarshRaj/Particle_Swarm_Intelligence/HEAD/img/Flowchart_Basic_PSO.jpg -------------------------------------------------------------------------------- /img/Flowchart_CustomPSO.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NishkarshRaj/Particle_Swarm_Intelligence/HEAD/img/Flowchart_CustomPSO.jpg -------------------------------------------------------------------------------- /references/Synopsis_presentation.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NishkarshRaj/Particle_Swarm_Intelligence/HEAD/references/Synopsis_presentation.pptx -------------------------------------------------------------------------------- /modules/Module_6_Loading.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace std; 4 | void loading() 5 | { 6 | int i; 7 | char ch; 8 | system("reset"); 9 | printf("Hello, Enter any key to continue: "); 10 | scanf("%c",&ch); 11 | for(i=0;i<50000;i++) 12 | { 13 | printf("Loading Content: %d\n",i+1); 14 | } 15 | system("reset"); 16 | } 17 | int main() 18 | { 19 | loading(); 20 | } 21 | -------------------------------------------------------------------------------- /modules/Module_3_TimeCalculator.c: -------------------------------------------------------------------------------- 1 | #include //header needed to use the function 2 | #include 3 | int main() 4 | { 5 | //clock_t is capable of calculating processor time and clock funcion is capable of returning the clock time since the program is started 6 | clock_t start = clock(); 7 | /* 8 | write the program for which you need to calculate the time used by cpu 9 | */ 10 | clock_t end = clock(); 11 | double time = ((double)(end - start))/CLOCKS_PER_SEC; //number of processor clock ticks per second is CLOCKS_PER_SEC 12 | time=time*1000000; 13 | printf("%f\n",time); //Time in Micro Seconds 10^-6 14 | } 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /modules/README.md: -------------------------------------------------------------------------------- 1 | # Product Backlog 2 | #### This section highlights the product backlog describing the features implementation history and to-do's. 3 | The Product Backlog is an ordered list of everything that is known to be needed in the product. It is the single source of requirements for any changes to be made to the product. 4 | 5 | - [X] File Handling to create .csv file for storing adjancy matrix - Module_1_CreateCSV.c 6 | 7 | - [X] File Handling to show stored .csv files and access specified one by user input - Module_2_ReadCSV.c 8 | 9 | - [X] Time calculator module - Module_3_TimeCalculator.c 10 | 11 | - [X] Convert .csv file input to 2-D Array Matrix form of Adjancy Matrix - Module_4_readCSV.c 12 | 13 | - [X] Convert Adjancy Matrix (2-D Array) to Adjancy List (Structure) - Module_5_AdjancyMTL.c 14 | 15 | - [ ] Display network graphically using Structures 16 | 17 | - [X] Kruskal's on Adjancy Matrix - Module-7-Kruskal-implementation.c 18 | 19 | - [X] Prim's on Adjancy Matrix - Module-8-Prims-implementation.c 20 | 21 | - [X] Random Number Generator Module - Module_9_Random.c 22 | 23 | - [ ] PSO on Adjancy Matrix 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Nishkarsh Raj 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /modules/Module_2_ReadCSV.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | /* when return 1, scandir will put this dirent to the list */ 7 | static int parse_ext(const struct dirent *dir) 8 | { 9 | if(!dir) 10 | return 0; 11 | 12 | if(dir->d_type == DT_REG) { /* only deal with regular file */ 13 | const char *ext = strrchr(dir->d_name,'.'); 14 | if((!ext) || (ext == dir->d_name)) 15 | return 0; 16 | else { 17 | if(strcmp(ext, ".csv") == 0) 18 | return 1; 19 | } 20 | } 21 | 22 | return 0; 23 | } 24 | 25 | int main(void) 26 | { 27 | struct dirent **namelist; 28 | int n; 29 | 30 | n = scandir(".", &namelist, parse_ext, alphasort); 31 | if (n < 0) { 32 | perror("scandir"); 33 | return 1; 34 | } 35 | else { 36 | while (n--) { 37 | printf("%s\n", namelist[n]->d_name); 38 | free(namelist[n]); 39 | } 40 | free(namelist); 41 | } 42 | 43 | return 0; 44 | } 45 | -------------------------------------------------------------------------------- /modules/Module_1_CreateCSV.c: -------------------------------------------------------------------------------- 1 | #include 2 | int main() 3 | { 4 | printf("Creation of .csv file by user\n"); 5 | //Adjance Matrix is a square matrix n*n with n being the number of nodes in the network 6 | int n,i,j,count=0; 7 | printf("Enter the number of nodes in network: "); 8 | scanf("%d",&n); 9 | int ds[100]; 10 | char temp[100]; 11 | // Create a file pointer 12 | FILE *fp; 13 | // Create a .csv file 14 | fp = fopen("First.csv","a+"); 15 | // to update: Ask user for name of csv file to be made and also create a text file to store details of all csv file made till now or 16 | //create a code to search for all csv files in current path. 17 | 18 | // Storing number of nodes as first line in adjacency matrix 19 | sprintf(temp,"%d",n); 20 | fputs(temp,fp); 21 | fputs("\n",fp); 22 | printf("Enter the Adjancy Matrix values row wise\n"); 23 | for(i=0;i 3 | #include //Io Header File 4 | #include //For Rand and Srand inbuilt functions 5 | #include //To generate Random numbers each and every time rather than getting same random number 6 | //Time function is needed to generate dynamic numbers at runtime because rand() is compiled time executed and generates same number on multiple execution 7 | 8 | float random_generator() 9 | { 10 | register int x = rand(); //Using register storage class for faster access 11 | //printf("%d",x); Yes every time new random integer is generated 12 | //How to convert any integer number into a float between 0 and 1 13 | //Divide the number by 10^(number of digits) 14 | int count=0,temp; 15 | temp=x; //temp holds x value because its going to change to 0 to count frequency of digits 16 | while(temp>0) 17 | { 18 | count++; 19 | temp=temp/10; 20 | } 21 | //printf("%d\n%d\n",x,count); 22 | temp = pow(10,count); //using same variable again to save memory 23 | float answer = (float)x/temp; 24 | //printf("%f\n",answer); 25 | return abs(answer); 26 | } 27 | 28 | // Driver program 29 | int main(void) 30 | { 31 | //Initialization used to call only once 32 | srand(time(0)); 33 | printf("%f\n%f\n%f\n",random_generator(),random_generator(),random_generator()); 34 | return 0; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Collaborate: 2 | 3 | 1. Fork the repository to your own GitHub account. 4 | 5 | 2. Clone the repository to your local machine 6 | ``` 7 | $ git clone "https://www.github.com/{Username}/Minor-1-Swarm-Intelligence.git" 8 | ``` 9 | where username is your GitHub account username. 10 | 11 | 3. Create a branch where you can do your local work. 12 | Never work on **master** branch as we do not allow master commits except by admins. 13 | ``` 14 | $ git branch {branchname} 15 | $ git checkout branchname 16 | ``` 17 | 18 | 4. Do your work and stage your changes. 19 | ``` 20 | $ git add 21 | ``` 22 | 23 | 5. Commit you changes with a commit message containing your name, file(s) worked upon, changes added. 24 | ``` 25 | $ git commit -m "Name| files| Changes" 26 | ``` 27 | 28 | 6. Push changes to your forked repository 29 | ``` 30 | $ git push -u origin branchname 31 | ``` 32 | 33 | # Synchronize forked repository with Upstream repository 34 | 35 | 1. Create upstream as our repository 36 | ``` 37 | $ git remote add upstream "https://www.github.com/NishkarshRaj/Minor-1-Swarm-Intelligence" 38 | ``` 39 | 40 | 2. Fetch upstream changes in local machine 41 | ``` 42 | $ git fetch upstream 43 | ``` 44 | 45 | 3. Switch to master branch 46 | ``` 47 | $ git checkout master 48 | ``` 49 | 50 | 4. Merge changes in local machine 51 | ``` 52 | $ git merge upstream/master 53 | ``` 54 | 55 | 5. Push changes to your forked GitHub repository 56 | ``` 57 | $ git push -f origin master 58 | ``` 59 | 60 | -------------------------------------------------------------------------------- /modules/Module_8_Prims_Implementation.c: -------------------------------------------------------------------------------- 1 | #include 2 | #define INT_MAX 100000 3 | int n; 4 | 5 | //Prims Helper Function 6 | int isValidEdge(int u, int v, int* inMST) 7 | { 8 | if (u == v) 9 | return 0; 10 | if (inMST[u] == 0 && inMST[v] == 0) 11 | return 0; 12 | else if (inMST[u] == 1 && inMST[v] == 1) 13 | return 0; 14 | return 1; 15 | } 16 | 17 | void primMST(int cost[][50],int x) 18 | { 19 | int inMST[n]; 20 | 21 | // Include first vertex in MST 22 | inMST[0] = 1; 23 | 24 | // Keep adding edges while number of included 25 | // edges does not become V-1. 26 | int edge_count = 0, mincost = 0; 27 | while (edge_count < x - 1) { 28 | 29 | // Find minimum weight valid edge. 30 | int min = INT_MAX, a = -1, b = -1; 31 | for (int i = 0; i < x; i++) { 32 | for (int j = 0; j < x; j++) { 33 | if (cost[i][j] < min) { 34 | if (isValidEdge(i, j, inMST)) { 35 | min = cost[i][j]; 36 | a = i; 37 | b = j; 38 | } 39 | } 40 | } 41 | } 42 | if (a != -1 && b != -1 ) { 43 | printf("Edge %d:(%d, %d) cost: %d \n", 44 | edge_count++, a, b, min); 45 | mincost = mincost + min; 46 | inMST[b] = inMST[a] = 1; 47 | } 48 | } 49 | printf("\nMinimum cost= %d \n", mincost); 50 | } 51 | 52 | int main() 53 | { 54 | int i,j; 55 | printf("Enter number of vertex: "); 56 | scanf("%d",&n); 57 | int cost[50][50]; 58 | for(i=0;i 2 | 3 | #include 4 | 5 | #include /* atoi */ 6 | 7 | #define NODES 50 8 | int main() { 9 | 10 | // Declare the file pointer 11 | FILE * filePointer; 12 | 13 | // Declare the variable for the data to be read from file 14 | char dataToBeRead[50]; 15 | 16 | // Open the existing file GfgTest.c using fopen() 17 | // in read mode using "r" attribute 18 | filePointer = fopen("pink.csv", "r"); 19 | int k = 10; 20 | int array[k][k]; 21 | // Check if this filePointer is null 22 | // which maybe if the file does not exist 23 | if (filePointer == NULL) { 24 | printf("test.csv file failed to open."); 25 | } else { 26 | 27 | printf("The file is now opened.\n"); 28 | int count = 0; 29 | 30 | while (fgets(dataToBeRead, 50, filePointer) != NULL) { 31 | if (count == 0) { 32 | // First line of csv contains total number of nodes 33 | k = atoi(dataToBeRead); 34 | } else { 35 | int j = 0; 36 | int length = (int) strlen(dataToBeRead); 37 | int kk = 0; 38 | 39 | for (int i = 0; i < length - 1; i++) { 40 | if (dataToBeRead[i] != ',') { 41 | kk = kk * 10 + (dataToBeRead[i] - '0'); 42 | 43 | } else { 44 | array[count - 1][j] = kk; 45 | printf("%d \n", kk); 46 | kk = 0; 47 | j++; 48 | 49 | } 50 | } 51 | array[count - 1][j] = kk; 52 | printf("%d \n", kk); 53 | printf("\n"); 54 | 55 | } 56 | count++; 57 | } 58 | 59 | // Closing the file using fclose() 60 | fclose(filePointer); 61 | 62 | printf("Data successfully read from file GfgTest.c\n"); 63 | printf("The file is now closed.\n"); 64 | 65 | for (int i = 0; i < k; i++) { 66 | for (int j = 0; j < k; j++) { 67 | printf("%d ", array[i][j]); 68 | } 69 | printf("\n"); 70 | } 71 | } 72 | 73 | return 0; 74 | } 75 | -------------------------------------------------------------------------------- /modules/Module_7_Kruskal_implementation.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #define INT_MAX 10000 //Unreachable paths are identified using Infinity!! 4 | int n; 5 | int parent[INT_MAX]; 6 | 7 | //Kruskals Helper Function 8 | // Find set of vertex i 9 | int find(int i) 10 | { 11 | while (parent[i] != i) 12 | i = parent[i]; 13 | return i; 14 | } 15 | 16 | //Kruskals Helper Function 17 | // Does union of i and j. It returns 18 | // false if i and j are already in same 19 | // set. 20 | void union1(int i, int j) 21 | { 22 | int a = find(i); 23 | int b = find(j); 24 | parent[a] = b; 25 | } 26 | 27 | // Finds MST using Kruskal's algorithm 28 | void kruskalMST(int cost[][50],int x) 29 | { 30 | clock_t start = clock(); 31 | int mincost = 0; // Cost of min MST. 32 | 33 | // Initialize sets of disjoint sets. 34 | for (int i = 0; i < x; i++) 35 | parent[i] = i; 36 | 37 | // Include minimum weight edges one by one 38 | int edge_count = 0; 39 | while (edge_count < x - 1) { 40 | int min = INT_MAX; int a = -1 ;int b = -1; 41 | for (int i = 0; i < x; i++) { 42 | for (int j = 0; j < x; j++) { 43 | if (find(i) != find(j) && cost[i][j] < min) { 44 | min = cost[i][j]; 45 | a = i; 46 | b = j; 47 | } 48 | } 49 | } 50 | 51 | union1(a, b); 52 | printf("Edge %d:(%d, %d) cost:%d \n", 53 | edge_count++, a, b, min); 54 | mincost += min; 55 | } 56 | clock_t end = clock(); 57 | printf("\nMinimum cost= %d \n", mincost); 58 | double time = ((double) (end - start))/CLOCKS_PER_SEC; 59 | time=time*1000000; 60 | printf("Processing Time: %f MicroSeconds\n",time); 61 | } 62 | 63 | // driver program to test above function 64 | int main() 65 | { 66 | //int n; 67 | int i,j; 68 | printf("Enter the number of nodes: "); 69 | scanf("%d",&n); 70 | int cost[50][50]; //hardcoding 2d array size as needed for sending to new function 71 | //Initialize by Int max as unreachable paths!! 72 | //This is to be replaced by 2D matrix made in our main code 73 | //Take user input!! for upper half triangle only 74 | for(i=0;i 2 | #include 3 | #include 4 | #include 5 | #define INT_MAX 100000 6 | 7 | int n; //Declaring the N value as global variable!!!!!!!!!!!!!!! 8 | 9 | // Random function for cost in PSO 10 | float random_generator() 11 | { 12 | register int x = rand(); //Using register storage class for faster access 13 | //printf("%d",x); Yes every time new random integer is generated 14 | //How to convert any integer number into a float between 0 and 1 15 | //Divide the number by 10^(number of digits) 16 | int count=0,temp; 17 | temp=x; //temp holds x value because its going to change to 0 to count frequency of digits 18 | while(temp>0) 19 | { 20 | count++; 21 | temp=temp/10; 22 | } 23 | //printf("%d\n%d\n",x,count); 24 | temp = pow(10,count); //using same variable again to save memory 25 | float answer = (float)x/temp; 26 | //printf("%f\n",answer); 27 | return abs(answer); 28 | } 29 | 30 | //Function for Valid Edge -> Check if edge present in MST Set or not!! 31 | int isValidEdge(int u, int v, int* inMST) 32 | { 33 | if (u == v) 34 | return 0; 35 | if (inMST[u] == 0 && inMST[v] == 0) 36 | return 0; 37 | else if (inMST[u] == 1 && inMST[v] == 1) 38 | return 0; 39 | return 1; 40 | } 41 | 42 | //PSO Function 43 | void PSO(float cost[][50],int x) 44 | { 45 | int inMST[n]; 46 | float k; 47 | // Include first vertex in MST 48 | inMST[0] = 1; 49 | // Keep adding edges while number of included 50 | // edges does not become V-1. 51 | int edge_count = 0; 52 | float mincost = 0; 53 | while (edge_count < x - 1) { 54 | // Find minimum weight valid edge. 55 | float min = INT_MAX; 56 | int a = -1, b = -1; 57 | for (int i = 0; i < x; i++) { 58 | for (int j = 0; j < x; j++) { 59 | k=random_generator(); 60 | if ((cost[i][j] + cost[i][j]*k) < min) { 61 | if (isValidEdge(i, j, inMST)) { 62 | min = (cost[i][j] + cost[i][j]*k); 63 | a = i; 64 | b = j; 65 | } 66 | } 67 | } 68 | } 69 | if (a != -1 && b != -1 ) { 70 | printf("Edge %d:(%d, %d) cost: %f \n", 71 | edge_count++, a, b, min); 72 | mincost = mincost + min; 73 | inMST[b] = inMST[a] = 1; 74 | } 75 | } 76 | printf("\n Minimum cost= %f \n", mincost); 77 | } 78 | int main() 79 | { 80 | srand(time(0)); //Declare for Randomization irrespective of time 81 | int i,j; 82 | printf("Enter number of vertex: "); 83 | scanf("%d",&n); 84 | float cost[50][50]; // Adjancy matrix of type float!!! 85 | for(i=0;i 2 | #include 3 | //Adjancy List 4 | //N nodes -> 0 is V1, 1 is V2,,, k is Vk+1,,,, n-1 is Vn 5 | //Adjancy List ignoring loop, if connected with rest, then added in ordered fashion 6 | struct node 7 | { 8 | int node_number; 9 | struct node *next; //for linked list of structures 10 | struct node *list[20]; //for Adjancy list 11 | }; 12 | // Create a linked list-> Adjancy List from Adjancy Matrix 13 | int main() 14 | { 15 | node *ptr,*head,*p; 16 | int n,i,j,k; 17 | scanf("%d",&n); //Number of vertex in the network 18 | int matrix[n][n]; 19 | node *list1[n]; 20 | for(i=0;inode_number)); 43 | ptr->node_number=k; 44 | k++; 45 | //ptr->list=NULL; 46 | ptr->next=NULL; 47 | list1[i]=(node*)malloc(sizeof(node)); 48 | for(j=0;j<20;j++) 49 | { 50 | list1[i]->list[j]=NULL; 51 | } 52 | if(i==0) 53 | { 54 | head=(node*)malloc(sizeof(node)); 55 | head=ptr; 56 | } 57 | else 58 | { 59 | p=head; 60 | while(p->next!=NULL) 61 | { 62 | p=p->next; 63 | } 64 | p->next=ptr; 65 | } 66 | list1[i]=ptr; 67 | } 68 | //////////////////////////////////////////////// 69 | //Display the Linked List 70 | p=head; 71 | printf("%d\n",head->node_number); 72 | while(p->next!=NULL) 73 | { 74 | printf("%d\n",ptr->node_number); 75 | p=p->next; 76 | } 77 | //printf("%d",list1[0]->node_number); 78 | ///////////////////////////////////////////////// 79 | //Create List 80 | p=head; 81 | while(p->next!=NULL) 82 | { 83 | //printf("Check 1\t"); 84 | j=0; 85 | k=p->node_number; 86 | k--; 87 | for(i=0;ilist[j++]=list1[i]; 94 | } 95 | } 96 | p=p->next; 97 | } 98 | //printf("Check4"); 99 | j=0; 100 | k=p->node_number; 101 | k--; 102 | for(i=0;ilist[j++]=list1[i]; 109 | } 110 | } 111 | ///////////////////////////////////////////////// 112 | //Display Adjancy List 113 | p=head; 114 | while(p->next!=NULL) 115 | { 116 | printf("%d: ",p->node_number); 117 | for(i=0;p->list[i]!=NULL;i++) 118 | { 119 | printf("%d\t",p->list[i]->node_number); 120 | } 121 | printf("\n"); 122 | p=p->next; 123 | } 124 | printf("%d: ",p->node_number); 125 | for(i=0;p->list[i]!=NULL;i++) 126 | { 127 | printf("%d\t",p->list[i]->node_number); 128 | } 129 | printf("\n"); 130 | return 0; 131 | } 132 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at 500060720@stu.upes.ac.in. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /modules/Main.c: -------------------------------------------------------------------------------- 1 | //Header Files and Macros 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #define NODES 50 10 | #define INT_MAX 100000 11 | 12 | int n; //global variable for number of edges in the graph 13 | 14 | //Loading Function 15 | void loading() 16 | { 17 | int i; 18 | char ch; 19 | system("reset"); 20 | for(i=0;i<25000;i++) 21 | { 22 | printf("Loading Content: %d\n",i+1); 23 | } 24 | system("reset"); 25 | } 26 | 27 | //Prims Helper Function 28 | int isValidEdge(int u, int v, int* inMST) 29 | { 30 | if (u == v) 31 | return 0; 32 | if (inMST[u] == 0 && inMST[v] == 0) 33 | return 0; 34 | else if (inMST[u] == 1 && inMST[v] == 1) 35 | return 0; 36 | return 1; 37 | } 38 | 39 | void primMST(int cost[][50],int x) 40 | { 41 | clock_t start = clock(); 42 | int inMST[n]; 43 | 44 | // Include first vertex in MST 45 | inMST[0] = 1; 46 | 47 | // Keep adding edges while number of included 48 | // edges does not become V-1. 49 | int edge_count = 0, mincost = 0; 50 | while (edge_count < x - 1) { 51 | 52 | // Find minimum weight valid edge. 53 | int min = INT_MAX, a = -1, b = -1; 54 | for (int i = 0; i < x; i++) { 55 | for (int j = 0; j < x; j++) { 56 | if (cost[i][j] < min) { 57 | if (isValidEdge(i, j, inMST)) { 58 | min = cost[i][j]; 59 | a = i; 60 | b = j; 61 | } 62 | } 63 | } 64 | } 65 | if (a != -1 && b != -1 ) { 66 | printf("Edge %d:(%d, %d) cost: %d \n", 67 | edge_count++, a, b, min); 68 | mincost = mincost + min; 69 | inMST[b] = inMST[a] = 1; 70 | } 71 | } 72 | clock_t end = clock(); 73 | printf("\nMinimum cost= %d \n", mincost); 74 | double time = ((double) (end - start))/CLOCKS_PER_SEC; 75 | time=time*1000000; 76 | printf("Processing Time: %f MicroSeconds\n",time); 77 | } 78 | 79 | int parent[INT_MAX]; 80 | 81 | //Kruskals Helper Function 82 | // Find set of vertex i 83 | int find(int i) 84 | { 85 | while (parent[i] != i) 86 | i = parent[i]; 87 | return i; 88 | } 89 | 90 | //Kruskals Helper Function 91 | // Does union of i and j. It returns 92 | // false if i and j are already in same 93 | // set. 94 | void union1(int i, int j) 95 | { 96 | int a = find(i); 97 | int b = find(j); 98 | parent[a] = b; 99 | } 100 | 101 | // Finds MST using Kruskal's algorithm 102 | void kruskalMST(int cost[][50],int x) 103 | { 104 | clock_t start = clock(); 105 | int mincost = 0; // Cost of min MST. 106 | 107 | // Initialize sets of disjoint sets. 108 | for (int i = 0; i < x; i++) 109 | parent[i] = i; 110 | 111 | // Include minimum weight edges one by one 112 | int edge_count = 0; 113 | while (edge_count < x - 1) { 114 | int min = INT_MAX; int a = -1 ;int b = -1; 115 | for (int i = 0; i < x; i++) { 116 | for (int j = 0; j < x; j++) { 117 | if (find(i) != find(j) && cost[i][j] < min) { 118 | min = cost[i][j]; 119 | a = i; 120 | b = j; 121 | } 122 | } 123 | } 124 | 125 | union1(a, b); 126 | printf("Edge %d:(%d, %d) cost:%d \n", 127 | edge_count++, a, b, min); 128 | mincost += min; 129 | } 130 | clock_t end = clock(); 131 | printf("\nMinimum cost= %d \n", mincost); 132 | double time = ((double) (end - start))/CLOCKS_PER_SEC; 133 | time=time*1000000; 134 | printf("Processing Time: %f MicroSeconds\n",time); 135 | } 136 | 137 | //Random Number Generator 138 | float random_generator() 139 | { 140 | register int x = rand(); //Using register storage class for faster access 141 | //printf("%d",x); Yes every time new random integer is generated 142 | //How to convert any integer number into a float between 0 and 1 143 | //Divide the number by 10^(number of digits) 144 | int count=0,temp; 145 | temp=x; //temp holds x value because its going to change to 0 to count frequency of digits 146 | while(temp>0) 147 | { 148 | count++; 149 | temp=temp/10; 150 | } 151 | //printf("%d\n%d\n",x,count); 152 | temp = pow(10,count); //using same variable again to save memory 153 | float answer = (float)x/temp; 154 | //printf("%f\n",answer); 155 | return abs(answer); 156 | } 157 | 158 | //Adjancy List 159 | //N nodes -> 0 is V1, 1 is V2,,, k is Vk+1,,,, n-1 is Vn 160 | //Adjancy List ignoring loop, if connected with rest, then added in ordered fashion 161 | struct node 162 | { 163 | int node_number; 164 | struct node *next; //for linked list of structures 165 | struct node *list[20]; //for Adjancy list 166 | }; 167 | 168 | //PSO Function 169 | void PSO(int c[][50],int x) 170 | { 171 | clock_t start = clock(); 172 | int i,j; 173 | float cost[50][50]; 174 | for(i=0;id_type == DT_REG) 264 | { /* only deal with regular file */ 265 | const char *ext = strrchr(dir->d_name,'.'); 266 | if((!ext) || (ext == dir->d_name)) 267 | return 0; 268 | else { 269 | if(strcmp(ext, ".csv") == 0) 270 | return 1; 271 | } 272 | } 273 | return 0; 274 | } 275 | 276 | //Time calculator 277 | void time() 278 | { 279 | //clock_t is capable of calculating processor time and clock funcion is capable of returning the clock time since the program is started 280 | clock_t start = clock(); 281 | /* 282 | write the program for which you need to calculate the time used by cpu 283 | */ 284 | clock_t end = clock(); 285 | clock_t time = ((double) (end - start)) / CLOCKS_PER_SEC; //number of processor clock ticks per second is CLOCKS_PER_SEC 286 | printf("%ld\n",time); 287 | } 288 | 289 | //Module 4 290 | void readcsv(char f1[100]) 291 | { 292 | int i,j,kk,count; 293 | // Declare the file pointer 294 | FILE * filePointer; 295 | 296 | // Declare the variable for the data to be read from file 297 | char dataToBeRead[50]; 298 | int k = 50; 299 | int array[k][k]; 300 | // Open the existing file GfgTest.c using fopen() 301 | // in read mode using "r" attribute 302 | filePointer = fopen(f1, "r"); 303 | 304 | // Check if this filePointer is null 305 | // which maybe if the file does not exist 306 | if (filePointer == NULL) { 307 | system("reset"); 308 | printf("Selected file failed to open\n Exiting the code\n\n"); 309 | exit(1); 310 | } else { 311 | system("reset"); 312 | printf("The file is now opened.\n"); 313 | count = 0; 314 | //int k = 50; 315 | //int i,j; 316 | j=0; 317 | //char arr[50][50]; 318 | while (fgets(dataToBeRead, 50, filePointer) != NULL) { 319 | if (count == 0) { 320 | // First line of csv contains total number of nodes 321 | k = atoi(dataToBeRead); 322 | } else { 323 | int j = 0; 324 | int length = (int) strlen(dataToBeRead); 325 | int kk = 0; 326 | 327 | for (int i = 0; i < length - 1; i++) { 328 | if (dataToBeRead[i] != ',') { 329 | kk = kk * 10 + (dataToBeRead[i] - '0'); 330 | 331 | } else { 332 | array[count - 1][j] = kk; 333 | printf("%d \n", kk); 334 | kk = 0; 335 | j++; 336 | 337 | } 338 | } 339 | array[count - 1][j] = kk; 340 | printf("%d \n", kk); 341 | printf("\n"); 342 | 343 | } 344 | count++; 345 | } 346 | 347 | // Closing the file using fclose() 348 | fclose(filePointer); 349 | 350 | printf("Data successfully read from specified file\n"); 351 | printf("The file is now closed.\n"); 352 | for ( i = 0; i < k; i++) { 353 | for ( j = 0; j < k; j++) { 354 | printf("%d ", array[i][j]); 355 | } 356 | printf("\n"); 357 | } 358 | ////Adjancy Matrix to adjancy List 359 | node *ptr,*head,*p; 360 | n=k; 361 | k=0; 362 | int matrix[50][50]; 363 | node *list1[n]; 364 | for(i=0;inode_number)); 391 | ptr->node_number=k; 392 | k++; 393 | //ptr->list=NULL; 394 | ptr->next=NULL; 395 | list1[i]=(node*)malloc(sizeof(node)); 396 | for(j=0;j<20;j++) 397 | { 398 | list1[i]->list[j]=NULL; 399 | } 400 | if(i==0) 401 | { 402 | head=(node*)malloc(sizeof(node)); 403 | head=ptr; 404 | } 405 | else 406 | { 407 | p=head; 408 | while(p->next!=NULL) 409 | { 410 | p=p->next; 411 | } 412 | p->next=ptr; 413 | } 414 | list1[i]=ptr; 415 | } 416 | //////////////////////////////////////////////// 417 | //Display the Linked List 418 | p=head; 419 | //printf("%d\n",head->node_number); 420 | while(p->next!=NULL) 421 | { 422 | //printf("%d\n",ptr->node_number); 423 | p=p->next; 424 | } 425 | //printf("%d",list1[0]->node_number); 426 | ///////////////////////////////////////////////// 427 | //Create List 428 | p=head; 429 | while(p->next!=NULL) 430 | { 431 | //printf("Check 1\t"); 432 | j=0; 433 | k=p->node_number; 434 | k--; 435 | for(i=0;ilist[j++]=list1[i]; 442 | } 443 | } 444 | p=p->next; 445 | } 446 | //printf("Check4"); 447 | j=0; 448 | k=p->node_number; 449 | k--; 450 | for(i=0;ilist[j++]=list1[i]; 457 | } 458 | } 459 | ///////////////////////////////////////////////// 460 | //Display Adjancy List 461 | p=head; 462 | while(p->next!=NULL) 463 | { 464 | //printf("%d: ",p->node_number); 465 | for(i=0;p->list[i]!=NULL;i++) 466 | { 467 | // printf("%d\t",p->list[i]->node_number); 468 | } 469 | printf("\n"); 470 | p=p->next; 471 | } 472 | //printf("%d: ",p->node_number); 473 | for(i=0;p->list[i]!=NULL;i++) 474 | { 475 | // printf("%d\t",p->list[i]->node_number); 476 | } 477 | printf("\n"); 478 | } 479 | //system("reset"); 480 | } 481 | 482 | ///////////////////////////////////////MAIN FUNCTION/////////////////////////// 483 | int main() 484 | { 485 | srand(time(0)); //Random Number initialization irrespective of time 486 | loading(); 487 | int ch1,n,count; 488 | char f1[100]; 489 | printf("An efficient approach to optimize Network routing using Particle Swarm Intelligence\n\n"); 490 | printf("Press 1) Create new graph\n"); 491 | printf("Press 2) Use existing graph\n"); 492 | printf("Enter your choice: "); 493 | scanf("%d",&ch1); 494 | system("reset"); 495 | switch(ch1) 496 | { 497 | case 1: 498 | printf("User Creation of Template Network Graph\n"); 499 | printf("Enter Unique Name of the graph: "); 500 | scanf("%s",&f1); 501 | create_csv(f1); 502 | break; 503 | case 2: 504 | printf("Using the already present template files for Networking\n"); 505 | printf("Following are the existing .csv files in the current directory\n"); 506 | ///////////// to get the .csv files in current directory 507 | struct dirent **namelist; 508 | count=1; 509 | n = scandir(".", &namelist, parse_ext, alphasort); 510 | if (n < 0) { 511 | perror("scandir"); 512 | return 1; 513 | } 514 | else { 515 | while (n--) { 516 | printf("%d: %s\n",count, namelist[n]->d_name); 517 | count++; 518 | free(namelist[n]); 519 | } 520 | free(namelist); 521 | } 522 | /////////////////// 523 | printf("Enter name of the file you want to use: "); 524 | scanf("%s",&f1); 525 | break; 526 | default: printf("Wrong Choice! Exiting Code\n"); exit(1); 527 | } 528 | //Running Module 4 Read CSV -> For Reading the .csv file and creating a 2D array 529 | readcsv(f1); 530 | //printf("\n\nThanks for using our code!\n\n"); 531 | return 0; 532 | } 533 | -------------------------------------------------------------------------------- /pso.c: -------------------------------------------------------------------------------- 1 | //Header Files and Macros 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #define NODES 50 10 | #define INT_MAX 100000 11 | 12 | int n; //global variable for number of edges in the graph 13 | 14 | //Loading Function 15 | void loading() 16 | { 17 | int i; 18 | char ch; 19 | system("reset"); 20 | for(i=0;i<25000;i++) 21 | { 22 | printf("Loading Content: %d\n",i+1); 23 | } 24 | system("reset"); 25 | } 26 | 27 | //Prims Helper Function 28 | int isValidEdge(int u, int v, int* inMST) 29 | { 30 | if (u == v) 31 | return 0; 32 | if (inMST[u] == 0 && inMST[v] == 0) 33 | return 0; 34 | else if (inMST[u] == 1 && inMST[v] == 1) 35 | return 0; 36 | return 1; 37 | } 38 | 39 | void primMST(int cost[][50],int x) 40 | { 41 | clock_t start = clock(); 42 | int inMST[n]; 43 | 44 | // Include first vertex in MST 45 | inMST[0] = 1; 46 | 47 | // Keep adding edges while number of included 48 | // edges does not become V-1. 49 | int edge_count = 0, mincost = 0; 50 | while (edge_count < x - 1) { 51 | 52 | // Find minimum weight valid edge. 53 | int min = INT_MAX, a = -1, b = -1; 54 | for (int i = 0; i < x; i++) { 55 | for (int j = 0; j < x; j++) { 56 | if (cost[i][j] < min) { 57 | if (isValidEdge(i, j, inMST)) { 58 | min = cost[i][j]; 59 | a = i; 60 | b = j; 61 | } 62 | } 63 | } 64 | } 65 | if (a != -1 && b != -1 ) { 66 | printf("Edge %d:(%d, %d) cost: %d \n", 67 | edge_count++, a, b, min); 68 | mincost = mincost + min; 69 | inMST[b] = inMST[a] = 1; 70 | } 71 | } 72 | clock_t end = clock(); 73 | printf("\nMinimum cost= %d \n", mincost); 74 | double time = ((double) (end - start))/CLOCKS_PER_SEC; 75 | time=time*1000000; 76 | printf("Processing Time: %f MicroSeconds\n",time); 77 | } 78 | 79 | int parent[INT_MAX]; 80 | 81 | //Kruskals Helper Function 82 | // Find set of vertex i 83 | int find(int i) 84 | { 85 | while (parent[i] != i) 86 | i = parent[i]; 87 | return i; 88 | } 89 | 90 | //Kruskals Helper Function 91 | // Does union of i and j. It returns 92 | // false if i and j are already in same 93 | // set. 94 | void union1(int i, int j) 95 | { 96 | int a = find(i); 97 | int b = find(j); 98 | parent[a] = b; 99 | } 100 | 101 | // Finds MST using Kruskal's algorithm 102 | void kruskalMST(int cost[][50],int x) 103 | { 104 | clock_t start = clock(); 105 | int mincost = 0; // Cost of min MST. 106 | 107 | // Initialize sets of disjoint sets. 108 | for (int i = 0; i < x; i++) 109 | parent[i] = i; 110 | 111 | // Include minimum weight edges one by one 112 | int edge_count = 0; 113 | while (edge_count < x - 1) { 114 | int min = INT_MAX; int a = -1 ;int b = -1; 115 | for (int i = 0; i < x; i++) { 116 | for (int j = 0; j < x; j++) { 117 | if (find(i) != find(j) && cost[i][j] < min) { 118 | min = cost[i][j]; 119 | a = i; 120 | b = j; 121 | } 122 | } 123 | } 124 | 125 | union1(a, b); 126 | printf("Edge %d:(%d, %d) cost:%d \n", 127 | edge_count++, a, b, min); 128 | mincost += min; 129 | } 130 | clock_t end = clock(); 131 | printf("\nMinimum cost= %d \n", mincost); 132 | double time = ((double) (end - start))/CLOCKS_PER_SEC; 133 | time=time*1000000; 134 | printf("Processing Time: %f MicroSeconds\n",time); 135 | } 136 | 137 | //Random Number Generator 138 | float random_generator() 139 | { 140 | register int x = rand(); //Using register storage class for faster access 141 | //printf("%d",x); Yes every time new random integer is generated 142 | //How to convert any integer number into a float between 0 and 1 143 | //Divide the number by 10^(number of digits) 144 | int count=0,temp; 145 | temp=x; //temp holds x value because its going to change to 0 to count frequency of digits 146 | while(temp>0) 147 | { 148 | count++; 149 | temp=temp/10; 150 | } 151 | //printf("%d\n%d\n",x,count); 152 | temp = pow(10,count); //using same variable again to save memory 153 | float answer = (float)x/temp; 154 | //printf("%f\n",answer); 155 | return abs(answer); 156 | } 157 | 158 | //Adjancy List 159 | //N nodes -> 0 is V1, 1 is V2,,, k is Vk+1,,,, n-1 is Vn 160 | //Adjancy List ignoring loop, if connected with rest, then added in ordered fashion 161 | struct node 162 | { 163 | int node_number; 164 | struct node *next; //for linked list of structures 165 | struct node *list[20]; //for Adjancy list 166 | }; 167 | 168 | //PSO Function 169 | void PSO(int c[][50],int x) 170 | { 171 | clock_t start = clock(); 172 | int i,j; 173 | float cost[50][50]; 174 | for(i=0;id_type == DT_REG) 264 | { /* only deal with regular file */ 265 | const char *ext = strrchr(dir->d_name,'.'); 266 | if((!ext) || (ext == dir->d_name)) 267 | return 0; 268 | else { 269 | if(strcmp(ext, ".csv") == 0) 270 | return 1; 271 | } 272 | } 273 | return 0; 274 | } 275 | 276 | //Time calculator 277 | void time() 278 | { 279 | //clock_t is capable of calculating processor time and clock funcion is capable of returning the clock time since the program is started 280 | clock_t start = clock(); 281 | /* 282 | write the program for which you need to calculate the time used by cpu 283 | */ 284 | clock_t end = clock(); 285 | clock_t time = ((double) (end - start)) / CLOCKS_PER_SEC; //number of processor clock ticks per second is CLOCKS_PER_SEC 286 | printf("%ld\n",time); 287 | } 288 | 289 | //Module 4 290 | void readcsv(char f1[100]) 291 | { 292 | int i,j,kk,count; 293 | // Declare the file pointer 294 | FILE * filePointer; 295 | 296 | // Declare the variable for the data to be read from file 297 | char dataToBeRead[50]; 298 | int k = 50; 299 | int array[k][k]; 300 | // Open the existing file GfgTest.c using fopen() 301 | // in read mode using "r" attribute 302 | filePointer = fopen(f1, "r"); 303 | 304 | // Check if this filePointer is null 305 | // which maybe if the file does not exist 306 | if (filePointer == NULL) { 307 | system("reset"); 308 | printf("Selected file failed to open\n Exiting the code\n\n"); 309 | exit(1); 310 | } else { 311 | system("reset"); 312 | printf("The file is now opened.\n"); 313 | count = 0; 314 | //int k = 50; 315 | //int i,j; 316 | j=0; 317 | //char arr[50][50]; 318 | while (fgets(dataToBeRead, 50, filePointer) != NULL) { 319 | if (count == 0) { 320 | // First line of csv contains total number of nodes 321 | k = atoi(dataToBeRead); 322 | } else { 323 | int j = 0; 324 | int length = (int) strlen(dataToBeRead); 325 | int kk = 0; 326 | 327 | for (int i = 0; i < length - 1; i++) { 328 | if (dataToBeRead[i] != ',') { 329 | kk = kk * 10 + (dataToBeRead[i] - '0'); 330 | 331 | } else { 332 | array[count - 1][j] = kk; 333 | printf("%d \n", kk); 334 | kk = 0; 335 | j++; 336 | 337 | } 338 | } 339 | array[count - 1][j] = kk; 340 | printf("%d \n", kk); 341 | printf("\n"); 342 | 343 | } 344 | count++; 345 | } 346 | 347 | // Closing the file using fclose() 348 | fclose(filePointer); 349 | 350 | printf("Data successfully read from specified file\n"); 351 | printf("The file is now closed.\n"); 352 | for ( i = 0; i < k; i++) { 353 | for ( j = 0; j < k; j++) { 354 | printf("%d ", array[i][j]); 355 | } 356 | printf("\n"); 357 | } 358 | ////Adjancy Matrix to adjancy List 359 | node *ptr,*head,*p; 360 | n=k; 361 | k=0; 362 | int matrix[50][50]; 363 | node *list1[n]; 364 | for(i=0;inode_number)); 405 | ptr->node_number=k; 406 | k++; 407 | //ptr->list=NULL; 408 | ptr->next=NULL; 409 | list1[i]=(node*)malloc(sizeof(node)); 410 | for(j=0;j<20;j++) 411 | { 412 | list1[i]->list[j]=NULL; 413 | } 414 | if(i==0) 415 | { 416 | head=(node*)malloc(sizeof(node)); 417 | head=ptr; 418 | } 419 | else 420 | { 421 | p=head; 422 | while(p->next!=NULL) 423 | { 424 | p=p->next; 425 | } 426 | p->next=ptr; 427 | } 428 | list1[i]=ptr; 429 | } 430 | //////////////////////////////////////////////// 431 | //Display the Linked List 432 | p=head; 433 | //printf("%d\n",head->node_number); 434 | while(p->next!=NULL) 435 | { 436 | //printf("%d\n",ptr->node_number); 437 | p=p->next; 438 | } 439 | //printf("%d",list1[0]->node_number); 440 | ///////////////////////////////////////////////// 441 | //Create List 442 | p=head; 443 | while(p->next!=NULL) 444 | { 445 | //printf("Check 1\t"); 446 | j=0; 447 | k=p->node_number; 448 | k--; 449 | for(i=0;ilist[j++]=list1[i]; 456 | } 457 | } 458 | p=p->next; 459 | } 460 | //printf("Check4"); 461 | j=0; 462 | k=p->node_number; 463 | k--; 464 | for(i=0;ilist[j++]=list1[i]; 471 | } 472 | } 473 | ///////////////////////////////////////////////// 474 | //Display Adjancy List 475 | p=head; 476 | while(p->next!=NULL) 477 | { 478 | //printf("%d: ",p->node_number); 479 | for(i=0;p->list[i]!=NULL;i++) 480 | { 481 | // printf("%d\t",p->list[i]->node_number); 482 | } 483 | printf("\n"); 484 | p=p->next; 485 | } 486 | //printf("%d: ",p->node_number); 487 | for(i=0;p->list[i]!=NULL;i++) 488 | { 489 | // printf("%d\t",p->list[i]->node_number); 490 | } 491 | printf("\n"); 492 | } 493 | //system("reset"); 494 | } 495 | 496 | ///////////////////////////////////////MAIN FUNCTION/////////////////////////// 497 | int main() 498 | { 499 | srand(time(0)); //Random Number initialization irrespective of time 500 | loading(); 501 | int ch1,n,count; 502 | char f1[100]; 503 | printf("An efficient approach to optimize Network routing using Particle Swarm Intelligence\n\n"); 504 | printf("Press 1) Create new graph\n"); 505 | printf("Press 2) Use existing graph\n"); 506 | printf("Enter your choice: "); 507 | scanf("%d",&ch1); 508 | system("reset"); 509 | switch(ch1) 510 | { 511 | case 1: 512 | printf("User Creation of Template Network Graph\n"); 513 | printf("Enter Unique Name of the graph: "); 514 | scanf("%s",&f1); 515 | create_csv(f1); 516 | break; 517 | case 2: 518 | printf("Using the already present template files for Networking\n"); 519 | printf("Following are the existing .csv files in the current directory\n"); 520 | ///////////// to get the .csv files in current directory 521 | struct dirent **namelist; 522 | count=1; 523 | n = scandir(".", &namelist, parse_ext, alphasort); 524 | if (n < 0) { 525 | perror("scandir"); 526 | return 1; 527 | } 528 | else { 529 | while (n--) { 530 | printf("%d: %s\n",count, namelist[n]->d_name); 531 | count++; 532 | free(namelist[n]); 533 | } 534 | free(namelist); 535 | } 536 | /////////////////// 537 | printf("Enter name of the file you want to use: "); 538 | scanf("%s",&f1); 539 | break; 540 | default: printf("Wrong Choice! Exiting Code\n"); exit(1); 541 | } 542 | //Running Module 4 Read CSV -> For Reading the .csv file and creating a 2D array 543 | readcsv(f1); 544 | printf("\n\nThanks for using our code!\n\n"); 545 | return 0; 546 | } 547 | -------------------------------------------------------------------------------- /models/FlowChart_BasicPSO.mdj: -------------------------------------------------------------------------------- 1 | { 2 | "_type": "Project", 3 | "_id": "AAAAAAFF+h6SjaM2Hec=", 4 | "name": "Untitled", 5 | "ownedElements": [ 6 | { 7 | "_type": "UMLModel", 8 | "_id": "AAAAAAFF+qBWK6M3Z8Y=", 9 | "_parent": { 10 | "$ref": "AAAAAAFF+h6SjaM2Hec=" 11 | }, 12 | "name": "Model", 13 | "ownedElements": [ 14 | { 15 | "_type": "UMLClassDiagram", 16 | "_id": "AAAAAAFF+qBtyKM79qY=", 17 | "_parent": { 18 | "$ref": "AAAAAAFF+qBWK6M3Z8Y=" 19 | }, 20 | "name": "Main", 21 | "defaultDiagram": true 22 | } 23 | ] 24 | }, 25 | { 26 | "_type": "FCFlowchart", 27 | "_id": "AAAAAAFtSEIo/wWB2uY=", 28 | "_parent": { 29 | "$ref": "AAAAAAFF+h6SjaM2Hec=" 30 | }, 31 | "name": "Flowchart1", 32 | "ownedElements": [ 33 | { 34 | "_type": "FCFlowchartDiagram", 35 | "_id": "AAAAAAFtSEIo/wWCLv0=", 36 | "_parent": { 37 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 38 | }, 39 | "name": "FlowchartDiagram1", 40 | "ownedViews": [ 41 | { 42 | "_type": "FCProcessView", 43 | "_id": "AAAAAAFtSEJhSAWIY20=", 44 | "_parent": { 45 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 46 | }, 47 | "model": { 48 | "$ref": "AAAAAAFtSEJhSAWGcwA=" 49 | }, 50 | "subViews": [ 51 | { 52 | "_type": "LabelView", 53 | "_id": "AAAAAAFtSEJhSAWJWFQ=", 54 | "_parent": { 55 | "$ref": "AAAAAAFtSEJhSAWIY20=" 56 | }, 57 | "font": "Arial;13;0", 58 | "left": 298, 59 | "top": 74, 60 | "width": 108, 61 | "height": 13, 62 | "text": "Initialize Particles", 63 | "wordWrap": true 64 | } 65 | ], 66 | "font": "Arial;13;0", 67 | "left": 288, 68 | "top": 64, 69 | "width": 128, 70 | "height": 33, 71 | "nameLabel": { 72 | "$ref": "AAAAAAFtSEJhSAWJWFQ=" 73 | } 74 | }, 75 | { 76 | "_type": "FCProcessView", 77 | "_id": "AAAAAAFtSEKfgAWRS70=", 78 | "_parent": { 79 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 80 | }, 81 | "model": { 82 | "$ref": "AAAAAAFtSEKfgAWPhd4=" 83 | }, 84 | "subViews": [ 85 | { 86 | "_type": "LabelView", 87 | "_id": "AAAAAAFtSEKfgAWSl9M=", 88 | "_parent": { 89 | "$ref": "AAAAAAFtSEKfgAWRS70=" 90 | }, 91 | "font": "Arial;13;0", 92 | "left": 242, 93 | "top": 122, 94 | "width": 236, 95 | "height": 13, 96 | "text": "Calculate Fitness value for each particle", 97 | "wordWrap": true 98 | } 99 | ], 100 | "font": "Arial;13;0", 101 | "left": 232, 102 | "top": 112, 103 | "width": 256, 104 | "height": 40, 105 | "nameLabel": { 106 | "$ref": "AAAAAAFtSEKfgAWSl9M=" 107 | } 108 | }, 109 | { 110 | "_type": "FCDecisionView", 111 | "_id": "AAAAAAFtSEa4QQWaOuc=", 112 | "_parent": { 113 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 114 | }, 115 | "model": { 116 | "$ref": "AAAAAAFtSEa4QQWYhcQ=" 117 | }, 118 | "subViews": [ 119 | { 120 | "_type": "LabelView", 121 | "_id": "AAAAAAFtSEa4QQWbkgE=", 122 | "_parent": { 123 | "$ref": "AAAAAAFtSEa4QQWaOuc=" 124 | }, 125 | "font": "Arial;13;0", 126 | "left": 300.25, 127 | "top": 194, 128 | "width": 88.5, 129 | "height": 52, 130 | "text": "Is current fitness value better than pbest?", 131 | "wordWrap": true 132 | } 133 | ], 134 | "font": "Arial;13;0", 135 | "left": 256, 136 | "top": 168, 137 | "width": 177, 138 | "height": 104, 139 | "nameLabel": { 140 | "$ref": "AAAAAAFtSEa4QQWbkgE=" 141 | } 142 | }, 143 | { 144 | "_type": "FCProcessView", 145 | "_id": "AAAAAAFtSEeLsQWnYGA=", 146 | "_parent": { 147 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 148 | }, 149 | "model": { 150 | "$ref": "AAAAAAFtSEeLsQWlHGI=" 151 | }, 152 | "subViews": [ 153 | { 154 | "_type": "LabelView", 155 | "_id": "AAAAAAFtSEeLsQWoaag=", 156 | "_parent": { 157 | "$ref": "AAAAAAFtSEeLsQWnYGA=" 158 | }, 159 | "font": "Arial;13;0", 160 | "left": 122, 161 | "top": 258, 162 | "width": 92, 163 | "height": 39, 164 | "text": "Assign current fitness as new pbest", 165 | "wordWrap": true 166 | } 167 | ], 168 | "font": "Arial;13;0", 169 | "left": 112, 170 | "top": 248, 171 | "width": 112, 172 | "height": 59, 173 | "nameLabel": { 174 | "$ref": "AAAAAAFtSEeLsQWoaag=" 175 | } 176 | }, 177 | { 178 | "_type": "FCProcessView", 179 | "_id": "AAAAAAFtSEfLMQWwyaY=", 180 | "_parent": { 181 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 182 | }, 183 | "model": { 184 | "$ref": "AAAAAAFtSEfLMQWu6cU=" 185 | }, 186 | "subViews": [ 187 | { 188 | "_type": "LabelView", 189 | "_id": "AAAAAAFtSEfLMQWxCLs=", 190 | "_parent": { 191 | "$ref": "AAAAAAFtSEfLMQWwyaY=" 192 | }, 193 | "font": "Arial;13;0", 194 | "left": 538, 195 | "top": 274, 196 | "width": 125, 197 | "height": 13, 198 | "text": "Keep previous pbest", 199 | "wordWrap": true 200 | } 201 | ], 202 | "font": "Arial;13;0", 203 | "left": 528, 204 | "top": 264, 205 | "width": 145, 206 | "height": 33, 207 | "nameLabel": { 208 | "$ref": "AAAAAAFtSEfLMQWxCLs=" 209 | } 210 | }, 211 | { 212 | "_type": "FCProcessView", 213 | "_id": "AAAAAAFtSEjJewW+LTo=", 214 | "_parent": { 215 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 216 | }, 217 | "model": { 218 | "$ref": "AAAAAAFtSEjJcwW8xRs=" 219 | }, 220 | "subViews": [ 221 | { 222 | "_type": "LabelView", 223 | "_id": "AAAAAAFtSEjJewW/Orw=", 224 | "_parent": { 225 | "$ref": "AAAAAAFtSEjJewW+LTo=" 226 | }, 227 | "font": "Arial;13;0", 228 | "left": 282, 229 | "top": 330, 230 | "width": 140, 231 | "height": 39, 232 | "text": "update minimal pbest as gbest for global fitness", 233 | "wordWrap": true 234 | } 235 | ], 236 | "font": "Arial;13;0", 237 | "left": 272, 238 | "top": 320, 239 | "width": 160, 240 | "height": 59, 241 | "nameLabel": { 242 | "$ref": "AAAAAAFtSEjJewW/Orw=" 243 | } 244 | }, 245 | { 246 | "_type": "FCProcessView", 247 | "_id": "AAAAAAFtSEkVGAXHxOY=", 248 | "_parent": { 249 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 250 | }, 251 | "model": { 252 | "$ref": "AAAAAAFtSEkVFgXF/vE=" 253 | }, 254 | "subViews": [ 255 | { 256 | "_type": "LabelView", 257 | "_id": "AAAAAAFtSEkVGAXIrrI=", 258 | "_parent": { 259 | "$ref": "AAAAAAFtSEkVGAXHxOY=" 260 | }, 261 | "font": "Arial;13;0", 262 | "left": 290, 263 | "top": 402, 264 | "width": 125, 265 | "height": 26, 266 | "text": "calculate velocity of each particle", 267 | "wordWrap": true 268 | } 269 | ], 270 | "font": "Arial;13;0", 271 | "left": 280, 272 | "top": 392, 273 | "width": 145, 274 | "height": 46, 275 | "nameLabel": { 276 | "$ref": "AAAAAAFtSEkVGAXIrrI=" 277 | } 278 | }, 279 | { 280 | "_type": "FCProcessView", 281 | "_id": "AAAAAAFtSEpByAXcns8=", 282 | "_parent": { 283 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 284 | }, 285 | "model": { 286 | "$ref": "AAAAAAFtSEpByAXaX6Q=" 287 | }, 288 | "subViews": [ 289 | { 290 | "_type": "LabelView", 291 | "_id": "AAAAAAFtSEpByAXdShA=", 292 | "_parent": { 293 | "$ref": "AAAAAAFtSEpByAXcns8=" 294 | }, 295 | "font": "Arial;13;0", 296 | "left": 274, 297 | "top": 466, 298 | "width": 157, 299 | "height": 39, 300 | "text": "Use each particle velocity to update data in data values", 301 | "wordWrap": true 302 | } 303 | ], 304 | "font": "Arial;13;0", 305 | "left": 264, 306 | "top": 456, 307 | "width": 177, 308 | "height": 59, 309 | "nameLabel": { 310 | "$ref": "AAAAAAFtSEpByAXdShA=" 311 | } 312 | }, 313 | { 314 | "_type": "FCTerminatorView", 315 | "_id": "AAAAAAFtSEreWQXlG18=", 316 | "_parent": { 317 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 318 | }, 319 | "model": { 320 | "$ref": "AAAAAAFtSEreWQXjC1s=" 321 | }, 322 | "subViews": [ 323 | { 324 | "_type": "LabelView", 325 | "_id": "AAAAAAFtSEreWQXm4KI=", 326 | "_parent": { 327 | "$ref": "AAAAAAFtSEreWQXlG18=" 328 | }, 329 | "font": "Arial;13;0", 330 | "left": 322, 331 | "top": 26, 332 | "width": 53, 333 | "height": 13, 334 | "text": "Start", 335 | "wordWrap": true 336 | } 337 | ], 338 | "font": "Arial;13;0", 339 | "left": 312, 340 | "top": 16, 341 | "width": 73, 342 | "height": 33, 343 | "nameLabel": { 344 | "$ref": "AAAAAAFtSEreWQXm4KI=" 345 | } 346 | }, 347 | { 348 | "_type": "FCTerminatorView", 349 | "_id": "AAAAAAFtSEsHFQXv3mU=", 350 | "_parent": { 351 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 352 | }, 353 | "model": { 354 | "$ref": "AAAAAAFtSEsHCgXtRnA=" 355 | }, 356 | "subViews": [ 357 | { 358 | "_type": "LabelView", 359 | "_id": "AAAAAAFtSEsHFQXwwTg=", 360 | "_parent": { 361 | "$ref": "AAAAAAFtSEsHFQXv3mU=" 362 | }, 363 | "font": "Arial;13;0", 364 | "left": 570, 365 | "top": 562, 366 | "width": 68.63720703125, 367 | "height": 13, 368 | "text": "End", 369 | "wordWrap": true 370 | } 371 | ], 372 | "font": "Arial;13;0", 373 | "left": 560, 374 | "top": 552, 375 | "width": 88.63720703125, 376 | "height": 56, 377 | "nameLabel": { 378 | "$ref": "AAAAAAFtSEsHFQXwwTg=" 379 | } 380 | }, 381 | { 382 | "_type": "FCDecisionView", 383 | "_id": "AAAAAAFtSEtQMgX5TPQ=", 384 | "_parent": { 385 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 386 | }, 387 | "model": { 388 | "$ref": "AAAAAAFtSEtQJAX3TwY=" 389 | }, 390 | "subViews": [ 391 | { 392 | "_type": "LabelView", 393 | "_id": "AAAAAAFtSEtQMgX6KXo=", 394 | "_parent": { 395 | "$ref": "AAAAAAFtSEtQMgX5TPQ=" 396 | }, 397 | "font": "Arial;13;0", 398 | "left": 324.542236328125, 399 | "top": 562, 400 | "width": 57.08447265625, 401 | "height": 52, 402 | "text": "Target or Maximum value reached", 403 | "wordWrap": true 404 | } 405 | ], 406 | "font": "Arial;13;0", 407 | "left": 296, 408 | "top": 536, 409 | "width": 114.1689453125, 410 | "height": 104, 411 | "nameLabel": { 412 | "$ref": "AAAAAAFtSEtQMgX6KXo=" 413 | } 414 | }, 415 | { 416 | "_type": "FCFlowView", 417 | "_id": "AAAAAAFtSEvEaAYFJoE=", 418 | "_parent": { 419 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 420 | }, 421 | "model": { 422 | "$ref": "AAAAAAFtSEvEaAYD0ss=" 423 | }, 424 | "subViews": [ 425 | { 426 | "_type": "EdgeLabelView", 427 | "_id": "AAAAAAFtSEvEaAYGbLE=", 428 | "_parent": { 429 | "$ref": "AAAAAAFtSEvEaAYFJoE=" 430 | }, 431 | "model": { 432 | "$ref": "AAAAAAFtSEvEaAYD0ss=" 433 | }, 434 | "font": "Arial;13;0", 435 | "left": 474, 436 | "top": 563, 437 | "width": 21.20751953125, 438 | "height": 13, 439 | "alpha": 1.5707963267948966, 440 | "distance": 15, 441 | "hostEdge": { 442 | "$ref": "AAAAAAFtSEvEaAYFJoE=" 443 | }, 444 | "edgePosition": 1, 445 | "text": "Yes" 446 | } 447 | ], 448 | "font": "Arial;13;0", 449 | "head": { 450 | "$ref": "AAAAAAFtSEsHFQXv3mU=" 451 | }, 452 | "tail": { 453 | "$ref": "AAAAAAFtSEtQMgX5TPQ=" 454 | }, 455 | "lineStyle": 2, 456 | "points": "409:584;560:584", 457 | "nameLabel": { 458 | "$ref": "AAAAAAFtSEvEaAYGbLE=" 459 | } 460 | }, 461 | { 462 | "_type": "FCFlowView", 463 | "_id": "AAAAAAFtSEvkbQYPagY=", 464 | "_parent": { 465 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 466 | }, 467 | "model": { 468 | "$ref": "AAAAAAFtSEvkbQYNkEg=" 469 | }, 470 | "subViews": [ 471 | { 472 | "_type": "EdgeLabelView", 473 | "_id": "AAAAAAFtSEvkbQYQL0o=", 474 | "_parent": { 475 | "$ref": "AAAAAAFtSEvkbQYPagY=" 476 | }, 477 | "model": { 478 | "$ref": "AAAAAAFtSEvkbQYNkEg=" 479 | }, 480 | "font": "Arial;13;0", 481 | "left": 65, 482 | "top": 325, 483 | "width": 16.6181640625, 484 | "height": 13, 485 | "alpha": 1.5707963267948966, 486 | "distance": 15, 487 | "hostEdge": { 488 | "$ref": "AAAAAAFtSEvkbQYPagY=" 489 | }, 490 | "edgePosition": 1, 491 | "text": "No" 492 | } 493 | ], 494 | "font": "Arial;13;0", 495 | "head": { 496 | "$ref": "AAAAAAFtSEJhSAWIY20=" 497 | }, 498 | "tail": { 499 | "$ref": "AAAAAAFtSEtQMgX5TPQ=" 500 | }, 501 | "lineStyle": 2, 502 | "points": "296:584;88:584;88:80;288:80", 503 | "nameLabel": { 504 | "$ref": "AAAAAAFtSEvkbQYQL0o=" 505 | } 506 | }, 507 | { 508 | "_type": "FCFlowView", 509 | "_id": "AAAAAAFtSE5i8gZHlcU=", 510 | "_parent": { 511 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 512 | }, 513 | "model": { 514 | "$ref": "AAAAAAFtSE5i8gZFrwY=" 515 | }, 516 | "subViews": [ 517 | { 518 | "_type": "EdgeLabelView", 519 | "_id": "AAAAAAFtSE5i8gZINFo=", 520 | "_parent": { 521 | "$ref": "AAAAAAFtSE5i8gZHlcU=" 522 | }, 523 | "model": { 524 | "$ref": "AAAAAAFtSE5i8gZFrwY=" 525 | }, 526 | "visible": false, 527 | "font": "Arial;13;0", 528 | "left": 363, 529 | "top": 49, 530 | "height": 13, 531 | "alpha": 1.5707963267948966, 532 | "distance": 15, 533 | "hostEdge": { 534 | "$ref": "AAAAAAFtSE5i8gZHlcU=" 535 | }, 536 | "edgePosition": 1 537 | } 538 | ], 539 | "font": "Arial;13;0", 540 | "head": { 541 | "$ref": "AAAAAAFtSEJhSAWIY20=" 542 | }, 543 | "tail": { 544 | "$ref": "AAAAAAFtSEreWQXlG18=" 545 | }, 546 | "lineStyle": 2, 547 | "points": "349:48;349:64", 548 | "nameLabel": { 549 | "$ref": "AAAAAAFtSE5i8gZINFo=" 550 | } 551 | }, 552 | { 553 | "_type": "FCFlowView", 554 | "_id": "AAAAAAFtSE52CAZQJkE=", 555 | "_parent": { 556 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 557 | }, 558 | "model": { 559 | "$ref": "AAAAAAFtSE52CAZOuvE=" 560 | }, 561 | "subViews": [ 562 | { 563 | "_type": "EdgeLabelView", 564 | "_id": "AAAAAAFtSE52CAZRoYU=", 565 | "_parent": { 566 | "$ref": "AAAAAAFtSE52CAZQJkE=" 567 | }, 568 | "model": { 569 | "$ref": "AAAAAAFtSE52CAZOuvE=" 570 | }, 571 | "visible": false, 572 | "font": "Arial;13;0", 573 | "left": 368, 574 | "top": 97, 575 | "height": 13, 576 | "alpha": 1.5707963267948966, 577 | "distance": 15, 578 | "hostEdge": { 579 | "$ref": "AAAAAAFtSE52CAZQJkE=" 580 | }, 581 | "edgePosition": 1 582 | } 583 | ], 584 | "font": "Arial;13;0", 585 | "head": { 586 | "$ref": "AAAAAAFtSEKfgAWRS70=" 587 | }, 588 | "tail": { 589 | "$ref": "AAAAAAFtSEJhSAWIY20=" 590 | }, 591 | "lineStyle": 2, 592 | "points": "354:96;354:112", 593 | "nameLabel": { 594 | "$ref": "AAAAAAFtSE52CAZRoYU=" 595 | } 596 | }, 597 | { 598 | "_type": "FCFlowView", 599 | "_id": "AAAAAAFtSE6J6wZZ1j0=", 600 | "_parent": { 601 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 602 | }, 603 | "model": { 604 | "$ref": "AAAAAAFtSE6J4QZXQlM=" 605 | }, 606 | "subViews": [ 607 | { 608 | "_type": "EdgeLabelView", 609 | "_id": "AAAAAAFtSE6J6wZaOjU=", 610 | "_parent": { 611 | "$ref": "AAAAAAFtSE6J6wZZ1j0=" 612 | }, 613 | "model": { 614 | "$ref": "AAAAAAFtSE6J4QZXQlM=" 615 | }, 616 | "visible": false, 617 | "font": "Arial;13;0", 618 | "left": 358, 619 | "top": 152, 620 | "height": 13, 621 | "alpha": 1.5707963267948966, 622 | "distance": 15, 623 | "hostEdge": { 624 | "$ref": "AAAAAAFtSE6J6wZZ1j0=" 625 | }, 626 | "edgePosition": 1 627 | } 628 | ], 629 | "font": "Arial;13;0", 630 | "head": { 631 | "$ref": "AAAAAAFtSEa4QQWaOuc=" 632 | }, 633 | "tail": { 634 | "$ref": "AAAAAAFtSEKfgAWRS70=" 635 | }, 636 | "lineStyle": 2, 637 | "points": "344:151;344:168", 638 | "nameLabel": { 639 | "$ref": "AAAAAAFtSE6J6wZaOjU=" 640 | } 641 | }, 642 | { 643 | "_type": "FCFlowView", 644 | "_id": "AAAAAAFtSE7UxQZm/2E=", 645 | "_parent": { 646 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 647 | }, 648 | "model": { 649 | "$ref": "AAAAAAFtSE7UwAZkZ48=" 650 | }, 651 | "subViews": [ 652 | { 653 | "_type": "EdgeLabelView", 654 | "_id": "AAAAAAFtSE7UxQZnI30=", 655 | "_parent": { 656 | "$ref": "AAAAAAFtSE7UxQZm/2E=" 657 | }, 658 | "model": { 659 | "$ref": "AAAAAAFtSE7UwAZkZ48=" 660 | }, 661 | "font": "Arial;13;0", 662 | "left": 216, 663 | "top": 200, 664 | "width": 21.20751953125, 665 | "height": 13, 666 | "alpha": 2.850134629180986, 667 | "distance": 10.44030650891055, 668 | "hostEdge": { 669 | "$ref": "AAAAAAFtSE7UxQZm/2E=" 670 | }, 671 | "edgePosition": 1, 672 | "text": "Yes" 673 | } 674 | ], 675 | "font": "Arial;13;0", 676 | "head": { 677 | "$ref": "AAAAAAFtSEeLsQWnYGA=" 678 | }, 679 | "tail": { 680 | "$ref": "AAAAAAFtSEa4QQWaOuc=" 681 | }, 682 | "lineStyle": 2, 683 | "points": "256:216;223:216;223:248", 684 | "nameLabel": { 685 | "$ref": "AAAAAAFtSE7UxQZnI30=" 686 | } 687 | }, 688 | { 689 | "_type": "FCFlowView", 690 | "_id": "AAAAAAFtSE8LNAZxM6I=", 691 | "_parent": { 692 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 693 | }, 694 | "model": { 695 | "$ref": "AAAAAAFtSE8LJQZvb4o=" 696 | }, 697 | "subViews": [ 698 | { 699 | "_type": "EdgeLabelView", 700 | "_id": "AAAAAAFtSE8LNAZySRk=", 701 | "_parent": { 702 | "$ref": "AAAAAAFtSE8LNAZxM6I=" 703 | }, 704 | "model": { 705 | "$ref": "AAAAAAFtSE8LJQZvb4o=" 706 | }, 707 | "font": "Arial;13;0", 708 | "left": 534, 709 | "top": 209, 710 | "width": 16.6181640625, 711 | "height": 13, 712 | "alpha": 1.5707963267948966, 713 | "distance": 15, 714 | "hostEdge": { 715 | "$ref": "AAAAAAFtSE8LNAZxM6I=" 716 | }, 717 | "edgePosition": 1, 718 | "text": "No" 719 | } 720 | ], 721 | "font": "Arial;13;0", 722 | "head": { 723 | "$ref": "AAAAAAFtSEfLMQWwyaY=" 724 | }, 725 | "tail": { 726 | "$ref": "AAAAAAFtSEa4QQWaOuc=" 727 | }, 728 | "lineStyle": 2, 729 | "points": "432:216;528:216;528:264", 730 | "nameLabel": { 731 | "$ref": "AAAAAAFtSE8LNAZySRk=" 732 | } 733 | }, 734 | { 735 | "_type": "FCFlowView", 736 | "_id": "AAAAAAFtSE9KwwaGcyQ=", 737 | "_parent": { 738 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 739 | }, 740 | "model": { 741 | "$ref": "AAAAAAFtSE9KwwaEP3Y=" 742 | }, 743 | "subViews": [ 744 | { 745 | "_type": "EdgeLabelView", 746 | "_id": "AAAAAAFtSE9KwwaHPyE=", 747 | "_parent": { 748 | "$ref": "AAAAAAFtSE9KwwaGcyQ=" 749 | }, 750 | "model": { 751 | "$ref": "AAAAAAFtSE9KwwaEP3Y=" 752 | }, 753 | "visible": false, 754 | "font": "Arial;13;0", 755 | "left": 365, 756 | "top": 378, 757 | "height": 13, 758 | "alpha": 1.5707963267948966, 759 | "distance": 15, 760 | "hostEdge": { 761 | "$ref": "AAAAAAFtSE9KwwaGcyQ=" 762 | }, 763 | "edgePosition": 1 764 | } 765 | ], 766 | "font": "Arial;13;0", 767 | "head": { 768 | "$ref": "AAAAAAFtSEkVGAXHxOY=" 769 | }, 770 | "tail": { 771 | "$ref": "AAAAAAFtSEjJewW+LTo=" 772 | }, 773 | "lineStyle": 2, 774 | "points": "351:378;351:392", 775 | "nameLabel": { 776 | "$ref": "AAAAAAFtSE9KwwaHPyE=" 777 | } 778 | }, 779 | { 780 | "_type": "FCFlowView", 781 | "_id": "AAAAAAFtSE9ahwaPMKk=", 782 | "_parent": { 783 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 784 | }, 785 | "model": { 786 | "$ref": "AAAAAAFtSE9ahQaN//E=" 787 | }, 788 | "subViews": [ 789 | { 790 | "_type": "EdgeLabelView", 791 | "_id": "AAAAAAFtSE9ahwaQPW4=", 792 | "_parent": { 793 | "$ref": "AAAAAAFtSE9ahwaPMKk=" 794 | }, 795 | "model": { 796 | "$ref": "AAAAAAFtSE9ahQaN//E=" 797 | }, 798 | "visible": false, 799 | "font": "Arial;13;0", 800 | "left": 366, 801 | "top": 439, 802 | "height": 13, 803 | "alpha": 1.5707963267948966, 804 | "distance": 15, 805 | "hostEdge": { 806 | "$ref": "AAAAAAFtSE9ahwaPMKk=" 807 | }, 808 | "edgePosition": 1 809 | } 810 | ], 811 | "font": "Arial;13;0", 812 | "head": { 813 | "$ref": "AAAAAAFtSEpByAXcns8=" 814 | }, 815 | "tail": { 816 | "$ref": "AAAAAAFtSEkVGAXHxOY=" 817 | }, 818 | "lineStyle": 2, 819 | "points": "352:437;352:456", 820 | "nameLabel": { 821 | "$ref": "AAAAAAFtSE9ahwaQPW4=" 822 | } 823 | }, 824 | { 825 | "_type": "FCFlowView", 826 | "_id": "AAAAAAFtSE9tbgaY24I=", 827 | "_parent": { 828 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 829 | }, 830 | "model": { 831 | "$ref": "AAAAAAFtSE9tawaWFGo=" 832 | }, 833 | "subViews": [ 834 | { 835 | "_type": "EdgeLabelView", 836 | "_id": "AAAAAAFtSE9tbgaZ5sk=", 837 | "_parent": { 838 | "$ref": "AAAAAAFtSE9tbgaY24I=" 839 | }, 840 | "model": { 841 | "$ref": "AAAAAAFtSE9tawaWFGo=" 842 | }, 843 | "visible": false, 844 | "font": "Arial;13;0", 845 | "left": 366, 846 | "top": 518, 847 | "height": 13, 848 | "alpha": 1.5707963267948966, 849 | "distance": 15, 850 | "hostEdge": { 851 | "$ref": "AAAAAAFtSE9tbgaY24I=" 852 | }, 853 | "edgePosition": 1 854 | } 855 | ], 856 | "font": "Arial;13;0", 857 | "head": { 858 | "$ref": "AAAAAAFtSEtQMgX5TPQ=" 859 | }, 860 | "tail": { 861 | "$ref": "AAAAAAFtSEpByAXcns8=" 862 | }, 863 | "lineStyle": 2, 864 | "points": "352:514;352:536", 865 | "nameLabel": { 866 | "$ref": "AAAAAAFtSE9tbgaZ5sk=" 867 | } 868 | }, 869 | { 870 | "_type": "FCFlowView", 871 | "_id": "AAAAAAFtSE/nOQamZRg=", 872 | "_parent": { 873 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 874 | }, 875 | "model": { 876 | "$ref": "AAAAAAFtSE/nKgakhEc=" 877 | }, 878 | "subViews": [ 879 | { 880 | "_type": "EdgeLabelView", 881 | "_id": "AAAAAAFtSE/nOQan8so=", 882 | "_parent": { 883 | "$ref": "AAAAAAFtSE/nOQamZRg=" 884 | }, 885 | "model": { 886 | "$ref": "AAAAAAFtSE/nKgakhEc=" 887 | }, 888 | "visible": false, 889 | "font": "Arial;13;0", 890 | "left": 223, 891 | "top": 299, 892 | "height": 13, 893 | "alpha": 1.5707963267948966, 894 | "distance": 15, 895 | "hostEdge": { 896 | "$ref": "AAAAAAFtSE/nOQamZRg=" 897 | }, 898 | "edgePosition": 1 899 | } 900 | ], 901 | "font": "Arial;13;0", 902 | "head": { 903 | "$ref": "AAAAAAFtSEjJewW+LTo=" 904 | }, 905 | "tail": { 906 | "$ref": "AAAAAAFtSEeLsQWnYGA=" 907 | }, 908 | "lineStyle": 2, 909 | "points": "223:306;223:320;272:320", 910 | "nameLabel": { 911 | "$ref": "AAAAAAFtSE/nOQan8so=" 912 | } 913 | }, 914 | { 915 | "_type": "FCFlowView", 916 | "_id": "AAAAAAFtSE/6vAavevk=", 917 | "_parent": { 918 | "$ref": "AAAAAAFtSEIo/wWCLv0=" 919 | }, 920 | "model": { 921 | "$ref": "AAAAAAFtSE/6vAatD40=" 922 | }, 923 | "subViews": [ 924 | { 925 | "_type": "EdgeLabelView", 926 | "_id": "AAAAAAFtSE/6vAawyD8=", 927 | "_parent": { 928 | "$ref": "AAAAAAFtSE/6vAavevk=" 929 | }, 930 | "model": { 931 | "$ref": "AAAAAAFtSE/6vAatD40=" 932 | }, 933 | "visible": false, 934 | "font": "Arial;13;0", 935 | "left": 541, 936 | "top": 336, 937 | "height": 13, 938 | "alpha": 1.5707963267948966, 939 | "distance": 15, 940 | "hostEdge": { 941 | "$ref": "AAAAAAFtSE/6vAavevk=" 942 | }, 943 | "edgePosition": 1 944 | } 945 | ], 946 | "font": "Arial;13;0", 947 | "head": { 948 | "$ref": "AAAAAAFtSEjJewW+LTo=" 949 | }, 950 | "tail": { 951 | "$ref": "AAAAAAFtSEfLMQWwyaY=" 952 | }, 953 | "lineStyle": 2, 954 | "points": "542:296;542:327;431:327", 955 | "nameLabel": { 956 | "$ref": "AAAAAAFtSE/6vAawyD8=" 957 | } 958 | } 959 | ] 960 | }, 961 | { 962 | "_type": "FCProcess", 963 | "_id": "AAAAAAFtSEJhSAWGcwA=", 964 | "_parent": { 965 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 966 | }, 967 | "name": "Initialize Particles", 968 | "ownedElements": [ 969 | { 970 | "_type": "FCFlow", 971 | "_id": "AAAAAAFtSE52CAZOuvE=", 972 | "_parent": { 973 | "$ref": "AAAAAAFtSEJhSAWGcwA=" 974 | }, 975 | "source": { 976 | "$ref": "AAAAAAFtSEJhSAWGcwA=" 977 | }, 978 | "target": { 979 | "$ref": "AAAAAAFtSEKfgAWPhd4=" 980 | } 981 | } 982 | ] 983 | }, 984 | { 985 | "_type": "FCProcess", 986 | "_id": "AAAAAAFtSEKfgAWPhd4=", 987 | "_parent": { 988 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 989 | }, 990 | "name": "Calculate Fitness value for each particle", 991 | "ownedElements": [ 992 | { 993 | "_type": "FCFlow", 994 | "_id": "AAAAAAFtSE6J4QZXQlM=", 995 | "_parent": { 996 | "$ref": "AAAAAAFtSEKfgAWPhd4=" 997 | }, 998 | "source": { 999 | "$ref": "AAAAAAFtSEKfgAWPhd4=" 1000 | }, 1001 | "target": { 1002 | "$ref": "AAAAAAFtSEa4QQWYhcQ=" 1003 | } 1004 | } 1005 | ] 1006 | }, 1007 | { 1008 | "_type": "FCDecision", 1009 | "_id": "AAAAAAFtSEa4QQWYhcQ=", 1010 | "_parent": { 1011 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 1012 | }, 1013 | "name": "Is current fitness value better than pbest?", 1014 | "ownedElements": [ 1015 | { 1016 | "_type": "FCFlow", 1017 | "_id": "AAAAAAFtSE7UwAZkZ48=", 1018 | "_parent": { 1019 | "$ref": "AAAAAAFtSEa4QQWYhcQ=" 1020 | }, 1021 | "name": "Yes", 1022 | "source": { 1023 | "$ref": "AAAAAAFtSEa4QQWYhcQ=" 1024 | }, 1025 | "target": { 1026 | "$ref": "AAAAAAFtSEeLsQWlHGI=" 1027 | } 1028 | }, 1029 | { 1030 | "_type": "FCFlow", 1031 | "_id": "AAAAAAFtSE8LJQZvb4o=", 1032 | "_parent": { 1033 | "$ref": "AAAAAAFtSEa4QQWYhcQ=" 1034 | }, 1035 | "name": "No", 1036 | "source": { 1037 | "$ref": "AAAAAAFtSEa4QQWYhcQ=" 1038 | }, 1039 | "target": { 1040 | "$ref": "AAAAAAFtSEfLMQWu6cU=" 1041 | } 1042 | } 1043 | ] 1044 | }, 1045 | { 1046 | "_type": "FCProcess", 1047 | "_id": "AAAAAAFtSEeLsQWlHGI=", 1048 | "_parent": { 1049 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 1050 | }, 1051 | "name": "Assign current fitness as new pbest", 1052 | "ownedElements": [ 1053 | { 1054 | "_type": "FCFlow", 1055 | "_id": "AAAAAAFtSE/nKgakhEc=", 1056 | "_parent": { 1057 | "$ref": "AAAAAAFtSEeLsQWlHGI=" 1058 | }, 1059 | "source": { 1060 | "$ref": "AAAAAAFtSEeLsQWlHGI=" 1061 | }, 1062 | "target": { 1063 | "$ref": "AAAAAAFtSEjJcwW8xRs=" 1064 | } 1065 | } 1066 | ] 1067 | }, 1068 | { 1069 | "_type": "FCProcess", 1070 | "_id": "AAAAAAFtSEfLMQWu6cU=", 1071 | "_parent": { 1072 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 1073 | }, 1074 | "name": "Keep previous pbest", 1075 | "ownedElements": [ 1076 | { 1077 | "_type": "FCFlow", 1078 | "_id": "AAAAAAFtSE/6vAatD40=", 1079 | "_parent": { 1080 | "$ref": "AAAAAAFtSEfLMQWu6cU=" 1081 | }, 1082 | "source": { 1083 | "$ref": "AAAAAAFtSEfLMQWu6cU=" 1084 | }, 1085 | "target": { 1086 | "$ref": "AAAAAAFtSEjJcwW8xRs=" 1087 | } 1088 | } 1089 | ] 1090 | }, 1091 | { 1092 | "_type": "FCProcess", 1093 | "_id": "AAAAAAFtSEjJcwW8xRs=", 1094 | "_parent": { 1095 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 1096 | }, 1097 | "name": "update minimal pbest as gbest for global fitness", 1098 | "ownedElements": [ 1099 | { 1100 | "_type": "FCFlow", 1101 | "_id": "AAAAAAFtSE9KwwaEP3Y=", 1102 | "_parent": { 1103 | "$ref": "AAAAAAFtSEjJcwW8xRs=" 1104 | }, 1105 | "source": { 1106 | "$ref": "AAAAAAFtSEjJcwW8xRs=" 1107 | }, 1108 | "target": { 1109 | "$ref": "AAAAAAFtSEkVFgXF/vE=" 1110 | } 1111 | } 1112 | ] 1113 | }, 1114 | { 1115 | "_type": "FCProcess", 1116 | "_id": "AAAAAAFtSEkVFgXF/vE=", 1117 | "_parent": { 1118 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 1119 | }, 1120 | "name": "calculate velocity of each particle", 1121 | "ownedElements": [ 1122 | { 1123 | "_type": "FCFlow", 1124 | "_id": "AAAAAAFtSE9ahQaN//E=", 1125 | "_parent": { 1126 | "$ref": "AAAAAAFtSEkVFgXF/vE=" 1127 | }, 1128 | "source": { 1129 | "$ref": "AAAAAAFtSEkVFgXF/vE=" 1130 | }, 1131 | "target": { 1132 | "$ref": "AAAAAAFtSEpByAXaX6Q=" 1133 | } 1134 | } 1135 | ] 1136 | }, 1137 | { 1138 | "_type": "FCProcess", 1139 | "_id": "AAAAAAFtSEpByAXaX6Q=", 1140 | "_parent": { 1141 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 1142 | }, 1143 | "name": "Use each particle velocity to update data in data values", 1144 | "ownedElements": [ 1145 | { 1146 | "_type": "FCFlow", 1147 | "_id": "AAAAAAFtSE9tawaWFGo=", 1148 | "_parent": { 1149 | "$ref": "AAAAAAFtSEpByAXaX6Q=" 1150 | }, 1151 | "source": { 1152 | "$ref": "AAAAAAFtSEpByAXaX6Q=" 1153 | }, 1154 | "target": { 1155 | "$ref": "AAAAAAFtSEtQJAX3TwY=" 1156 | } 1157 | } 1158 | ] 1159 | }, 1160 | { 1161 | "_type": "FCTerminator", 1162 | "_id": "AAAAAAFtSEreWQXjC1s=", 1163 | "_parent": { 1164 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 1165 | }, 1166 | "name": "Start", 1167 | "ownedElements": [ 1168 | { 1169 | "_type": "FCFlow", 1170 | "_id": "AAAAAAFtSE5i8gZFrwY=", 1171 | "_parent": { 1172 | "$ref": "AAAAAAFtSEreWQXjC1s=" 1173 | }, 1174 | "source": { 1175 | "$ref": "AAAAAAFtSEreWQXjC1s=" 1176 | }, 1177 | "target": { 1178 | "$ref": "AAAAAAFtSEJhSAWGcwA=" 1179 | } 1180 | } 1181 | ] 1182 | }, 1183 | { 1184 | "_type": "FCTerminator", 1185 | "_id": "AAAAAAFtSEsHCgXtRnA=", 1186 | "_parent": { 1187 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 1188 | }, 1189 | "name": "End" 1190 | }, 1191 | { 1192 | "_type": "FCDecision", 1193 | "_id": "AAAAAAFtSEtQJAX3TwY=", 1194 | "_parent": { 1195 | "$ref": "AAAAAAFtSEIo/wWB2uY=" 1196 | }, 1197 | "name": "Target or Maximum value reached", 1198 | "ownedElements": [ 1199 | { 1200 | "_type": "FCFlow", 1201 | "_id": "AAAAAAFtSEvEaAYD0ss=", 1202 | "_parent": { 1203 | "$ref": "AAAAAAFtSEtQJAX3TwY=" 1204 | }, 1205 | "name": "Yes", 1206 | "source": { 1207 | "$ref": "AAAAAAFtSEtQJAX3TwY=" 1208 | }, 1209 | "target": { 1210 | "$ref": "AAAAAAFtSEsHCgXtRnA=" 1211 | } 1212 | }, 1213 | { 1214 | "_type": "FCFlow", 1215 | "_id": "AAAAAAFtSEvkbQYNkEg=", 1216 | "_parent": { 1217 | "$ref": "AAAAAAFtSEtQJAX3TwY=" 1218 | }, 1219 | "name": "No", 1220 | "source": { 1221 | "$ref": "AAAAAAFtSEtQJAX3TwY=" 1222 | }, 1223 | "target": { 1224 | "$ref": "AAAAAAFtSEJhSAWGcwA=" 1225 | } 1226 | } 1227 | ] 1228 | } 1229 | ] 1230 | } 1231 | ] 1232 | } -------------------------------------------------------------------------------- /models/Flowchart_CustomPSO.mdj: -------------------------------------------------------------------------------- 1 | { 2 | "_type": "Project", 3 | "_id": "AAAAAAFF+h6SjaM2Hec=", 4 | "name": "Untitled", 5 | "ownedElements": [ 6 | { 7 | "_type": "UMLModel", 8 | "_id": "AAAAAAFF+qBWK6M3Z8Y=", 9 | "_parent": { 10 | "$ref": "AAAAAAFF+h6SjaM2Hec=" 11 | }, 12 | "name": "Model", 13 | "ownedElements": [ 14 | { 15 | "_type": "UMLClassDiagram", 16 | "_id": "AAAAAAFF+qBtyKM79qY=", 17 | "_parent": { 18 | "$ref": "AAAAAAFF+qBWK6M3Z8Y=" 19 | }, 20 | "name": "Main", 21 | "defaultDiagram": true 22 | } 23 | ] 24 | }, 25 | { 26 | "_type": "FCFlowchart", 27 | "_id": "AAAAAAFtSFK89NXlHU0=", 28 | "_parent": { 29 | "$ref": "AAAAAAFF+h6SjaM2Hec=" 30 | }, 31 | "name": "Flowchart1", 32 | "ownedElements": [ 33 | { 34 | "_type": "FCFlowchartDiagram", 35 | "_id": "AAAAAAFtSFK89NXm3SU=", 36 | "_parent": { 37 | "$ref": "AAAAAAFtSFK89NXlHU0=" 38 | }, 39 | "name": "FlowchartDiagram1", 40 | "ownedViews": [ 41 | { 42 | "_type": "FCTerminatorView", 43 | "_id": "AAAAAAFtSFU5/9Xsq+E=", 44 | "_parent": { 45 | "$ref": "AAAAAAFtSFK89NXm3SU=" 46 | }, 47 | "model": { 48 | "$ref": "AAAAAAFtSFU5/9XqHK8=" 49 | }, 50 | "subViews": [ 51 | { 52 | "_type": "LabelView", 53 | "_id": "AAAAAAFtSFU5/9XtY+w=", 54 | "_parent": { 55 | "$ref": "AAAAAAFtSFU5/9Xsq+E=" 56 | }, 57 | "font": "Arial;13;0", 58 | "left": 330, 59 | "top": 26, 60 | "width": 45, 61 | "height": 13, 62 | "text": "Start", 63 | "wordWrap": true 64 | } 65 | ], 66 | "font": "Arial;13;0", 67 | "left": 320, 68 | "top": 16, 69 | "width": 65, 70 | "height": 40, 71 | "nameLabel": { 72 | "$ref": "AAAAAAFtSFU5/9XtY+w=" 73 | } 74 | }, 75 | { 76 | "_type": "FCProcessView", 77 | "_id": "AAAAAAFtSFV3M9X4BS4=", 78 | "_parent": { 79 | "$ref": "AAAAAAFtSFK89NXm3SU=" 80 | }, 81 | "model": { 82 | "$ref": "AAAAAAFtSFV3M9X2dVo=" 83 | }, 84 | "subViews": [ 85 | { 86 | "_type": "LabelView", 87 | "_id": "AAAAAAFtSFV3M9X5yIQ=", 88 | "_parent": { 89 | "$ref": "AAAAAAFtSFV3M9X4BS4=" 90 | }, 91 | "font": "Arial;13;0", 92 | "left": 258, 93 | "top": 82, 94 | "width": 189, 95 | "height": 26, 96 | "text": "Calculate pbest location for each particle", 97 | "wordWrap": true 98 | } 99 | ], 100 | "font": "Arial;13;0", 101 | "left": 248, 102 | "top": 72, 103 | "width": 209, 104 | "height": 46, 105 | "nameLabel": { 106 | "$ref": "AAAAAAFtSFV3M9X5yIQ=" 107 | } 108 | }, 109 | { 110 | "_type": "FCProcessView", 111 | "_id": "AAAAAAFtSFYPDdYH5ds=", 112 | "_parent": { 113 | "$ref": "AAAAAAFtSFK89NXm3SU=" 114 | }, 115 | "model": { 116 | "$ref": "AAAAAAFtSFYPDdYFkII=" 117 | }, 118 | "subViews": [ 119 | { 120 | "_type": "LabelView", 121 | "_id": "AAAAAAFtSFYPDdYIvgo=", 122 | "_parent": { 123 | "$ref": "AAAAAAFtSFYPDdYH5ds=" 124 | }, 125 | "font": "Arial;13;0", 126 | "left": 258, 127 | "top": 146, 128 | "width": 204, 129 | "height": 26, 130 | "text": "Loop over counter variable to find number of iterations", 131 | "wordWrap": true 132 | } 133 | ], 134 | "font": "Arial;13;0", 135 | "left": 248, 136 | "top": 136, 137 | "width": 224, 138 | "height": 46, 139 | "nameLabel": { 140 | "$ref": "AAAAAAFtSFYPDdYIvgo=" 141 | } 142 | }, 143 | { 144 | "_type": "FCProcessView", 145 | "_id": "AAAAAAFtSFaAdNYSmOI=", 146 | "_parent": { 147 | "$ref": "AAAAAAFtSFK89NXm3SU=" 148 | }, 149 | "model": { 150 | "$ref": "AAAAAAFtSFaAatYQmcA=" 151 | }, 152 | "subViews": [ 153 | { 154 | "_type": "LabelView", 155 | "_id": "AAAAAAFtSFaAdNYTuPA=", 156 | "_parent": { 157 | "$ref": "AAAAAAFtSFaAdNYSmOI=" 158 | }, 159 | "font": "Arial;13;0", 160 | "left": 178, 161 | "top": 210, 162 | "width": 372, 163 | "height": 26, 164 | "text": "Update particle location, weight and velocity using a fuzzy parameter", 165 | "wordWrap": true 166 | } 167 | ], 168 | "font": "Arial;13;0", 169 | "left": 168, 170 | "top": 200, 171 | "width": 392, 172 | "height": 46, 173 | "nameLabel": { 174 | "$ref": "AAAAAAFtSFaAdNYTuPA=" 175 | } 176 | }, 177 | { 178 | "_type": "FCDecisionView", 179 | "_id": "AAAAAAFtSFdHptYbE3A=", 180 | "_parent": { 181 | "$ref": "AAAAAAFtSFK89NXm3SU=" 182 | }, 183 | "model": { 184 | "$ref": "AAAAAAFtSFdHnNYZjjw=" 185 | }, 186 | "subViews": [ 187 | { 188 | "_type": "LabelView", 189 | "_id": "AAAAAAFtSFdHptYc8sE=", 190 | "_parent": { 191 | "$ref": "AAAAAAFtSFdHptYbE3A=" 192 | }, 193 | "font": "Arial;13;0", 194 | "left": 318.542236328125, 195 | "top": 280.25, 196 | "width": 93.08447265625, 197 | "height": 48.5, 198 | "text": "Is current value better than pbest?", 199 | "wordWrap": true 200 | } 201 | ], 202 | "font": "Arial;13;0", 203 | "left": 272, 204 | "top": 256, 205 | "width": 186.1689453125, 206 | "height": 97, 207 | "nameLabel": { 208 | "$ref": "AAAAAAFtSFdHptYc8sE=" 209 | } 210 | }, 211 | { 212 | "_type": "FCProcessView", 213 | "_id": "AAAAAAFtSFfRdtYnmiA=", 214 | "_parent": { 215 | "$ref": "AAAAAAFtSFK89NXm3SU=" 216 | }, 217 | "model": { 218 | "$ref": "AAAAAAFtSFfRdtYlWN0=" 219 | }, 220 | "subViews": [ 221 | { 222 | "_type": "LabelView", 223 | "_id": "AAAAAAFtSFfRdtYoJLc=", 224 | "_parent": { 225 | "$ref": "AAAAAAFtSFfRdtYnmiA=" 226 | }, 227 | "font": "Arial;13;0", 228 | "left": 82, 229 | "top": 314, 230 | "width": 124, 231 | "height": 26, 232 | "text": "Assign current fitness as pbest", 233 | "wordWrap": true 234 | } 235 | ], 236 | "font": "Arial;13;0", 237 | "left": 72, 238 | "top": 304, 239 | "width": 144, 240 | "height": 46, 241 | "nameLabel": { 242 | "$ref": "AAAAAAFtSFfRdtYoJLc=" 243 | } 244 | }, 245 | { 246 | "_type": "FCProcessView", 247 | "_id": "AAAAAAFtSFgEeNYwS8I=", 248 | "_parent": { 249 | "$ref": "AAAAAAFtSFK89NXm3SU=" 250 | }, 251 | "model": { 252 | "$ref": "AAAAAAFtSFgEeNYuAa8=" 253 | }, 254 | "subViews": [ 255 | { 256 | "_type": "LabelView", 257 | "_id": "AAAAAAFtSFgEeNYxXHA=", 258 | "_parent": { 259 | "$ref": "AAAAAAFtSFgEeNYwS8I=" 260 | }, 261 | "font": "Arial;13;0", 262 | "left": 562, 263 | "top": 314, 264 | "width": 124, 265 | "height": 13, 266 | "text": "Keep previous pbest", 267 | "wordWrap": true 268 | } 269 | ], 270 | "font": "Arial;13;0", 271 | "left": 552, 272 | "top": 304, 273 | "width": 144, 274 | "height": 40, 275 | "nameLabel": { 276 | "$ref": "AAAAAAFtSFgEeNYxXHA=" 277 | } 278 | }, 279 | { 280 | "_type": "FCProcessView", 281 | "_id": "AAAAAAFtSFhDXtY59mw=", 282 | "_parent": { 283 | "$ref": "AAAAAAFtSFK89NXm3SU=" 284 | }, 285 | "model": { 286 | "$ref": "AAAAAAFtSFhDXtY36u0=" 287 | }, 288 | "subViews": [ 289 | { 290 | "_type": "LabelView", 291 | "_id": "AAAAAAFtSFhDbNY6Ekk=", 292 | "_parent": { 293 | "$ref": "AAAAAAFtSFhDXtY59mw=" 294 | }, 295 | "font": "Arial;13;0", 296 | "left": 298, 297 | "top": 378, 298 | "width": 140, 299 | "height": 26, 300 | "text": "Assign minimal pbest as gbest", 301 | "wordWrap": true 302 | } 303 | ], 304 | "font": "Arial;13;0", 305 | "left": 288, 306 | "top": 368, 307 | "width": 160, 308 | "height": 46, 309 | "nameLabel": { 310 | "$ref": "AAAAAAFtSFhDbNY6Ekk=" 311 | } 312 | }, 313 | { 314 | "_type": "FCProcessView", 315 | "_id": "AAAAAAFtSFiaV9ZDwb8=", 316 | "_parent": { 317 | "$ref": "AAAAAAFtSFK89NXm3SU=" 318 | }, 319 | "model": { 320 | "$ref": "AAAAAAFtSFiaV9ZBPYY=" 321 | }, 322 | "subViews": [ 323 | { 324 | "_type": "LabelView", 325 | "_id": "AAAAAAFtSFiaV9ZEr40=", 326 | "_parent": { 327 | "$ref": "AAAAAAFtSFiaV9ZDwb8=" 328 | }, 329 | "font": "Arial;13;0", 330 | "left": 250, 331 | "top": 434, 332 | "width": 236, 333 | "height": 13, 334 | "text": "Calculate velocity for each particle", 335 | "wordWrap": true 336 | } 337 | ], 338 | "font": "Arial;13;0", 339 | "left": 240, 340 | "top": 424, 341 | "width": 256, 342 | "height": 33, 343 | "nameLabel": { 344 | "$ref": "AAAAAAFtSFiaV9ZEr40=" 345 | } 346 | }, 347 | { 348 | "_type": "FCProcessView", 349 | "_id": "AAAAAAFtSFm7VdZmfMs=", 350 | "_parent": { 351 | "$ref": "AAAAAAFtSFK89NXm3SU=" 352 | }, 353 | "model": { 354 | "$ref": "AAAAAAFtSFm7TNZkEWY=" 355 | }, 356 | "subViews": [ 357 | { 358 | "_type": "LabelView", 359 | "_id": "AAAAAAFtSFm7VdZn+GQ=", 360 | "_parent": { 361 | "$ref": "AAAAAAFtSFm7VdZmfMs=" 362 | }, 363 | "font": "Arial;13;0", 364 | "left": 250, 365 | "top": 482, 366 | "width": 228, 367 | "height": 26, 368 | "text": "Use each particle velocity to update data values", 369 | "wordWrap": true 370 | } 371 | ], 372 | "font": "Arial;13;0", 373 | "left": 240, 374 | "top": 472, 375 | "width": 248, 376 | "height": 46, 377 | "nameLabel": { 378 | "$ref": "AAAAAAFtSFm7VdZn+GQ=" 379 | } 380 | }, 381 | { 382 | "_type": "FCDecisionView", 383 | "_id": "AAAAAAFtSFoNDNZvfZs=", 384 | "_parent": { 385 | "$ref": "AAAAAAFtSFK89NXm3SU=" 386 | }, 387 | "model": { 388 | "$ref": "AAAAAAFtSFoNCdZti/U=" 389 | }, 390 | "subViews": [ 391 | { 392 | "_type": "LabelView", 393 | "_id": "AAAAAAFtSFoNDNZwwpA=", 394 | "_parent": { 395 | "$ref": "AAAAAAFtSFoNDNZvfZs=" 396 | }, 397 | "font": "Arial;13;0", 398 | "left": 332.542236328125, 399 | "top": 554, 400 | "width": 57.08447265625, 401 | "height": 52, 402 | "text": "Target or maximum iterations reached", 403 | "wordWrap": true 404 | } 405 | ], 406 | "font": "Arial;13;0", 407 | "left": 304, 408 | "top": 528, 409 | "width": 114.1689453125, 410 | "height": 104, 411 | "nameLabel": { 412 | "$ref": "AAAAAAFtSFoNDNZwwpA=" 413 | } 414 | }, 415 | { 416 | "_type": "FCFlowView", 417 | "_id": "AAAAAAFtSFq8LNZ9Ppw=", 418 | "_parent": { 419 | "$ref": "AAAAAAFtSFK89NXm3SU=" 420 | }, 421 | "model": { 422 | "$ref": "AAAAAAFtSFq8KNZ7kNs=" 423 | }, 424 | "subViews": [ 425 | { 426 | "_type": "EdgeLabelView", 427 | "_id": "AAAAAAFtSFq8LNZ+ghs=", 428 | "_parent": { 429 | "$ref": "AAAAAAFtSFq8LNZ9Ppw=" 430 | }, 431 | "model": { 432 | "$ref": "AAAAAAFtSFq8KNZ7kNs=" 433 | }, 434 | "visible": false, 435 | "font": "Arial;13;0", 436 | "left": 366, 437 | "top": 56, 438 | "height": 13, 439 | "alpha": 1.5707963267948966, 440 | "distance": 15, 441 | "hostEdge": { 442 | "$ref": "AAAAAAFtSFq8LNZ9Ppw=" 443 | }, 444 | "edgePosition": 1 445 | } 446 | ], 447 | "font": "Arial;13;0", 448 | "head": { 449 | "$ref": "AAAAAAFtSFV3M9X4BS4=" 450 | }, 451 | "tail": { 452 | "$ref": "AAAAAAFtSFU5/9Xsq+E=" 453 | }, 454 | "lineStyle": 2, 455 | "points": "352:55;352:72", 456 | "nameLabel": { 457 | "$ref": "AAAAAAFtSFq8LNZ+ghs=" 458 | } 459 | }, 460 | { 461 | "_type": "FCFlowView", 462 | "_id": "AAAAAAFtSFrOYdaGW8s=", 463 | "_parent": { 464 | "$ref": "AAAAAAFtSFK89NXm3SU=" 465 | }, 466 | "model": { 467 | "$ref": "AAAAAAFtSFrOYdaEzZM=" 468 | }, 469 | "subViews": [ 470 | { 471 | "_type": "EdgeLabelView", 472 | "_id": "AAAAAAFtSFrOYdaH3Ks=", 473 | "_parent": { 474 | "$ref": "AAAAAAFtSFrOYdaGW8s=" 475 | }, 476 | "model": { 477 | "$ref": "AAAAAAFtSFrOYdaEzZM=" 478 | }, 479 | "visible": false, 480 | "font": "Arial;13;0", 481 | "left": 369, 482 | "top": 119, 483 | "height": 13, 484 | "alpha": 1.5707963267948966, 485 | "distance": 15, 486 | "hostEdge": { 487 | "$ref": "AAAAAAFtSFrOYdaGW8s=" 488 | }, 489 | "edgePosition": 1 490 | } 491 | ], 492 | "font": "Arial;13;0", 493 | "head": { 494 | "$ref": "AAAAAAFtSFYPDdYH5ds=" 495 | }, 496 | "tail": { 497 | "$ref": "AAAAAAFtSFV3M9X4BS4=" 498 | }, 499 | "lineStyle": 2, 500 | "points": "355:117;355:136", 501 | "nameLabel": { 502 | "$ref": "AAAAAAFtSFrOYdaH3Ks=" 503 | } 504 | }, 505 | { 506 | "_type": "FCFlowView", 507 | "_id": "AAAAAAFtSFrehNaP2o0=", 508 | "_parent": { 509 | "$ref": "AAAAAAFtSFK89NXm3SU=" 510 | }, 511 | "model": { 512 | "$ref": "AAAAAAFtSFrehNaN4Lg=" 513 | }, 514 | "subViews": [ 515 | { 516 | "_type": "EdgeLabelView", 517 | "_id": "AAAAAAFtSFrehNaQwIs=", 518 | "_parent": { 519 | "$ref": "AAAAAAFtSFrehNaP2o0=" 520 | }, 521 | "model": { 522 | "$ref": "AAAAAAFtSFrehNaN4Lg=" 523 | }, 524 | "visible": false, 525 | "font": "Arial;13;0", 526 | "left": 374, 527 | "top": 183, 528 | "height": 13, 529 | "alpha": 1.5707963267948966, 530 | "distance": 15, 531 | "hostEdge": { 532 | "$ref": "AAAAAAFtSFrehNaP2o0=" 533 | }, 534 | "edgePosition": 1 535 | } 536 | ], 537 | "font": "Arial;13;0", 538 | "head": { 539 | "$ref": "AAAAAAFtSFaAdNYSmOI=" 540 | }, 541 | "tail": { 542 | "$ref": "AAAAAAFtSFYPDdYH5ds=" 543 | }, 544 | "lineStyle": 2, 545 | "points": "360:181;360:200", 546 | "nameLabel": { 547 | "$ref": "AAAAAAFtSFrehNaQwIs=" 548 | } 549 | }, 550 | { 551 | "_type": "FCFlowView", 552 | "_id": "AAAAAAFtSFrtf9aYtuo=", 553 | "_parent": { 554 | "$ref": "AAAAAAFtSFK89NXm3SU=" 555 | }, 556 | "model": { 557 | "$ref": "AAAAAAFtSFrtf9aWytE=" 558 | }, 559 | "subViews": [ 560 | { 561 | "_type": "EdgeLabelView", 562 | "_id": "AAAAAAFtSFrtf9aZOpM=", 563 | "_parent": { 564 | "$ref": "AAAAAAFtSFrtf9aYtuo=" 565 | }, 566 | "model": { 567 | "$ref": "AAAAAAFtSFrtf9aWytE=" 568 | }, 569 | "visible": false, 570 | "font": "Arial;13;0", 571 | "left": 377, 572 | "top": 243, 573 | "height": 13, 574 | "alpha": 1.5707963267948966, 575 | "distance": 15, 576 | "hostEdge": { 577 | "$ref": "AAAAAAFtSFrtf9aYtuo=" 578 | }, 579 | "edgePosition": 1 580 | } 581 | ], 582 | "font": "Arial;13;0", 583 | "head": { 584 | "$ref": "AAAAAAFtSFdHptYbE3A=" 585 | }, 586 | "tail": { 587 | "$ref": "AAAAAAFtSFaAdNYSmOI=" 588 | }, 589 | "lineStyle": 2, 590 | "points": "363:245;363:256", 591 | "nameLabel": { 592 | "$ref": "AAAAAAFtSFrtf9aZOpM=" 593 | } 594 | }, 595 | { 596 | "_type": "FCFlowView", 597 | "_id": "AAAAAAFtSFstCdav3n0=", 598 | "_parent": { 599 | "$ref": "AAAAAAFtSFK89NXm3SU=" 600 | }, 601 | "model": { 602 | "$ref": "AAAAAAFtSFstCdatkUc=" 603 | }, 604 | "subViews": [ 605 | { 606 | "_type": "EdgeLabelView", 607 | "_id": "AAAAAAFtSFstCdawaBE=", 608 | "_parent": { 609 | "$ref": "AAAAAAFtSFstCdav3n0=" 610 | }, 611 | "model": { 612 | "$ref": "AAAAAAFtSFstCdatkUc=" 613 | }, 614 | "font": "Arial;13;0", 615 | "left": 232, 616 | "top": 313, 617 | "width": 21.20751953125, 618 | "height": 13, 619 | "alpha": 1.5707963267948966, 620 | "distance": 15, 621 | "hostEdge": { 622 | "$ref": "AAAAAAFtSFstCdav3n0=" 623 | }, 624 | "edgePosition": 1, 625 | "text": "Yes" 626 | } 627 | ], 628 | "font": "Arial;13;0", 629 | "head": { 630 | "$ref": "AAAAAAFtSFfRdtYnmiA=" 631 | }, 632 | "tail": { 633 | "$ref": "AAAAAAFtSFdHptYbE3A=" 634 | }, 635 | "lineStyle": 2, 636 | "points": "272:304;215:304", 637 | "nameLabel": { 638 | "$ref": "AAAAAAFtSFstCdawaBE=" 639 | } 640 | }, 641 | { 642 | "_type": "FCFlowView", 643 | "_id": "AAAAAAFtSFtP29a6rv4=", 644 | "_parent": { 645 | "$ref": "AAAAAAFtSFK89NXm3SU=" 646 | }, 647 | "model": { 648 | "$ref": "AAAAAAFtSFtP0ta4wWg=" 649 | }, 650 | "subViews": [ 651 | { 652 | "_type": "EdgeLabelView", 653 | "_id": "AAAAAAFtSFtP29a74x0=", 654 | "_parent": { 655 | "$ref": "AAAAAAFtSFtP29a6rv4=" 656 | }, 657 | "model": { 658 | "$ref": "AAAAAAFtSFtP0ta4wWg=" 659 | }, 660 | "font": "Arial;13;0", 661 | "left": 496, 662 | "top": 283, 663 | "width": 16.6181640625, 664 | "height": 13, 665 | "alpha": 1.5707963267948966, 666 | "distance": 15, 667 | "hostEdge": { 668 | "$ref": "AAAAAAFtSFtP29a6rv4=" 669 | }, 670 | "edgePosition": 1, 671 | "text": "No" 672 | } 673 | ], 674 | "font": "Arial;13;0", 675 | "head": { 676 | "$ref": "AAAAAAFtSFgEeNYwS8I=" 677 | }, 678 | "tail": { 679 | "$ref": "AAAAAAFtSFdHptYbE3A=" 680 | }, 681 | "lineStyle": 2, 682 | "points": "457:304;552:304", 683 | "nameLabel": { 684 | "$ref": "AAAAAAFtSFtP29a74x0=" 685 | } 686 | }, 687 | { 688 | "_type": "FCFlowView", 689 | "_id": "AAAAAAFtSFt21tbFsD0=", 690 | "_parent": { 691 | "$ref": "AAAAAAFtSFK89NXm3SU=" 692 | }, 693 | "model": { 694 | "$ref": "AAAAAAFtSFt21tbDhOA=" 695 | }, 696 | "subViews": [ 697 | { 698 | "_type": "EdgeLabelView", 699 | "_id": "AAAAAAFtSFt21tbGkH0=", 700 | "_parent": { 701 | "$ref": "AAAAAAFtSFt21tbFsD0=" 702 | }, 703 | "model": { 704 | "$ref": "AAAAAAFtSFt21tbDhOA=" 705 | }, 706 | "visible": false, 707 | "font": "Arial;13;0", 708 | "left": 380, 709 | "top": 353, 710 | "height": 13, 711 | "alpha": 1.5707963267948966, 712 | "distance": 15, 713 | "hostEdge": { 714 | "$ref": "AAAAAAFtSFt21tbFsD0=" 715 | }, 716 | "edgePosition": 1 717 | } 718 | ], 719 | "font": "Arial;13;0", 720 | "head": { 721 | "$ref": "AAAAAAFtSFhDXtY59mw=" 722 | }, 723 | "tail": { 724 | "$ref": "AAAAAAFtSFdHptYbE3A=" 725 | }, 726 | "lineStyle": 2, 727 | "points": "366:352;366:368", 728 | "nameLabel": { 729 | "$ref": "AAAAAAFtSFt21tbGkH0=" 730 | } 731 | }, 732 | { 733 | "_type": "FCFlowView", 734 | "_id": "AAAAAAFtSFuG1NbOe68=", 735 | "_parent": { 736 | "$ref": "AAAAAAFtSFK89NXm3SU=" 737 | }, 738 | "model": { 739 | "$ref": "AAAAAAFtSFuG1NbMyFM=" 740 | }, 741 | "subViews": [ 742 | { 743 | "_type": "EdgeLabelView", 744 | "_id": "AAAAAAFtSFuG1NbPIcU=", 745 | "_parent": { 746 | "$ref": "AAAAAAFtSFuG1NbOe68=" 747 | }, 748 | "model": { 749 | "$ref": "AAAAAAFtSFuG1NbMyFM=" 750 | }, 751 | "visible": false, 752 | "font": "Arial;13;0", 753 | "left": 381, 754 | "top": 411, 755 | "height": 13, 756 | "alpha": 1.5707963267948966, 757 | "distance": 15, 758 | "hostEdge": { 759 | "$ref": "AAAAAAFtSFuG1NbOe68=" 760 | }, 761 | "edgePosition": 1 762 | } 763 | ], 764 | "font": "Arial;13;0", 765 | "head": { 766 | "$ref": "AAAAAAFtSFiaV9ZDwb8=" 767 | }, 768 | "tail": { 769 | "$ref": "AAAAAAFtSFhDXtY59mw=" 770 | }, 771 | "lineStyle": 2, 772 | "points": "367:413;367:424", 773 | "nameLabel": { 774 | "$ref": "AAAAAAFtSFuG1NbPIcU=" 775 | } 776 | }, 777 | { 778 | "_type": "FCFlowView", 779 | "_id": "AAAAAAFtSFuXoNbXn6U=", 780 | "_parent": { 781 | "$ref": "AAAAAAFtSFK89NXm3SU=" 782 | }, 783 | "model": { 784 | "$ref": "AAAAAAFtSFuXldbV2hA=" 785 | }, 786 | "subViews": [ 787 | { 788 | "_type": "EdgeLabelView", 789 | "_id": "AAAAAAFtSFuXoNbYgz4=", 790 | "_parent": { 791 | "$ref": "AAAAAAFtSFuXoNbXn6U=" 792 | }, 793 | "model": { 794 | "$ref": "AAAAAAFtSFuXldbV2hA=" 795 | }, 796 | "visible": false, 797 | "font": "Arial;13;0", 798 | "left": 380, 799 | "top": 457, 800 | "height": 13, 801 | "alpha": 1.5707963267948966, 802 | "distance": 15, 803 | "hostEdge": { 804 | "$ref": "AAAAAAFtSFuXoNbXn6U=" 805 | }, 806 | "edgePosition": 1 807 | } 808 | ], 809 | "font": "Arial;13;0", 810 | "head": { 811 | "$ref": "AAAAAAFtSFm7VdZmfMs=" 812 | }, 813 | "tail": { 814 | "$ref": "AAAAAAFtSFiaV9ZDwb8=" 815 | }, 816 | "lineStyle": 2, 817 | "points": "366:456;366:472", 818 | "nameLabel": { 819 | "$ref": "AAAAAAFtSFuXoNbYgz4=" 820 | } 821 | }, 822 | { 823 | "_type": "FCFlowView", 824 | "_id": "AAAAAAFtSFuoidbg6VY=", 825 | "_parent": { 826 | "$ref": "AAAAAAFtSFK89NXm3SU=" 827 | }, 828 | "model": { 829 | "$ref": "AAAAAAFtSFuoiNbeD0w=" 830 | }, 831 | "subViews": [ 832 | { 833 | "_type": "EdgeLabelView", 834 | "_id": "AAAAAAFtSFuoidbhNPQ=", 835 | "_parent": { 836 | "$ref": "AAAAAAFtSFuoidbg6VY=" 837 | }, 838 | "model": { 839 | "$ref": "AAAAAAFtSFuoiNbeD0w=" 840 | }, 841 | "visible": false, 842 | "font": "Arial;13;0", 843 | "left": 378, 844 | "top": 515, 845 | "height": 13, 846 | "alpha": 1.5707963267948966, 847 | "distance": 15, 848 | "hostEdge": { 849 | "$ref": "AAAAAAFtSFuoidbg6VY=" 850 | }, 851 | "edgePosition": 1 852 | } 853 | ], 854 | "font": "Arial;13;0", 855 | "head": { 856 | "$ref": "AAAAAAFtSFoNDNZvfZs=" 857 | }, 858 | "tail": { 859 | "$ref": "AAAAAAFtSFm7VdZmfMs=" 860 | }, 861 | "lineStyle": 2, 862 | "points": "364:517;364:528", 863 | "nameLabel": { 864 | "$ref": "AAAAAAFtSFuoidbhNPQ=" 865 | } 866 | }, 867 | { 868 | "_type": "FCTerminatorView", 869 | "_id": "AAAAAAFtSFvS4NbqqXU=", 870 | "_parent": { 871 | "$ref": "AAAAAAFtSFK89NXm3SU=" 872 | }, 873 | "model": { 874 | "$ref": "AAAAAAFtSFvS4Nbo8s4=" 875 | }, 876 | "subViews": [ 877 | { 878 | "_type": "LabelView", 879 | "_id": "AAAAAAFtSFvS4NbrY+0=", 880 | "_parent": { 881 | "$ref": "AAAAAAFtSFvS4NbqqXU=" 882 | }, 883 | "font": "Arial;13;0", 884 | "left": 538, 885 | "top": 570, 886 | "width": 52, 887 | "height": 13, 888 | "text": "End", 889 | "wordWrap": true 890 | } 891 | ], 892 | "font": "Arial;13;0", 893 | "left": 528, 894 | "top": 560, 895 | "width": 72, 896 | "height": 33, 897 | "nameLabel": { 898 | "$ref": "AAAAAAFtSFvS4NbrY+0=" 899 | } 900 | }, 901 | { 902 | "_type": "FCFlowView", 903 | "_id": "AAAAAAFtSFwY9tb26Xo=", 904 | "_parent": { 905 | "$ref": "AAAAAAFtSFK89NXm3SU=" 906 | }, 907 | "model": { 908 | "$ref": "AAAAAAFtSFwY9db0eQg=" 909 | }, 910 | "subViews": [ 911 | { 912 | "_type": "EdgeLabelView", 913 | "_id": "AAAAAAFtSFwY9tb3gIA=", 914 | "_parent": { 915 | "$ref": "AAAAAAFtSFwY9tb26Xo=" 916 | }, 917 | "model": { 918 | "$ref": "AAAAAAFtSFwY9db0eQg=" 919 | }, 920 | "font": "Arial;13;0", 921 | "left": 462, 922 | "top": 557, 923 | "width": 21.20751953125, 924 | "height": 13, 925 | "alpha": 1.5707963267948966, 926 | "distance": 15, 927 | "hostEdge": { 928 | "$ref": "AAAAAAFtSFwY9tb26Xo=" 929 | }, 930 | "edgePosition": 1, 931 | "text": "Yes" 932 | } 933 | ], 934 | "font": "Arial;13;0", 935 | "head": { 936 | "$ref": "AAAAAAFtSFvS4NbqqXU=" 937 | }, 938 | "tail": { 939 | "$ref": "AAAAAAFtSFoNDNZvfZs=" 940 | }, 941 | "lineStyle": 2, 942 | "points": "417:578;528:578", 943 | "nameLabel": { 944 | "$ref": "AAAAAAFtSFwY9tb3gIA=" 945 | } 946 | }, 947 | { 948 | "_type": "FCFlowView", 949 | "_id": "AAAAAAFtSFw/hNcA4pw=", 950 | "_parent": { 951 | "$ref": "AAAAAAFtSFK89NXm3SU=" 952 | }, 953 | "model": { 954 | "$ref": "AAAAAAFtSFw/etb+Q2M=" 955 | }, 956 | "subViews": [ 957 | { 958 | "_type": "EdgeLabelView", 959 | "_id": "AAAAAAFtSFw/hNcBwfQ=", 960 | "_parent": { 961 | "$ref": "AAAAAAFtSFw/hNcA4pw=" 962 | }, 963 | "model": { 964 | "$ref": "AAAAAAFtSFw/etb+Q2M=" 965 | }, 966 | "font": "Arial;13;0", 967 | "left": 33, 968 | "top": 301, 969 | "width": 16.6181640625, 970 | "height": 13, 971 | "alpha": 1.5707963267948966, 972 | "distance": 15, 973 | "hostEdge": { 974 | "$ref": "AAAAAAFtSFw/hNcA4pw=" 975 | }, 976 | "edgePosition": 1, 977 | "text": "No" 978 | } 979 | ], 980 | "font": "Arial;13;0", 981 | "head": { 982 | "$ref": "AAAAAAFtSFU5/9Xsq+E=" 983 | }, 984 | "tail": { 985 | "$ref": "AAAAAAFtSFoNDNZvfZs=" 986 | }, 987 | "lineStyle": 2, 988 | "points": "304:576;56:576;56:40;320:40", 989 | "nameLabel": { 990 | "$ref": "AAAAAAFtSFw/hNcBwfQ=" 991 | } 992 | } 993 | ] 994 | }, 995 | { 996 | "_type": "FCTerminator", 997 | "_id": "AAAAAAFtSFU5/9XqHK8=", 998 | "_parent": { 999 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1000 | }, 1001 | "name": "Start", 1002 | "ownedElements": [ 1003 | { 1004 | "_type": "FCFlow", 1005 | "_id": "AAAAAAFtSFq8KNZ7kNs=", 1006 | "_parent": { 1007 | "$ref": "AAAAAAFtSFU5/9XqHK8=" 1008 | }, 1009 | "source": { 1010 | "$ref": "AAAAAAFtSFU5/9XqHK8=" 1011 | }, 1012 | "target": { 1013 | "$ref": "AAAAAAFtSFV3M9X2dVo=" 1014 | } 1015 | } 1016 | ] 1017 | }, 1018 | { 1019 | "_type": "FCProcess", 1020 | "_id": "AAAAAAFtSFV3M9X2dVo=", 1021 | "_parent": { 1022 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1023 | }, 1024 | "name": "Calculate pbest location for each particle", 1025 | "ownedElements": [ 1026 | { 1027 | "_type": "FCFlow", 1028 | "_id": "AAAAAAFtSFrOYdaEzZM=", 1029 | "_parent": { 1030 | "$ref": "AAAAAAFtSFV3M9X2dVo=" 1031 | }, 1032 | "source": { 1033 | "$ref": "AAAAAAFtSFV3M9X2dVo=" 1034 | }, 1035 | "target": { 1036 | "$ref": "AAAAAAFtSFYPDdYFkII=" 1037 | } 1038 | } 1039 | ] 1040 | }, 1041 | { 1042 | "_type": "FCProcess", 1043 | "_id": "AAAAAAFtSFYPDdYFkII=", 1044 | "_parent": { 1045 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1046 | }, 1047 | "name": "Loop over counter variable to find number of iterations", 1048 | "ownedElements": [ 1049 | { 1050 | "_type": "FCFlow", 1051 | "_id": "AAAAAAFtSFrehNaN4Lg=", 1052 | "_parent": { 1053 | "$ref": "AAAAAAFtSFYPDdYFkII=" 1054 | }, 1055 | "source": { 1056 | "$ref": "AAAAAAFtSFYPDdYFkII=" 1057 | }, 1058 | "target": { 1059 | "$ref": "AAAAAAFtSFaAatYQmcA=" 1060 | } 1061 | } 1062 | ] 1063 | }, 1064 | { 1065 | "_type": "FCProcess", 1066 | "_id": "AAAAAAFtSFaAatYQmcA=", 1067 | "_parent": { 1068 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1069 | }, 1070 | "name": "Update particle location, weight and velocity using a fuzzy parameter", 1071 | "ownedElements": [ 1072 | { 1073 | "_type": "FCFlow", 1074 | "_id": "AAAAAAFtSFrtf9aWytE=", 1075 | "_parent": { 1076 | "$ref": "AAAAAAFtSFaAatYQmcA=" 1077 | }, 1078 | "source": { 1079 | "$ref": "AAAAAAFtSFaAatYQmcA=" 1080 | }, 1081 | "target": { 1082 | "$ref": "AAAAAAFtSFdHnNYZjjw=" 1083 | } 1084 | } 1085 | ] 1086 | }, 1087 | { 1088 | "_type": "FCDecision", 1089 | "_id": "AAAAAAFtSFdHnNYZjjw=", 1090 | "_parent": { 1091 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1092 | }, 1093 | "name": "Is current value better than pbest?", 1094 | "ownedElements": [ 1095 | { 1096 | "_type": "FCFlow", 1097 | "_id": "AAAAAAFtSFstCdatkUc=", 1098 | "_parent": { 1099 | "$ref": "AAAAAAFtSFdHnNYZjjw=" 1100 | }, 1101 | "name": "Yes", 1102 | "source": { 1103 | "$ref": "AAAAAAFtSFdHnNYZjjw=" 1104 | }, 1105 | "target": { 1106 | "$ref": "AAAAAAFtSFfRdtYlWN0=" 1107 | } 1108 | }, 1109 | { 1110 | "_type": "FCFlow", 1111 | "_id": "AAAAAAFtSFtP0ta4wWg=", 1112 | "_parent": { 1113 | "$ref": "AAAAAAFtSFdHnNYZjjw=" 1114 | }, 1115 | "name": "No", 1116 | "source": { 1117 | "$ref": "AAAAAAFtSFdHnNYZjjw=" 1118 | }, 1119 | "target": { 1120 | "$ref": "AAAAAAFtSFgEeNYuAa8=" 1121 | } 1122 | }, 1123 | { 1124 | "_type": "FCFlow", 1125 | "_id": "AAAAAAFtSFt21tbDhOA=", 1126 | "_parent": { 1127 | "$ref": "AAAAAAFtSFdHnNYZjjw=" 1128 | }, 1129 | "source": { 1130 | "$ref": "AAAAAAFtSFdHnNYZjjw=" 1131 | }, 1132 | "target": { 1133 | "$ref": "AAAAAAFtSFhDXtY36u0=" 1134 | } 1135 | } 1136 | ] 1137 | }, 1138 | { 1139 | "_type": "FCProcess", 1140 | "_id": "AAAAAAFtSFfRdtYlWN0=", 1141 | "_parent": { 1142 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1143 | }, 1144 | "name": "Assign current fitness as pbest" 1145 | }, 1146 | { 1147 | "_type": "FCProcess", 1148 | "_id": "AAAAAAFtSFgEeNYuAa8=", 1149 | "_parent": { 1150 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1151 | }, 1152 | "name": "Keep previous pbest" 1153 | }, 1154 | { 1155 | "_type": "FCProcess", 1156 | "_id": "AAAAAAFtSFhDXtY36u0=", 1157 | "_parent": { 1158 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1159 | }, 1160 | "name": "Assign minimal pbest as gbest", 1161 | "ownedElements": [ 1162 | { 1163 | "_type": "FCFlow", 1164 | "_id": "AAAAAAFtSFuG1NbMyFM=", 1165 | "_parent": { 1166 | "$ref": "AAAAAAFtSFhDXtY36u0=" 1167 | }, 1168 | "source": { 1169 | "$ref": "AAAAAAFtSFhDXtY36u0=" 1170 | }, 1171 | "target": { 1172 | "$ref": "AAAAAAFtSFiaV9ZBPYY=" 1173 | } 1174 | } 1175 | ] 1176 | }, 1177 | { 1178 | "_type": "FCProcess", 1179 | "_id": "AAAAAAFtSFiaV9ZBPYY=", 1180 | "_parent": { 1181 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1182 | }, 1183 | "name": "Calculate velocity for each particle", 1184 | "ownedElements": [ 1185 | { 1186 | "_type": "FCFlow", 1187 | "_id": "AAAAAAFtSFuXldbV2hA=", 1188 | "_parent": { 1189 | "$ref": "AAAAAAFtSFiaV9ZBPYY=" 1190 | }, 1191 | "source": { 1192 | "$ref": "AAAAAAFtSFiaV9ZBPYY=" 1193 | }, 1194 | "target": { 1195 | "$ref": "AAAAAAFtSFm7TNZkEWY=" 1196 | } 1197 | } 1198 | ] 1199 | }, 1200 | { 1201 | "_type": "FCProcess", 1202 | "_id": "AAAAAAFtSFm7TNZkEWY=", 1203 | "_parent": { 1204 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1205 | }, 1206 | "name": "Use each particle velocity to update data values", 1207 | "ownedElements": [ 1208 | { 1209 | "_type": "FCFlow", 1210 | "_id": "AAAAAAFtSFuoiNbeD0w=", 1211 | "_parent": { 1212 | "$ref": "AAAAAAFtSFm7TNZkEWY=" 1213 | }, 1214 | "source": { 1215 | "$ref": "AAAAAAFtSFm7TNZkEWY=" 1216 | }, 1217 | "target": { 1218 | "$ref": "AAAAAAFtSFoNCdZti/U=" 1219 | } 1220 | } 1221 | ] 1222 | }, 1223 | { 1224 | "_type": "FCDecision", 1225 | "_id": "AAAAAAFtSFoNCdZti/U=", 1226 | "_parent": { 1227 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1228 | }, 1229 | "name": "Target or maximum iterations reached", 1230 | "ownedElements": [ 1231 | { 1232 | "_type": "FCFlow", 1233 | "_id": "AAAAAAFtSFwY9db0eQg=", 1234 | "_parent": { 1235 | "$ref": "AAAAAAFtSFoNCdZti/U=" 1236 | }, 1237 | "name": "Yes", 1238 | "source": { 1239 | "$ref": "AAAAAAFtSFoNCdZti/U=" 1240 | }, 1241 | "target": { 1242 | "$ref": "AAAAAAFtSFvS4Nbo8s4=" 1243 | } 1244 | }, 1245 | { 1246 | "_type": "FCFlow", 1247 | "_id": "AAAAAAFtSFw/etb+Q2M=", 1248 | "_parent": { 1249 | "$ref": "AAAAAAFtSFoNCdZti/U=" 1250 | }, 1251 | "name": "No", 1252 | "source": { 1253 | "$ref": "AAAAAAFtSFoNCdZti/U=" 1254 | }, 1255 | "target": { 1256 | "$ref": "AAAAAAFtSFU5/9XqHK8=" 1257 | } 1258 | } 1259 | ] 1260 | }, 1261 | { 1262 | "_type": "FCTerminator", 1263 | "_id": "AAAAAAFtSFvS4Nbo8s4=", 1264 | "_parent": { 1265 | "$ref": "AAAAAAFtSFK89NXlHU0=" 1266 | }, 1267 | "name": "End" 1268 | } 1269 | ] 1270 | } 1271 | ] 1272 | } -------------------------------------------------------------------------------- /models/ClassDiagram.mdj: -------------------------------------------------------------------------------- 1 | { 2 | "_type": "Project", 3 | "_id": "AAAAAAFF+h6SjaM2Hec=", 4 | "name": "Untitled", 5 | "ownedElements": [ 6 | { 7 | "_type": "UMLModel", 8 | "_id": "AAAAAAFF+qBWK6M3Z8Y=", 9 | "_parent": { 10 | "$ref": "AAAAAAFF+h6SjaM2Hec=" 11 | }, 12 | "name": "Model", 13 | "ownedElements": [ 14 | { 15 | "_type": "UMLClassDiagram", 16 | "_id": "AAAAAAFF+qBtyKM79qY=", 17 | "_parent": { 18 | "$ref": "AAAAAAFF+qBWK6M3Z8Y=" 19 | }, 20 | "name": "Main", 21 | "defaultDiagram": true 22 | } 23 | ] 24 | }, 25 | { 26 | "_type": "UMLModel", 27 | "_id": "AAAAAAFtLp16g9cKmGI=", 28 | "_parent": { 29 | "$ref": "AAAAAAFF+h6SjaM2Hec=" 30 | }, 31 | "name": "Model1", 32 | "ownedElements": [ 33 | { 34 | "_type": "UMLClassDiagram", 35 | "_id": "AAAAAAFtLp16g9cLLxY=", 36 | "_parent": { 37 | "$ref": "AAAAAAFtLp16g9cKmGI=" 38 | }, 39 | "name": "ClassDiagram1", 40 | "ownedViews": [ 41 | { 42 | "_type": "UMLClassView", 43 | "_id": "AAAAAAFtLp2xh9cRi14=", 44 | "_parent": { 45 | "$ref": "AAAAAAFtLp16g9cLLxY=" 46 | }, 47 | "model": { 48 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 49 | }, 50 | "subViews": [ 51 | { 52 | "_type": "UMLNameCompartmentView", 53 | "_id": "AAAAAAFtLp2xh9cSh9Y=", 54 | "_parent": { 55 | "$ref": "AAAAAAFtLp2xh9cRi14=" 56 | }, 57 | "model": { 58 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 59 | }, 60 | "subViews": [ 61 | { 62 | "_type": "LabelView", 63 | "_id": "AAAAAAFtLp2xh9cTm90=", 64 | "_parent": { 65 | "$ref": "AAAAAAFtLp2xh9cSh9Y=" 66 | }, 67 | "visible": false, 68 | "font": "Arial;13;0", 69 | "height": 13 70 | }, 71 | { 72 | "_type": "LabelView", 73 | "_id": "AAAAAAFtLp2xh9cUNgE=", 74 | "_parent": { 75 | "$ref": "AAAAAAFtLp2xh9cSh9Y=" 76 | }, 77 | "font": "Arial;13;1", 78 | "left": 53, 79 | "top": 55, 80 | "width": 150, 81 | "height": 13, 82 | "text": "Computer Nodes" 83 | }, 84 | { 85 | "_type": "LabelView", 86 | "_id": "AAAAAAFtLp2xh9cVYYY=", 87 | "_parent": { 88 | "$ref": "AAAAAAFtLp2xh9cSh9Y=" 89 | }, 90 | "visible": false, 91 | "font": "Arial;13;0", 92 | "width": 80.9072265625, 93 | "height": 13, 94 | "text": "(from Model1)" 95 | }, 96 | { 97 | "_type": "LabelView", 98 | "_id": "AAAAAAFtLp2xh9cWsRk=", 99 | "_parent": { 100 | "$ref": "AAAAAAFtLp2xh9cSh9Y=" 101 | }, 102 | "visible": false, 103 | "font": "Arial;13;0", 104 | "height": 13, 105 | "horizontalAlignment": 1 106 | } 107 | ], 108 | "font": "Arial;13;0", 109 | "left": 48, 110 | "top": 48, 111 | "width": 160, 112 | "height": 25, 113 | "stereotypeLabel": { 114 | "$ref": "AAAAAAFtLp2xh9cTm90=" 115 | }, 116 | "nameLabel": { 117 | "$ref": "AAAAAAFtLp2xh9cUNgE=" 118 | }, 119 | "namespaceLabel": { 120 | "$ref": "AAAAAAFtLp2xh9cVYYY=" 121 | }, 122 | "propertyLabel": { 123 | "$ref": "AAAAAAFtLp2xh9cWsRk=" 124 | } 125 | }, 126 | { 127 | "_type": "UMLAttributeCompartmentView", 128 | "_id": "AAAAAAFtLp2xi9cXxLA=", 129 | "_parent": { 130 | "$ref": "AAAAAAFtLp2xh9cRi14=" 131 | }, 132 | "model": { 133 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 134 | }, 135 | "subViews": [ 136 | { 137 | "_type": "UMLAttributeView", 138 | "_id": "AAAAAAFtLp3dsdc8g3Y=", 139 | "_parent": { 140 | "$ref": "AAAAAAFtLp2xi9cXxLA=" 141 | }, 142 | "model": { 143 | "$ref": "AAAAAAFtLp3dadc5bE8=" 144 | }, 145 | "font": "Arial;13;0", 146 | "left": 53, 147 | "top": 78, 148 | "width": 150, 149 | "height": 13, 150 | "text": "#Name: String", 151 | "horizontalAlignment": 0 152 | }, 153 | { 154 | "_type": "UMLAttributeView", 155 | "_id": "AAAAAAFtLp4yN9dEOVo=", 156 | "_parent": { 157 | "$ref": "AAAAAAFtLp2xi9cXxLA=" 158 | }, 159 | "model": { 160 | "$ref": "AAAAAAFtLp4x99dBhhk=" 161 | }, 162 | "font": "Arial;13;0", 163 | "left": 53, 164 | "top": 93, 165 | "width": 150, 166 | "height": 13, 167 | "text": "#MAC Address: String", 168 | "horizontalAlignment": 0 169 | }, 170 | { 171 | "_type": "UMLAttributeView", 172 | "_id": "AAAAAAFtLp5atNdLGkc=", 173 | "_parent": { 174 | "$ref": "AAAAAAFtLp2xi9cXxLA=" 175 | }, 176 | "model": { 177 | "$ref": "AAAAAAFtLp5acNdIQZI=" 178 | }, 179 | "font": "Arial;13;0", 180 | "left": 53, 181 | "top": 108, 182 | "width": 150, 183 | "height": 13, 184 | "text": "#IP Address: String", 185 | "horizontalAlignment": 0 186 | } 187 | ], 188 | "font": "Arial;13;0", 189 | "left": 48, 190 | "top": 73, 191 | "width": 160, 192 | "height": 53 193 | }, 194 | { 195 | "_type": "UMLOperationCompartmentView", 196 | "_id": "AAAAAAFtLp2xi9cYXBk=", 197 | "_parent": { 198 | "$ref": "AAAAAAFtLp2xh9cRi14=" 199 | }, 200 | "model": { 201 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 202 | }, 203 | "subViews": [ 204 | { 205 | "_type": "UMLOperationView", 206 | "_id": "AAAAAAFtLp6lK9dS8Rk=", 207 | "_parent": { 208 | "$ref": "AAAAAAFtLp2xi9cYXBk=" 209 | }, 210 | "model": { 211 | "$ref": "AAAAAAFtLp6k69dPYJw=" 212 | }, 213 | "font": "Arial;13;0", 214 | "left": 53, 215 | "top": 131, 216 | "width": 150, 217 | "height": 13, 218 | "text": "+InputMessage()", 219 | "horizontalAlignment": 0 220 | }, 221 | { 222 | "_type": "UMLOperationView", 223 | "_id": "AAAAAAFtLp7xd9dZy6c=", 224 | "_parent": { 225 | "$ref": "AAAAAAFtLp2xi9cYXBk=" 226 | }, 227 | "model": { 228 | "$ref": "AAAAAAFtLp7xM9dWsZE=" 229 | }, 230 | "font": "Arial;13;0", 231 | "left": 53, 232 | "top": 146, 233 | "width": 150, 234 | "height": 13, 235 | "text": "+PacketGenerator()", 236 | "horizontalAlignment": 0 237 | }, 238 | { 239 | "_type": "UMLOperationView", 240 | "_id": "AAAAAAFtLp8bFddgZNc=", 241 | "_parent": { 242 | "$ref": "AAAAAAFtLp2xi9cYXBk=" 243 | }, 244 | "model": { 245 | "$ref": "AAAAAAFtLp8a1ddd+VQ=" 246 | }, 247 | "font": "Arial;13;0", 248 | "left": 53, 249 | "top": 161, 250 | "width": 150, 251 | "height": 13, 252 | "text": "+Communication()", 253 | "horizontalAlignment": 0 254 | } 255 | ], 256 | "font": "Arial;13;0", 257 | "left": 48, 258 | "top": 126, 259 | "width": 160, 260 | "height": 53 261 | }, 262 | { 263 | "_type": "UMLReceptionCompartmentView", 264 | "_id": "AAAAAAFtLp2xi9cZxOI=", 265 | "_parent": { 266 | "$ref": "AAAAAAFtLp2xh9cRi14=" 267 | }, 268 | "model": { 269 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 270 | }, 271 | "visible": false, 272 | "font": "Arial;13;0", 273 | "width": 10, 274 | "height": 10 275 | }, 276 | { 277 | "_type": "UMLTemplateParameterCompartmentView", 278 | "_id": "AAAAAAFtLp2xi9canKc=", 279 | "_parent": { 280 | "$ref": "AAAAAAFtLp2xh9cRi14=" 281 | }, 282 | "model": { 283 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 284 | }, 285 | "visible": false, 286 | "font": "Arial;13;0", 287 | "width": 10, 288 | "height": 10 289 | } 290 | ], 291 | "font": "Arial;13;0", 292 | "containerChangeable": true, 293 | "left": 48, 294 | "top": 48, 295 | "width": 160, 296 | "height": 137, 297 | "nameCompartment": { 298 | "$ref": "AAAAAAFtLp2xh9cSh9Y=" 299 | }, 300 | "attributeCompartment": { 301 | "$ref": "AAAAAAFtLp2xi9cXxLA=" 302 | }, 303 | "operationCompartment": { 304 | "$ref": "AAAAAAFtLp2xi9cYXBk=" 305 | }, 306 | "receptionCompartment": { 307 | "$ref": "AAAAAAFtLp2xi9cZxOI=" 308 | }, 309 | "templateParameterCompartment": { 310 | "$ref": "AAAAAAFtLp2xi9canKc=" 311 | } 312 | }, 313 | { 314 | "_type": "UMLAssociationView", 315 | "_id": "AAAAAAFtLqAu59dzuoc=", 316 | "_parent": { 317 | "$ref": "AAAAAAFtLp16g9cLLxY=" 318 | }, 319 | "model": { 320 | "$ref": "AAAAAAFtLqAu59dva28=" 321 | }, 322 | "subViews": [ 323 | { 324 | "_type": "EdgeLabelView", 325 | "_id": "AAAAAAFtLqAu59d0o80=", 326 | "_parent": { 327 | "$ref": "AAAAAAFtLqAu59dzuoc=" 328 | }, 329 | "model": { 330 | "$ref": "AAAAAAFtLqAu59dva28=" 331 | }, 332 | "visible": false, 333 | "font": "Arial;13;0", 334 | "left": 250, 335 | "top": 21, 336 | "height": 13, 337 | "alpha": 1.5707963267948966, 338 | "distance": 15, 339 | "hostEdge": { 340 | "$ref": "AAAAAAFtLqAu59dzuoc=" 341 | }, 342 | "edgePosition": 1 343 | }, 344 | { 345 | "_type": "EdgeLabelView", 346 | "_id": "AAAAAAFtLqAu59d1VGU=", 347 | "_parent": { 348 | "$ref": "AAAAAAFtLqAu59dzuoc=" 349 | }, 350 | "model": { 351 | "$ref": "AAAAAAFtLqAu59dva28=" 352 | }, 353 | "visible": null, 354 | "font": "Arial;13;0", 355 | "left": 265, 356 | "top": 21, 357 | "height": 13, 358 | "alpha": 1.5707963267948966, 359 | "distance": 30, 360 | "hostEdge": { 361 | "$ref": "AAAAAAFtLqAu59dzuoc=" 362 | }, 363 | "edgePosition": 1 364 | }, 365 | { 366 | "_type": "EdgeLabelView", 367 | "_id": "AAAAAAFtLqAu59d2XP0=", 368 | "_parent": { 369 | "$ref": "AAAAAAFtLqAu59dzuoc=" 370 | }, 371 | "model": { 372 | "$ref": "AAAAAAFtLqAu59dva28=" 373 | }, 374 | "visible": false, 375 | "font": "Arial;13;0", 376 | "left": 221, 377 | "top": 22, 378 | "height": 13, 379 | "alpha": -1.5707963267948966, 380 | "distance": 15, 381 | "hostEdge": { 382 | "$ref": "AAAAAAFtLqAu59dzuoc=" 383 | }, 384 | "edgePosition": 1 385 | }, 386 | { 387 | "_type": "EdgeLabelView", 388 | "_id": "AAAAAAFtLqAu59d3/hU=", 389 | "_parent": { 390 | "$ref": "AAAAAAFtLqAu59dzuoc=" 391 | }, 392 | "model": { 393 | "$ref": "AAAAAAFtLqAu59dwPRA=" 394 | }, 395 | "visible": false, 396 | "font": "Arial;13;0", 397 | "left": 112, 398 | "top": 16, 399 | "height": 13, 400 | "alpha": 0.5235987755982988, 401 | "distance": 30, 402 | "hostEdge": { 403 | "$ref": "AAAAAAFtLqAu59dzuoc=" 404 | }, 405 | "edgePosition": 2 406 | }, 407 | { 408 | "_type": "EdgeLabelView", 409 | "_id": "AAAAAAFtLqAu59d49SE=", 410 | "_parent": { 411 | "$ref": "AAAAAAFtLqAu59dzuoc=" 412 | }, 413 | "model": { 414 | "$ref": "AAAAAAFtLqAu59dwPRA=" 415 | }, 416 | "visible": false, 417 | "font": "Arial;13;0", 418 | "left": 98, 419 | "top": 13, 420 | "height": 13, 421 | "alpha": 0.7853981633974483, 422 | "distance": 40, 423 | "hostEdge": { 424 | "$ref": "AAAAAAFtLqAu59dzuoc=" 425 | }, 426 | "edgePosition": 2 427 | }, 428 | { 429 | "_type": "EdgeLabelView", 430 | "_id": "AAAAAAFtLqAu59d5w+4=", 431 | "_parent": { 432 | "$ref": "AAAAAAFtLqAu59dzuoc=" 433 | }, 434 | "model": { 435 | "$ref": "AAAAAAFtLqAu59dwPRA=" 436 | }, 437 | "visible": false, 438 | "font": "Arial;13;0", 439 | "left": 139, 440 | "top": 20, 441 | "height": 13, 442 | "alpha": -0.5235987755982988, 443 | "distance": 25, 444 | "hostEdge": { 445 | "$ref": "AAAAAAFtLqAu59dzuoc=" 446 | }, 447 | "edgePosition": 2 448 | }, 449 | { 450 | "_type": "EdgeLabelView", 451 | "_id": "AAAAAAFtLqAu59d6crQ=", 452 | "_parent": { 453 | "$ref": "AAAAAAFtLqAu59dzuoc=" 454 | }, 455 | "model": { 456 | "$ref": "AAAAAAFtLqAu59dxSMM=" 457 | }, 458 | "font": "Arial;13;0", 459 | "left": 240, 460 | "top": 56, 461 | "width": 87.7880859375, 462 | "height": 13, 463 | "alpha": 0.6177556634401451, 464 | "distance": 93.23089616645332, 465 | "hostEdge": { 466 | "$ref": "AAAAAAFtLqAu59dzuoc=" 467 | }, 468 | "text": "+Communicate" 469 | }, 470 | { 471 | "_type": "EdgeLabelView", 472 | "_id": "AAAAAAFtLqAu59d7yzE=", 473 | "_parent": { 474 | "$ref": "AAAAAAFtLqAu59dzuoc=" 475 | }, 476 | "model": { 477 | "$ref": "AAAAAAFtLqAu59dxSMM=" 478 | }, 479 | "visible": false, 480 | "font": "Arial;13;0", 481 | "left": 235, 482 | "top": 138, 483 | "height": 13, 484 | "alpha": -0.7853981633974483, 485 | "distance": 40, 486 | "hostEdge": { 487 | "$ref": "AAAAAAFtLqAu59dzuoc=" 488 | } 489 | }, 490 | { 491 | "_type": "EdgeLabelView", 492 | "_id": "AAAAAAFtLqAu59d8sdo=", 493 | "_parent": { 494 | "$ref": "AAAAAAFtLqAu59dzuoc=" 495 | }, 496 | "model": { 497 | "$ref": "AAAAAAFtLqAu59dxSMM=" 498 | }, 499 | "visible": false, 500 | "font": "Arial;13;0", 501 | "left": 228, 502 | "top": 97, 503 | "height": 13, 504 | "alpha": 0.5235987755982988, 505 | "distance": 25, 506 | "hostEdge": { 507 | "$ref": "AAAAAAFtLqAu59dzuoc=" 508 | } 509 | }, 510 | { 511 | "_type": "UMLQualifierCompartmentView", 512 | "_id": "AAAAAAFtLqAu59d95Wc=", 513 | "_parent": { 514 | "$ref": "AAAAAAFtLqAu59dzuoc=" 515 | }, 516 | "model": { 517 | "$ref": "AAAAAAFtLqAu59dwPRA=" 518 | }, 519 | "visible": false, 520 | "font": "Arial;13;0", 521 | "width": 10, 522 | "height": 10 523 | }, 524 | { 525 | "_type": "UMLQualifierCompartmentView", 526 | "_id": "AAAAAAFtLqAu59d+kEQ=", 527 | "_parent": { 528 | "$ref": "AAAAAAFtLqAu59dzuoc=" 529 | }, 530 | "model": { 531 | "$ref": "AAAAAAFtLqAu59dxSMM=" 532 | }, 533 | "visible": false, 534 | "font": "Arial;13;0", 535 | "width": 10, 536 | "height": 10 537 | } 538 | ], 539 | "font": "Arial;13;0", 540 | "head": { 541 | "$ref": "AAAAAAFtLp2xh9cRi14=" 542 | }, 543 | "tail": { 544 | "$ref": "AAAAAAFtLp2xh9cRi14=" 545 | }, 546 | "points": "127:48;127:28;236:28;236:116;207:116", 547 | "showVisibility": true, 548 | "nameLabel": { 549 | "$ref": "AAAAAAFtLqAu59d0o80=" 550 | }, 551 | "stereotypeLabel": { 552 | "$ref": "AAAAAAFtLqAu59d1VGU=" 553 | }, 554 | "propertyLabel": { 555 | "$ref": "AAAAAAFtLqAu59d2XP0=" 556 | }, 557 | "tailRoleNameLabel": { 558 | "$ref": "AAAAAAFtLqAu59d3/hU=" 559 | }, 560 | "tailPropertyLabel": { 561 | "$ref": "AAAAAAFtLqAu59d49SE=" 562 | }, 563 | "tailMultiplicityLabel": { 564 | "$ref": "AAAAAAFtLqAu59d5w+4=" 565 | }, 566 | "headRoleNameLabel": { 567 | "$ref": "AAAAAAFtLqAu59d6crQ=" 568 | }, 569 | "headPropertyLabel": { 570 | "$ref": "AAAAAAFtLqAu59d7yzE=" 571 | }, 572 | "headMultiplicityLabel": { 573 | "$ref": "AAAAAAFtLqAu59d8sdo=" 574 | }, 575 | "tailQualifiersCompartment": { 576 | "$ref": "AAAAAAFtLqAu59d95Wc=" 577 | }, 578 | "headQualifiersCompartment": { 579 | "$ref": "AAAAAAFtLqAu59d+kEQ=" 580 | } 581 | }, 582 | { 583 | "_type": "UMLClassView", 584 | "_id": "AAAAAAFtLqB5GtfXpjs=", 585 | "_parent": { 586 | "$ref": "AAAAAAFtLp16g9cLLxY=" 587 | }, 588 | "model": { 589 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 590 | }, 591 | "subViews": [ 592 | { 593 | "_type": "UMLNameCompartmentView", 594 | "_id": "AAAAAAFtLqB5GtfYbL8=", 595 | "_parent": { 596 | "$ref": "AAAAAAFtLqB5GtfXpjs=" 597 | }, 598 | "model": { 599 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 600 | }, 601 | "subViews": [ 602 | { 603 | "_type": "LabelView", 604 | "_id": "AAAAAAFtLqB5GtfZR0E=", 605 | "_parent": { 606 | "$ref": "AAAAAAFtLqB5GtfYbL8=" 607 | }, 608 | "visible": false, 609 | "font": "Arial;13;0", 610 | "left": 80, 611 | "top": -128, 612 | "height": 13 613 | }, 614 | { 615 | "_type": "LabelView", 616 | "_id": "AAAAAAFtLqB5GtfasYQ=", 617 | "_parent": { 618 | "$ref": "AAAAAAFtLqB5GtfYbL8=" 619 | }, 620 | "font": "Arial;13;1", 621 | "left": 509, 622 | "top": 55, 623 | "width": 142, 624 | "height": 13, 625 | "text": "Main System" 626 | }, 627 | { 628 | "_type": "LabelView", 629 | "_id": "AAAAAAFtLqB5GtfbPh8=", 630 | "_parent": { 631 | "$ref": "AAAAAAFtLqB5GtfYbL8=" 632 | }, 633 | "visible": false, 634 | "font": "Arial;13;0", 635 | "left": 80, 636 | "top": -128, 637 | "width": 80.9072265625, 638 | "height": 13, 639 | "text": "(from Model1)" 640 | }, 641 | { 642 | "_type": "LabelView", 643 | "_id": "AAAAAAFtLqB5GtfcpUw=", 644 | "_parent": { 645 | "$ref": "AAAAAAFtLqB5GtfYbL8=" 646 | }, 647 | "visible": false, 648 | "font": "Arial;13;0", 649 | "left": 80, 650 | "top": -128, 651 | "height": 13, 652 | "horizontalAlignment": 1 653 | } 654 | ], 655 | "font": "Arial;13;0", 656 | "left": 504, 657 | "top": 48, 658 | "width": 152, 659 | "height": 25, 660 | "stereotypeLabel": { 661 | "$ref": "AAAAAAFtLqB5GtfZR0E=" 662 | }, 663 | "nameLabel": { 664 | "$ref": "AAAAAAFtLqB5GtfasYQ=" 665 | }, 666 | "namespaceLabel": { 667 | "$ref": "AAAAAAFtLqB5GtfbPh8=" 668 | }, 669 | "propertyLabel": { 670 | "$ref": "AAAAAAFtLqB5GtfcpUw=" 671 | } 672 | }, 673 | { 674 | "_type": "UMLAttributeCompartmentView", 675 | "_id": "AAAAAAFtLqB5GtfdryA=", 676 | "_parent": { 677 | "$ref": "AAAAAAFtLqB5GtfXpjs=" 678 | }, 679 | "model": { 680 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 681 | }, 682 | "font": "Arial;13;0", 683 | "left": 504, 684 | "top": 73, 685 | "width": 152, 686 | "height": 10 687 | }, 688 | { 689 | "_type": "UMLOperationCompartmentView", 690 | "_id": "AAAAAAFtLqB5HtfeQrI=", 691 | "_parent": { 692 | "$ref": "AAAAAAFtLqB5GtfXpjs=" 693 | }, 694 | "model": { 695 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 696 | }, 697 | "subViews": [ 698 | { 699 | "_type": "UMLOperationView", 700 | "_id": "AAAAAAFtLqCnQ9gjLKE=", 701 | "_parent": { 702 | "$ref": "AAAAAAFtLqB5HtfeQrI=" 703 | }, 704 | "model": { 705 | "$ref": "AAAAAAFtLqCm/9gd7ms=" 706 | }, 707 | "font": "Arial;13;0", 708 | "left": 509, 709 | "top": 88, 710 | "width": 142, 711 | "height": 13, 712 | "text": "+Kruskals()", 713 | "horizontalAlignment": 0 714 | }, 715 | { 716 | "_type": "UMLOperationView", 717 | "_id": "AAAAAAFtLqC/GNhIanc=", 718 | "_parent": { 719 | "$ref": "AAAAAAFtLqB5HtfeQrI=" 720 | }, 721 | "model": { 722 | "$ref": "AAAAAAFtLqC+1NhCi7E=" 723 | }, 724 | "font": "Arial;13;0", 725 | "left": 509, 726 | "top": 103, 727 | "width": 142, 728 | "height": 13, 729 | "text": "+PSO()", 730 | "horizontalAlignment": 0 731 | }, 732 | { 733 | "_type": "UMLOperationView", 734 | "_id": "AAAAAAFtLqDw7dht4vc=", 735 | "_parent": { 736 | "$ref": "AAAAAAFtLqB5HtfeQrI=" 737 | }, 738 | "model": { 739 | "$ref": "AAAAAAFtLqDwqdhnScY=" 740 | }, 741 | "font": "Arial;13;0", 742 | "left": 509, 743 | "top": 118, 744 | "width": 142, 745 | "height": 13, 746 | "text": "+GenerateMST()", 747 | "horizontalAlignment": 0 748 | } 749 | ], 750 | "font": "Arial;13;0", 751 | "left": 504, 752 | "top": 83, 753 | "width": 152, 754 | "height": 53 755 | }, 756 | { 757 | "_type": "UMLReceptionCompartmentView", 758 | "_id": "AAAAAAFtLqB5Htff8HI=", 759 | "_parent": { 760 | "$ref": "AAAAAAFtLqB5GtfXpjs=" 761 | }, 762 | "model": { 763 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 764 | }, 765 | "visible": false, 766 | "font": "Arial;13;0", 767 | "left": 40, 768 | "top": -64, 769 | "width": 10, 770 | "height": 10 771 | }, 772 | { 773 | "_type": "UMLTemplateParameterCompartmentView", 774 | "_id": "AAAAAAFtLqB5HtfgPOQ=", 775 | "_parent": { 776 | "$ref": "AAAAAAFtLqB5GtfXpjs=" 777 | }, 778 | "model": { 779 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 780 | }, 781 | "visible": false, 782 | "font": "Arial;13;0", 783 | "left": 40, 784 | "top": -64, 785 | "width": 10, 786 | "height": 10 787 | } 788 | ], 789 | "font": "Arial;13;0", 790 | "containerChangeable": true, 791 | "left": 504, 792 | "top": 48, 793 | "width": 152, 794 | "height": 97, 795 | "nameCompartment": { 796 | "$ref": "AAAAAAFtLqB5GtfYbL8=" 797 | }, 798 | "attributeCompartment": { 799 | "$ref": "AAAAAAFtLqB5GtfdryA=" 800 | }, 801 | "operationCompartment": { 802 | "$ref": "AAAAAAFtLqB5HtfeQrI=" 803 | }, 804 | "receptionCompartment": { 805 | "$ref": "AAAAAAFtLqB5Htff8HI=" 806 | }, 807 | "templateParameterCompartment": { 808 | "$ref": "AAAAAAFtLqB5HtfgPOQ=" 809 | } 810 | }, 811 | { 812 | "_type": "UMLClassView", 813 | "_id": "AAAAAAFtLqF9jtioESc=", 814 | "_parent": { 815 | "$ref": "AAAAAAFtLp16g9cLLxY=" 816 | }, 817 | "model": { 818 | "$ref": "AAAAAAFtLqF9jtimmIc=" 819 | }, 820 | "subViews": [ 821 | { 822 | "_type": "UMLNameCompartmentView", 823 | "_id": "AAAAAAFtLqF9jtipcls=", 824 | "_parent": { 825 | "$ref": "AAAAAAFtLqF9jtioESc=" 826 | }, 827 | "model": { 828 | "$ref": "AAAAAAFtLqF9jtimmIc=" 829 | }, 830 | "subViews": [ 831 | { 832 | "_type": "LabelView", 833 | "_id": "AAAAAAFtLqF9jtiq2jo=", 834 | "_parent": { 835 | "$ref": "AAAAAAFtLqF9jtipcls=" 836 | }, 837 | "visible": false, 838 | "font": "Arial;13;0", 839 | "top": 224, 840 | "height": 13 841 | }, 842 | { 843 | "_type": "LabelView", 844 | "_id": "AAAAAAFtLqF9jtirBqg=", 845 | "_parent": { 846 | "$ref": "AAAAAAFtLqF9jtipcls=" 847 | }, 848 | "font": "Arial;13;1", 849 | "left": 53, 850 | "top": 391, 851 | "width": 150, 852 | "height": 13, 853 | "text": "Graph" 854 | }, 855 | { 856 | "_type": "LabelView", 857 | "_id": "AAAAAAFtLqF9jtisjDk=", 858 | "_parent": { 859 | "$ref": "AAAAAAFtLqF9jtipcls=" 860 | }, 861 | "visible": false, 862 | "font": "Arial;13;0", 863 | "top": 224, 864 | "width": 80.9072265625, 865 | "height": 13, 866 | "text": "(from Model1)" 867 | }, 868 | { 869 | "_type": "LabelView", 870 | "_id": "AAAAAAFtLqF9jtitPPk=", 871 | "_parent": { 872 | "$ref": "AAAAAAFtLqF9jtipcls=" 873 | }, 874 | "visible": false, 875 | "font": "Arial;13;0", 876 | "top": 224, 877 | "height": 13, 878 | "horizontalAlignment": 1 879 | } 880 | ], 881 | "font": "Arial;13;0", 882 | "left": 48, 883 | "top": 384, 884 | "width": 160, 885 | "height": 25, 886 | "stereotypeLabel": { 887 | "$ref": "AAAAAAFtLqF9jtiq2jo=" 888 | }, 889 | "nameLabel": { 890 | "$ref": "AAAAAAFtLqF9jtirBqg=" 891 | }, 892 | "namespaceLabel": { 893 | "$ref": "AAAAAAFtLqF9jtisjDk=" 894 | }, 895 | "propertyLabel": { 896 | "$ref": "AAAAAAFtLqF9jtitPPk=" 897 | } 898 | }, 899 | { 900 | "_type": "UMLAttributeCompartmentView", 901 | "_id": "AAAAAAFtLqF9jtiuoEU=", 902 | "_parent": { 903 | "$ref": "AAAAAAFtLqF9jtioESc=" 904 | }, 905 | "model": { 906 | "$ref": "AAAAAAFtLqF9jtimmIc=" 907 | }, 908 | "font": "Arial;13;0", 909 | "left": 48, 910 | "top": 409, 911 | "width": 160, 912 | "height": 10 913 | }, 914 | { 915 | "_type": "UMLOperationCompartmentView", 916 | "_id": "AAAAAAFtLqF9jtivDn0=", 917 | "_parent": { 918 | "$ref": "AAAAAAFtLqF9jtioESc=" 919 | }, 920 | "model": { 921 | "$ref": "AAAAAAFtLqF9jtimmIc=" 922 | }, 923 | "subViews": [ 924 | { 925 | "_type": "UMLOperationView", 926 | "_id": "AAAAAAFtLqGgudj0BXE=", 927 | "_parent": { 928 | "$ref": "AAAAAAFtLqF9jtivDn0=" 929 | }, 930 | "model": { 931 | "$ref": "AAAAAAFtLqGgZdjuIYo=" 932 | }, 933 | "font": "Arial;13;0", 934 | "left": 53, 935 | "top": 424, 936 | "width": 150, 937 | "height": 13, 938 | "text": "+generateMatrix()", 939 | "horizontalAlignment": 0 940 | }, 941 | { 942 | "_type": "UMLOperationView", 943 | "_id": "AAAAAAFtLqHgzNkZ58U=", 944 | "_parent": { 945 | "$ref": "AAAAAAFtLqF9jtivDn0=" 946 | }, 947 | "model": { 948 | "$ref": "AAAAAAFtLqHgjNkTgYE=" 949 | }, 950 | "font": "Arial;13;0", 951 | "left": 53, 952 | "top": 439, 953 | "width": 150, 954 | "height": 13, 955 | "text": "+generateList()", 956 | "horizontalAlignment": 0 957 | }, 958 | { 959 | "_type": "UMLOperationView", 960 | "_id": "AAAAAAFtLqIw/9k+uOs=", 961 | "_parent": { 962 | "$ref": "AAAAAAFtLqF9jtivDn0=" 963 | }, 964 | "model": { 965 | "$ref": "AAAAAAFtLqIwu9k4emE=" 966 | }, 967 | "font": "Arial;13;0", 968 | "left": 53, 969 | "top": 454, 970 | "width": 150, 971 | "height": 13, 972 | "text": "+createNetworkDiagram()", 973 | "horizontalAlignment": 0 974 | } 975 | ], 976 | "font": "Arial;13;0", 977 | "left": 48, 978 | "top": 419, 979 | "width": 160, 980 | "height": 53 981 | }, 982 | { 983 | "_type": "UMLReceptionCompartmentView", 984 | "_id": "AAAAAAFtLqF9jtiwRzg=", 985 | "_parent": { 986 | "$ref": "AAAAAAFtLqF9jtioESc=" 987 | }, 988 | "model": { 989 | "$ref": "AAAAAAFtLqF9jtimmIc=" 990 | }, 991 | "visible": false, 992 | "font": "Arial;13;0", 993 | "top": 112, 994 | "width": 10, 995 | "height": 10 996 | }, 997 | { 998 | "_type": "UMLTemplateParameterCompartmentView", 999 | "_id": "AAAAAAFtLqF9jtixE2s=", 1000 | "_parent": { 1001 | "$ref": "AAAAAAFtLqF9jtioESc=" 1002 | }, 1003 | "model": { 1004 | "$ref": "AAAAAAFtLqF9jtimmIc=" 1005 | }, 1006 | "visible": false, 1007 | "font": "Arial;13;0", 1008 | "top": 112, 1009 | "width": 10, 1010 | "height": 10 1011 | } 1012 | ], 1013 | "font": "Arial;13;0", 1014 | "containerChangeable": true, 1015 | "left": 48, 1016 | "top": 384, 1017 | "width": 160, 1018 | "height": 88, 1019 | "nameCompartment": { 1020 | "$ref": "AAAAAAFtLqF9jtipcls=" 1021 | }, 1022 | "attributeCompartment": { 1023 | "$ref": "AAAAAAFtLqF9jtiuoEU=" 1024 | }, 1025 | "operationCompartment": { 1026 | "$ref": "AAAAAAFtLqF9jtivDn0=" 1027 | }, 1028 | "receptionCompartment": { 1029 | "$ref": "AAAAAAFtLqF9jtiwRzg=" 1030 | }, 1031 | "templateParameterCompartment": { 1032 | "$ref": "AAAAAAFtLqF9jtixE2s=" 1033 | } 1034 | }, 1035 | { 1036 | "_type": "UMLDependencyView", 1037 | "_id": "AAAAAAFtLqLUn9lzp/Y=", 1038 | "_parent": { 1039 | "$ref": "AAAAAAFtLp16g9cLLxY=" 1040 | }, 1041 | "model": { 1042 | "$ref": "AAAAAAFtLqLUn9lxWiU=" 1043 | }, 1044 | "subViews": [ 1045 | { 1046 | "_type": "EdgeLabelView", 1047 | "_id": "AAAAAAFtLqLUn9l0LXk=", 1048 | "_parent": { 1049 | "$ref": "AAAAAAFtLqLUn9lzp/Y=" 1050 | }, 1051 | "model": { 1052 | "$ref": "AAAAAAFtLqLUn9lxWiU=" 1053 | }, 1054 | "font": "Arial;13;0", 1055 | "left": 128, 1056 | "top": 343, 1057 | "width": 155.009765625, 1058 | "height": 13, 1059 | "alpha": -2.273053094075417, 1060 | "distance": 102.17631819555841, 1061 | "hostEdge": { 1062 | "$ref": "AAAAAAFtLqLUn9lzp/Y=" 1063 | }, 1064 | "edgePosition": 1, 1065 | "text": "+Graphical Representation" 1066 | }, 1067 | { 1068 | "_type": "EdgeLabelView", 1069 | "_id": "AAAAAAFtLqLUn9l1CxY=", 1070 | "_parent": { 1071 | "$ref": "AAAAAAFtLqLUn9lzp/Y=" 1072 | }, 1073 | "model": { 1074 | "$ref": "AAAAAAFtLqLUn9lxWiU=" 1075 | }, 1076 | "visible": null, 1077 | "font": "Arial;13;0", 1078 | "left": 97, 1079 | "top": 277, 1080 | "height": 13, 1081 | "alpha": 1.5707963267948966, 1082 | "distance": 30, 1083 | "hostEdge": { 1084 | "$ref": "AAAAAAFtLqLUn9lzp/Y=" 1085 | }, 1086 | "edgePosition": 1 1087 | }, 1088 | { 1089 | "_type": "EdgeLabelView", 1090 | "_id": "AAAAAAFtLqLUn9l2TrI=", 1091 | "_parent": { 1092 | "$ref": "AAAAAAFtLqLUn9lzp/Y=" 1093 | }, 1094 | "model": { 1095 | "$ref": "AAAAAAFtLqLUn9lxWiU=" 1096 | }, 1097 | "visible": false, 1098 | "font": "Arial;13;0", 1099 | "left": 142, 1100 | "top": 278, 1101 | "height": 13, 1102 | "alpha": -1.5707963267948966, 1103 | "distance": 15, 1104 | "hostEdge": { 1105 | "$ref": "AAAAAAFtLqLUn9lzp/Y=" 1106 | }, 1107 | "edgePosition": 1 1108 | } 1109 | ], 1110 | "font": "Arial;13;0", 1111 | "head": { 1112 | "$ref": "AAAAAAFtLp2xh9cRi14=" 1113 | }, 1114 | "tail": { 1115 | "$ref": "AAAAAAFtLqF9jtioESc=" 1116 | }, 1117 | "lineStyle": 1, 1118 | "points": "127:383;127:185", 1119 | "showVisibility": true, 1120 | "nameLabel": { 1121 | "$ref": "AAAAAAFtLqLUn9l0LXk=" 1122 | }, 1123 | "stereotypeLabel": { 1124 | "$ref": "AAAAAAFtLqLUn9l1CxY=" 1125 | }, 1126 | "propertyLabel": { 1127 | "$ref": "AAAAAAFtLqLUn9l2TrI=" 1128 | } 1129 | }, 1130 | { 1131 | "_type": "UMLClassView", 1132 | "_id": "AAAAAAFtLqN9sdmtlkQ=", 1133 | "_parent": { 1134 | "$ref": "AAAAAAFtLp16g9cLLxY=" 1135 | }, 1136 | "model": { 1137 | "$ref": "AAAAAAFtLqN9sdmrl+4=" 1138 | }, 1139 | "subViews": [ 1140 | { 1141 | "_type": "UMLNameCompartmentView", 1142 | "_id": "AAAAAAFtLqN9sdmuGEw=", 1143 | "_parent": { 1144 | "$ref": "AAAAAAFtLqN9sdmtlkQ=" 1145 | }, 1146 | "model": { 1147 | "$ref": "AAAAAAFtLqN9sdmrl+4=" 1148 | }, 1149 | "subViews": [ 1150 | { 1151 | "_type": "LabelView", 1152 | "_id": "AAAAAAFtLqN9sdmvGB4=", 1153 | "_parent": { 1154 | "$ref": "AAAAAAFtLqN9sdmuGEw=" 1155 | }, 1156 | "visible": false, 1157 | "font": "Arial;13;0", 1158 | "left": 32, 1159 | "top": 144, 1160 | "height": 13 1161 | }, 1162 | { 1163 | "_type": "LabelView", 1164 | "_id": "AAAAAAFtLqN9sdmwB0k=", 1165 | "_parent": { 1166 | "$ref": "AAAAAAFtLqN9sdmuGEw=" 1167 | }, 1168 | "font": "Arial;13;1", 1169 | "left": 437, 1170 | "top": 367, 1171 | "width": 118, 1172 | "height": 13, 1173 | "text": "File System" 1174 | }, 1175 | { 1176 | "_type": "LabelView", 1177 | "_id": "AAAAAAFtLqN9sdmxxQE=", 1178 | "_parent": { 1179 | "$ref": "AAAAAAFtLqN9sdmuGEw=" 1180 | }, 1181 | "visible": false, 1182 | "font": "Arial;13;0", 1183 | "left": 32, 1184 | "top": 144, 1185 | "width": 80.9072265625, 1186 | "height": 13, 1187 | "text": "(from Model1)" 1188 | }, 1189 | { 1190 | "_type": "LabelView", 1191 | "_id": "AAAAAAFtLqN9sdmyc3Y=", 1192 | "_parent": { 1193 | "$ref": "AAAAAAFtLqN9sdmuGEw=" 1194 | }, 1195 | "visible": false, 1196 | "font": "Arial;13;0", 1197 | "left": 32, 1198 | "top": 144, 1199 | "height": 13, 1200 | "horizontalAlignment": 1 1201 | } 1202 | ], 1203 | "font": "Arial;13;0", 1204 | "left": 432, 1205 | "top": 360, 1206 | "width": 128, 1207 | "height": 25, 1208 | "stereotypeLabel": { 1209 | "$ref": "AAAAAAFtLqN9sdmvGB4=" 1210 | }, 1211 | "nameLabel": { 1212 | "$ref": "AAAAAAFtLqN9sdmwB0k=" 1213 | }, 1214 | "namespaceLabel": { 1215 | "$ref": "AAAAAAFtLqN9sdmxxQE=" 1216 | }, 1217 | "propertyLabel": { 1218 | "$ref": "AAAAAAFtLqN9sdmyc3Y=" 1219 | } 1220 | }, 1221 | { 1222 | "_type": "UMLAttributeCompartmentView", 1223 | "_id": "AAAAAAFtLqN9sdmz0II=", 1224 | "_parent": { 1225 | "$ref": "AAAAAAFtLqN9sdmtlkQ=" 1226 | }, 1227 | "model": { 1228 | "$ref": "AAAAAAFtLqN9sdmrl+4=" 1229 | }, 1230 | "font": "Arial;13;0", 1231 | "left": 432, 1232 | "top": 385, 1233 | "width": 128, 1234 | "height": 10 1235 | }, 1236 | { 1237 | "_type": "UMLOperationCompartmentView", 1238 | "_id": "AAAAAAFtLqN9sdm0hjM=", 1239 | "_parent": { 1240 | "$ref": "AAAAAAFtLqN9sdmtlkQ=" 1241 | }, 1242 | "model": { 1243 | "$ref": "AAAAAAFtLqN9sdmrl+4=" 1244 | }, 1245 | "subViews": [ 1246 | { 1247 | "_type": "UMLOperationView", 1248 | "_id": "AAAAAAFtLqOoYNogkYc=", 1249 | "_parent": { 1250 | "$ref": "AAAAAAFtLqN9sdm0hjM=" 1251 | }, 1252 | "model": { 1253 | "$ref": "AAAAAAFtLqOoINoazYk=" 1254 | }, 1255 | "font": "Arial;13;0", 1256 | "left": 437, 1257 | "top": 400, 1258 | "width": 118, 1259 | "height": 13, 1260 | "text": "+AccessDatasets()", 1261 | "horizontalAlignment": 0 1262 | }, 1263 | { 1264 | "_type": "UMLOperationView", 1265 | "_id": "AAAAAAFtLqO/3NpFHfE=", 1266 | "_parent": { 1267 | "$ref": "AAAAAAFtLqN9sdm0hjM=" 1268 | }, 1269 | "model": { 1270 | "$ref": "AAAAAAFtLqO/mNo/dKw=" 1271 | }, 1272 | "font": "Arial;13;0", 1273 | "left": 437, 1274 | "top": 415, 1275 | "width": 118, 1276 | "height": 13, 1277 | "text": "+PrintDataSets()", 1278 | "horizontalAlignment": 0 1279 | } 1280 | ], 1281 | "font": "Arial;13;0", 1282 | "left": 432, 1283 | "top": 395, 1284 | "width": 128, 1285 | "height": 38 1286 | }, 1287 | { 1288 | "_type": "UMLReceptionCompartmentView", 1289 | "_id": "AAAAAAFtLqN9sdm1HGY=", 1290 | "_parent": { 1291 | "$ref": "AAAAAAFtLqN9sdmtlkQ=" 1292 | }, 1293 | "model": { 1294 | "$ref": "AAAAAAFtLqN9sdmrl+4=" 1295 | }, 1296 | "visible": false, 1297 | "font": "Arial;13;0", 1298 | "left": 16, 1299 | "top": 72, 1300 | "width": 10, 1301 | "height": 10 1302 | }, 1303 | { 1304 | "_type": "UMLTemplateParameterCompartmentView", 1305 | "_id": "AAAAAAFtLqN9sdm2QHY=", 1306 | "_parent": { 1307 | "$ref": "AAAAAAFtLqN9sdmtlkQ=" 1308 | }, 1309 | "model": { 1310 | "$ref": "AAAAAAFtLqN9sdmrl+4=" 1311 | }, 1312 | "visible": false, 1313 | "font": "Arial;13;0", 1314 | "left": 16, 1315 | "top": 72, 1316 | "width": 10, 1317 | "height": 10 1318 | } 1319 | ], 1320 | "font": "Arial;13;0", 1321 | "containerChangeable": true, 1322 | "left": 432, 1323 | "top": 360, 1324 | "width": 128, 1325 | "height": 81, 1326 | "nameCompartment": { 1327 | "$ref": "AAAAAAFtLqN9sdmuGEw=" 1328 | }, 1329 | "attributeCompartment": { 1330 | "$ref": "AAAAAAFtLqN9sdmz0II=" 1331 | }, 1332 | "operationCompartment": { 1333 | "$ref": "AAAAAAFtLqN9sdm0hjM=" 1334 | }, 1335 | "receptionCompartment": { 1336 | "$ref": "AAAAAAFtLqN9sdm1HGY=" 1337 | }, 1338 | "templateParameterCompartment": { 1339 | "$ref": "AAAAAAFtLqN9sdm2QHY=" 1340 | } 1341 | }, 1342 | { 1343 | "_type": "UMLAssociationView", 1344 | "_id": "AAAAAAFtLqQmVdqYl14=", 1345 | "_parent": { 1346 | "$ref": "AAAAAAFtLp16g9cLLxY=" 1347 | }, 1348 | "model": { 1349 | "$ref": "AAAAAAFtLqQmVdqU3wk=" 1350 | }, 1351 | "subViews": [ 1352 | { 1353 | "_type": "EdgeLabelView", 1354 | "_id": "AAAAAAFtLqQmVdqZAFM=", 1355 | "_parent": { 1356 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1357 | }, 1358 | "model": { 1359 | "$ref": "AAAAAAFtLqQmVdqU3wk=" 1360 | }, 1361 | "font": "Arial;13;0", 1362 | "left": 350, 1363 | "top": 263, 1364 | "width": 145.58349609375, 1365 | "height": 13, 1366 | "alpha": 0.6468492728022427, 1367 | "distance": 97.18538984847466, 1368 | "hostEdge": { 1369 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1370 | }, 1371 | "edgePosition": 1, 1372 | "text": "+Create new File System" 1373 | }, 1374 | { 1375 | "_type": "EdgeLabelView", 1376 | "_id": "AAAAAAFtLqQmVdqadEg=", 1377 | "_parent": { 1378 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1379 | }, 1380 | "model": { 1381 | "$ref": "AAAAAAFtLqQmVdqU3wk=" 1382 | }, 1383 | "visible": null, 1384 | "font": "Arial;13;0", 1385 | "left": 343, 1386 | "top": 239, 1387 | "height": 13, 1388 | "alpha": 1.5707963267948966, 1389 | "distance": 30, 1390 | "hostEdge": { 1391 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1392 | }, 1393 | "edgePosition": 1 1394 | }, 1395 | { 1396 | "_type": "EdgeLabelView", 1397 | "_id": "AAAAAAFtLqQmVdqbQZU=", 1398 | "_parent": { 1399 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1400 | }, 1401 | "model": { 1402 | "$ref": "AAAAAAFtLqQmVdqU3wk=" 1403 | }, 1404 | "visible": false, 1405 | "font": "Arial;13;0", 1406 | "left": 315, 1407 | "top": 274, 1408 | "height": 13, 1409 | "alpha": -1.5707963267948966, 1410 | "distance": 15, 1411 | "hostEdge": { 1412 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1413 | }, 1414 | "edgePosition": 1 1415 | }, 1416 | { 1417 | "_type": "EdgeLabelView", 1418 | "_id": "AAAAAAFtLqQmVdqc1CM=", 1419 | "_parent": { 1420 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1421 | }, 1422 | "model": { 1423 | "$ref": "AAAAAAFtLqQmVdqVATc=" 1424 | }, 1425 | "visible": false, 1426 | "font": "Arial;13;0", 1427 | "left": 237, 1428 | "top": 176, 1429 | "height": 13, 1430 | "alpha": 0.5235987755982988, 1431 | "distance": 30, 1432 | "hostEdge": { 1433 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1434 | }, 1435 | "edgePosition": 2 1436 | }, 1437 | { 1438 | "_type": "EdgeLabelView", 1439 | "_id": "AAAAAAFtLqQmVdqdV44=", 1440 | "_parent": { 1441 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1442 | }, 1443 | "model": { 1444 | "$ref": "AAAAAAFtLqQmVdqVATc=" 1445 | }, 1446 | "visible": false, 1447 | "font": "Arial;13;0", 1448 | "left": 247, 1449 | "top": 167, 1450 | "height": 13, 1451 | "alpha": 0.7853981633974483, 1452 | "distance": 40, 1453 | "hostEdge": { 1454 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1455 | }, 1456 | "edgePosition": 2 1457 | }, 1458 | { 1459 | "_type": "EdgeLabelView", 1460 | "_id": "AAAAAAFtLqQmVdqeoK4=", 1461 | "_parent": { 1462 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1463 | }, 1464 | "model": { 1465 | "$ref": "AAAAAAFtLqQmVdqVATc=" 1466 | }, 1467 | "visible": false, 1468 | "font": "Arial;13;0", 1469 | "left": 217, 1470 | "top": 196, 1471 | "height": 13, 1472 | "alpha": -0.5235987755982988, 1473 | "distance": 25, 1474 | "hostEdge": { 1475 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1476 | }, 1477 | "edgePosition": 2 1478 | }, 1479 | { 1480 | "_type": "EdgeLabelView", 1481 | "_id": "AAAAAAFtLqQmVdqfJXQ=", 1482 | "_parent": { 1483 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1484 | }, 1485 | "model": { 1486 | "$ref": "AAAAAAFtLqQmVdqWVgI=" 1487 | }, 1488 | "visible": false, 1489 | "font": "Arial;13;0", 1490 | "left": 430, 1491 | "top": 325, 1492 | "height": 13, 1493 | "alpha": -0.5235987755982988, 1494 | "distance": 30, 1495 | "hostEdge": { 1496 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1497 | } 1498 | }, 1499 | { 1500 | "_type": "EdgeLabelView", 1501 | "_id": "AAAAAAFtLqQmVdqgPmU=", 1502 | "_parent": { 1503 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1504 | }, 1505 | "model": { 1506 | "$ref": "AAAAAAFtLqQmVdqWVgI=" 1507 | }, 1508 | "visible": false, 1509 | "font": "Arial;13;0", 1510 | "left": 436, 1511 | "top": 313, 1512 | "height": 13, 1513 | "alpha": -0.7853981633974483, 1514 | "distance": 40, 1515 | "hostEdge": { 1516 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1517 | } 1518 | }, 1519 | { 1520 | "_type": "EdgeLabelView", 1521 | "_id": "AAAAAAFtLqQmVdqhqco=", 1522 | "_parent": { 1523 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1524 | }, 1525 | "model": { 1526 | "$ref": "AAAAAAFtLqQmVdqWVgI=" 1527 | }, 1528 | "visible": false, 1529 | "font": "Arial;13;0", 1530 | "left": 417, 1531 | "top": 349, 1532 | "height": 13, 1533 | "alpha": 0.5235987755982988, 1534 | "distance": 25, 1535 | "hostEdge": { 1536 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1537 | } 1538 | }, 1539 | { 1540 | "_type": "UMLQualifierCompartmentView", 1541 | "_id": "AAAAAAFtLqQmVdqilfE=", 1542 | "_parent": { 1543 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1544 | }, 1545 | "model": { 1546 | "$ref": "AAAAAAFtLqQmVdqVATc=" 1547 | }, 1548 | "visible": false, 1549 | "font": "Arial;13;0", 1550 | "width": 10, 1551 | "height": 10 1552 | }, 1553 | { 1554 | "_type": "UMLQualifierCompartmentView", 1555 | "_id": "AAAAAAFtLqQmVdqjVG0=", 1556 | "_parent": { 1557 | "$ref": "AAAAAAFtLqQmVdqYl14=" 1558 | }, 1559 | "model": { 1560 | "$ref": "AAAAAAFtLqQmVdqWVgI=" 1561 | }, 1562 | "visible": false, 1563 | "font": "Arial;13;0", 1564 | "width": 10, 1565 | "height": 10 1566 | } 1567 | ], 1568 | "font": "Arial;13;0", 1569 | "head": { 1570 | "$ref": "AAAAAAFtLqN9sdmtlkQ=" 1571 | }, 1572 | "tail": { 1573 | "$ref": "AAAAAAFtLp2xh9cRi14=" 1574 | }, 1575 | "lineStyle": 1, 1576 | "points": "208:179;442:359", 1577 | "showVisibility": true, 1578 | "nameLabel": { 1579 | "$ref": "AAAAAAFtLqQmVdqZAFM=" 1580 | }, 1581 | "stereotypeLabel": { 1582 | "$ref": "AAAAAAFtLqQmVdqadEg=" 1583 | }, 1584 | "propertyLabel": { 1585 | "$ref": "AAAAAAFtLqQmVdqbQZU=" 1586 | }, 1587 | "tailRoleNameLabel": { 1588 | "$ref": "AAAAAAFtLqQmVdqc1CM=" 1589 | }, 1590 | "tailPropertyLabel": { 1591 | "$ref": "AAAAAAFtLqQmVdqdV44=" 1592 | }, 1593 | "tailMultiplicityLabel": { 1594 | "$ref": "AAAAAAFtLqQmVdqeoK4=" 1595 | }, 1596 | "headRoleNameLabel": { 1597 | "$ref": "AAAAAAFtLqQmVdqfJXQ=" 1598 | }, 1599 | "headPropertyLabel": { 1600 | "$ref": "AAAAAAFtLqQmVdqgPmU=" 1601 | }, 1602 | "headMultiplicityLabel": { 1603 | "$ref": "AAAAAAFtLqQmVdqhqco=" 1604 | }, 1605 | "tailQualifiersCompartment": { 1606 | "$ref": "AAAAAAFtLqQmVdqilfE=" 1607 | }, 1608 | "headQualifiersCompartment": { 1609 | "$ref": "AAAAAAFtLqQmVdqjVG0=" 1610 | } 1611 | }, 1612 | { 1613 | "_type": "UMLAssociationView", 1614 | "_id": "AAAAAAFtLqSLk9tBItk=", 1615 | "_parent": { 1616 | "$ref": "AAAAAAFtLp16g9cLLxY=" 1617 | }, 1618 | "model": { 1619 | "$ref": "AAAAAAFtLqSLkNs9gHo=" 1620 | }, 1621 | "subViews": [ 1622 | { 1623 | "_type": "EdgeLabelView", 1624 | "_id": "AAAAAAFtLqSLk9tC8yg=", 1625 | "_parent": { 1626 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1627 | }, 1628 | "model": { 1629 | "$ref": "AAAAAAFtLqSLkNs9gHo=" 1630 | }, 1631 | "font": "Arial;13;0", 1632 | "left": 546, 1633 | "top": 247, 1634 | "width": 115.2607421875, 1635 | "height": 13, 1636 | "alpha": 1.8071791570055553, 1637 | "distance": 68.4470598345904, 1638 | "hostEdge": { 1639 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1640 | }, 1641 | "edgePosition": 1, 1642 | "text": "+Find Shortest Path" 1643 | }, 1644 | { 1645 | "_type": "EdgeLabelView", 1646 | "_id": "AAAAAAFtLqSLk9tDbrs=", 1647 | "_parent": { 1648 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1649 | }, 1650 | "model": { 1651 | "$ref": "AAAAAAFtLqSLkNs9gHo=" 1652 | }, 1653 | "visible": null, 1654 | "font": "Arial;13;0", 1655 | "left": 563, 1656 | "top": 253, 1657 | "height": 13, 1658 | "alpha": 1.5707963267948966, 1659 | "distance": 30, 1660 | "hostEdge": { 1661 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1662 | }, 1663 | "edgePosition": 1 1664 | }, 1665 | { 1666 | "_type": "EdgeLabelView", 1667 | "_id": "AAAAAAFtLqSLk9tEtyE=", 1668 | "_parent": { 1669 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1670 | }, 1671 | "model": { 1672 | "$ref": "AAAAAAFtLqSLkNs9gHo=" 1673 | }, 1674 | "visible": false, 1675 | "font": "Arial;13;0", 1676 | "left": 520, 1677 | "top": 242, 1678 | "height": 13, 1679 | "alpha": -1.5707963267948966, 1680 | "distance": 15, 1681 | "hostEdge": { 1682 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1683 | }, 1684 | "edgePosition": 1 1685 | }, 1686 | { 1687 | "_type": "EdgeLabelView", 1688 | "_id": "AAAAAAFtLqSLk9tFBk0=", 1689 | "_parent": { 1690 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1691 | }, 1692 | "model": { 1693 | "$ref": "AAAAAAFtLqSLk9s+kYQ=" 1694 | }, 1695 | "visible": false, 1696 | "font": "Arial;13;0", 1697 | "left": 572, 1698 | "top": 168, 1699 | "height": 13, 1700 | "alpha": 0.5235987755982988, 1701 | "distance": 30, 1702 | "hostEdge": { 1703 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1704 | }, 1705 | "edgePosition": 2 1706 | }, 1707 | { 1708 | "_type": "EdgeLabelView", 1709 | "_id": "AAAAAAFtLqSLk9tGzW0=", 1710 | "_parent": { 1711 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1712 | }, 1713 | "model": { 1714 | "$ref": "AAAAAAFtLqSLk9s+kYQ=" 1715 | }, 1716 | "visible": false, 1717 | "font": "Arial;13;0", 1718 | "left": 584, 1719 | "top": 173, 1720 | "height": 13, 1721 | "alpha": 0.7853981633974483, 1722 | "distance": 40, 1723 | "hostEdge": { 1724 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1725 | }, 1726 | "edgePosition": 2 1727 | }, 1728 | { 1729 | "_type": "EdgeLabelView", 1730 | "_id": "AAAAAAFtLqSLk9tHFD4=", 1731 | "_parent": { 1732 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1733 | }, 1734 | "model": { 1735 | "$ref": "AAAAAAFtLqSLk9s+kYQ=" 1736 | }, 1737 | "visible": false, 1738 | "font": "Arial;13;0", 1739 | "left": 547, 1740 | "top": 156, 1741 | "height": 13, 1742 | "alpha": -0.5235987755982988, 1743 | "distance": 25, 1744 | "hostEdge": { 1745 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1746 | }, 1747 | "edgePosition": 2 1748 | }, 1749 | { 1750 | "_type": "EdgeLabelView", 1751 | "_id": "AAAAAAFtLqSLk9tIwhc=", 1752 | "_parent": { 1753 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1754 | }, 1755 | "model": { 1756 | "$ref": "AAAAAAFtLqSLk9s/91M=" 1757 | }, 1758 | "visible": false, 1759 | "font": "Arial;13;0", 1760 | "left": 527, 1761 | "top": 331, 1762 | "height": 13, 1763 | "alpha": -0.5235987755982988, 1764 | "distance": 30, 1765 | "hostEdge": { 1766 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1767 | } 1768 | }, 1769 | { 1770 | "_type": "EdgeLabelView", 1771 | "_id": "AAAAAAFtLqSLk9tJfzQ=", 1772 | "_parent": { 1773 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1774 | }, 1775 | "model": { 1776 | "$ref": "AAAAAAFtLqSLk9s/91M=" 1777 | }, 1778 | "visible": false, 1779 | "font": "Arial;13;0", 1780 | "left": 540, 1781 | "top": 333, 1782 | "height": 13, 1783 | "alpha": -0.7853981633974483, 1784 | "distance": 40, 1785 | "hostEdge": { 1786 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1787 | } 1788 | }, 1789 | { 1790 | "_type": "EdgeLabelView", 1791 | "_id": "AAAAAAFtLqSLk9tK/m8=", 1792 | "_parent": { 1793 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1794 | }, 1795 | "model": { 1796 | "$ref": "AAAAAAFtLqSLk9s/91M=" 1797 | }, 1798 | "visible": false, 1799 | "font": "Arial;13;0", 1800 | "left": 499, 1801 | "top": 328, 1802 | "height": 13, 1803 | "alpha": 0.5235987755982988, 1804 | "distance": 25, 1805 | "hostEdge": { 1806 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1807 | } 1808 | }, 1809 | { 1810 | "_type": "UMLQualifierCompartmentView", 1811 | "_id": "AAAAAAFtLqSLk9tLcYU=", 1812 | "_parent": { 1813 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1814 | }, 1815 | "model": { 1816 | "$ref": "AAAAAAFtLqSLk9s+kYQ=" 1817 | }, 1818 | "visible": false, 1819 | "font": "Arial;13;0", 1820 | "width": 10, 1821 | "height": 10 1822 | }, 1823 | { 1824 | "_type": "UMLQualifierCompartmentView", 1825 | "_id": "AAAAAAFtLqSLk9tMCdM=", 1826 | "_parent": { 1827 | "$ref": "AAAAAAFtLqSLk9tBItk=" 1828 | }, 1829 | "model": { 1830 | "$ref": "AAAAAAFtLqSLk9s/91M=" 1831 | }, 1832 | "visible": false, 1833 | "font": "Arial;13;0", 1834 | "width": 10, 1835 | "height": 10 1836 | } 1837 | ], 1838 | "font": "Arial;13;0", 1839 | "head": { 1840 | "$ref": "AAAAAAFtLqN9sdmtlkQ=" 1841 | }, 1842 | "tail": { 1843 | "$ref": "AAAAAAFtLqB5GtfXpjs=" 1844 | }, 1845 | "lineStyle": 1, 1846 | "points": "565:145;506:359", 1847 | "showVisibility": true, 1848 | "nameLabel": { 1849 | "$ref": "AAAAAAFtLqSLk9tC8yg=" 1850 | }, 1851 | "stereotypeLabel": { 1852 | "$ref": "AAAAAAFtLqSLk9tDbrs=" 1853 | }, 1854 | "propertyLabel": { 1855 | "$ref": "AAAAAAFtLqSLk9tEtyE=" 1856 | }, 1857 | "tailRoleNameLabel": { 1858 | "$ref": "AAAAAAFtLqSLk9tFBk0=" 1859 | }, 1860 | "tailPropertyLabel": { 1861 | "$ref": "AAAAAAFtLqSLk9tGzW0=" 1862 | }, 1863 | "tailMultiplicityLabel": { 1864 | "$ref": "AAAAAAFtLqSLk9tHFD4=" 1865 | }, 1866 | "headRoleNameLabel": { 1867 | "$ref": "AAAAAAFtLqSLk9tIwhc=" 1868 | }, 1869 | "headPropertyLabel": { 1870 | "$ref": "AAAAAAFtLqSLk9tJfzQ=" 1871 | }, 1872 | "headMultiplicityLabel": { 1873 | "$ref": "AAAAAAFtLqSLk9tK/m8=" 1874 | }, 1875 | "tailQualifiersCompartment": { 1876 | "$ref": "AAAAAAFtLqSLk9tLcYU=" 1877 | }, 1878 | "headQualifiersCompartment": { 1879 | "$ref": "AAAAAAFtLqSLk9tMCdM=" 1880 | } 1881 | } 1882 | ] 1883 | }, 1884 | { 1885 | "_type": "UMLClass", 1886 | "_id": "AAAAAAFtLp2xh9cPE6U=", 1887 | "_parent": { 1888 | "$ref": "AAAAAAFtLp16g9cKmGI=" 1889 | }, 1890 | "name": "Computer Nodes", 1891 | "ownedElements": [ 1892 | { 1893 | "_type": "UMLAssociation", 1894 | "_id": "AAAAAAFtLqAu59dva28=", 1895 | "_parent": { 1896 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 1897 | }, 1898 | "end1": { 1899 | "_type": "UMLAssociationEnd", 1900 | "_id": "AAAAAAFtLqAu59dwPRA=", 1901 | "_parent": { 1902 | "$ref": "AAAAAAFtLqAu59dva28=" 1903 | }, 1904 | "reference": { 1905 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 1906 | }, 1907 | "navigable": false 1908 | }, 1909 | "end2": { 1910 | "_type": "UMLAssociationEnd", 1911 | "_id": "AAAAAAFtLqAu59dxSMM=", 1912 | "_parent": { 1913 | "$ref": "AAAAAAFtLqAu59dva28=" 1914 | }, 1915 | "name": "Communicate", 1916 | "reference": { 1917 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 1918 | } 1919 | } 1920 | }, 1921 | { 1922 | "_type": "UMLAssociation", 1923 | "_id": "AAAAAAFtLqQmVdqU3wk=", 1924 | "_parent": { 1925 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 1926 | }, 1927 | "name": "Create new File System", 1928 | "end1": { 1929 | "_type": "UMLAssociationEnd", 1930 | "_id": "AAAAAAFtLqQmVdqVATc=", 1931 | "_parent": { 1932 | "$ref": "AAAAAAFtLqQmVdqU3wk=" 1933 | }, 1934 | "reference": { 1935 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 1936 | }, 1937 | "navigable": false 1938 | }, 1939 | "end2": { 1940 | "_type": "UMLAssociationEnd", 1941 | "_id": "AAAAAAFtLqQmVdqWVgI=", 1942 | "_parent": { 1943 | "$ref": "AAAAAAFtLqQmVdqU3wk=" 1944 | }, 1945 | "reference": { 1946 | "$ref": "AAAAAAFtLqN9sdmrl+4=" 1947 | } 1948 | } 1949 | } 1950 | ], 1951 | "attributes": [ 1952 | { 1953 | "_type": "UMLAttribute", 1954 | "_id": "AAAAAAFtLp3dadc5bE8=", 1955 | "_parent": { 1956 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 1957 | }, 1958 | "name": "Name", 1959 | "visibility": "protected", 1960 | "type": "String" 1961 | }, 1962 | { 1963 | "_type": "UMLAttribute", 1964 | "_id": "AAAAAAFtLp4x99dBhhk=", 1965 | "_parent": { 1966 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 1967 | }, 1968 | "name": "MAC Address", 1969 | "visibility": "protected", 1970 | "type": "String" 1971 | }, 1972 | { 1973 | "_type": "UMLAttribute", 1974 | "_id": "AAAAAAFtLp5acNdIQZI=", 1975 | "_parent": { 1976 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 1977 | }, 1978 | "name": "IP Address", 1979 | "visibility": "protected", 1980 | "type": "String" 1981 | } 1982 | ], 1983 | "operations": [ 1984 | { 1985 | "_type": "UMLOperation", 1986 | "_id": "AAAAAAFtLp6k69dPYJw=", 1987 | "_parent": { 1988 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 1989 | }, 1990 | "name": "InputMessage" 1991 | }, 1992 | { 1993 | "_type": "UMLOperation", 1994 | "_id": "AAAAAAFtLp7xM9dWsZE=", 1995 | "_parent": { 1996 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 1997 | }, 1998 | "name": "PacketGenerator" 1999 | }, 2000 | { 2001 | "_type": "UMLOperation", 2002 | "_id": "AAAAAAFtLp8a1ddd+VQ=", 2003 | "_parent": { 2004 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 2005 | }, 2006 | "name": "Communication" 2007 | } 2008 | ] 2009 | }, 2010 | { 2011 | "_type": "UMLClass", 2012 | "_id": "AAAAAAFtLqB5GtfVbj8=", 2013 | "_parent": { 2014 | "$ref": "AAAAAAFtLp16g9cKmGI=" 2015 | }, 2016 | "name": "Main System", 2017 | "ownedElements": [ 2018 | { 2019 | "_type": "UMLAssociation", 2020 | "_id": "AAAAAAFtLqSLkNs9gHo=", 2021 | "_parent": { 2022 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 2023 | }, 2024 | "name": "Find Shortest Path", 2025 | "end1": { 2026 | "_type": "UMLAssociationEnd", 2027 | "_id": "AAAAAAFtLqSLk9s+kYQ=", 2028 | "_parent": { 2029 | "$ref": "AAAAAAFtLqSLkNs9gHo=" 2030 | }, 2031 | "reference": { 2032 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 2033 | }, 2034 | "navigable": false 2035 | }, 2036 | "end2": { 2037 | "_type": "UMLAssociationEnd", 2038 | "_id": "AAAAAAFtLqSLk9s/91M=", 2039 | "_parent": { 2040 | "$ref": "AAAAAAFtLqSLkNs9gHo=" 2041 | }, 2042 | "reference": { 2043 | "$ref": "AAAAAAFtLqN9sdmrl+4=" 2044 | } 2045 | } 2046 | } 2047 | ], 2048 | "operations": [ 2049 | { 2050 | "_type": "UMLOperation", 2051 | "_id": "AAAAAAFtLqCm/9gd7ms=", 2052 | "_parent": { 2053 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 2054 | }, 2055 | "name": "Kruskals" 2056 | }, 2057 | { 2058 | "_type": "UMLOperation", 2059 | "_id": "AAAAAAFtLqC+1NhCi7E=", 2060 | "_parent": { 2061 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 2062 | }, 2063 | "name": "PSO" 2064 | }, 2065 | { 2066 | "_type": "UMLOperation", 2067 | "_id": "AAAAAAFtLqDwqdhnScY=", 2068 | "_parent": { 2069 | "$ref": "AAAAAAFtLqB5GtfVbj8=" 2070 | }, 2071 | "name": "GenerateMST" 2072 | } 2073 | ] 2074 | }, 2075 | { 2076 | "_type": "UMLClass", 2077 | "_id": "AAAAAAFtLqF9jtimmIc=", 2078 | "_parent": { 2079 | "$ref": "AAAAAAFtLp16g9cKmGI=" 2080 | }, 2081 | "name": "Graph", 2082 | "ownedElements": [ 2083 | { 2084 | "_type": "UMLDependency", 2085 | "_id": "AAAAAAFtLqLUn9lxWiU=", 2086 | "_parent": { 2087 | "$ref": "AAAAAAFtLqF9jtimmIc=" 2088 | }, 2089 | "name": "Graphical Representation", 2090 | "source": { 2091 | "$ref": "AAAAAAFtLqF9jtimmIc=" 2092 | }, 2093 | "target": { 2094 | "$ref": "AAAAAAFtLp2xh9cPE6U=" 2095 | } 2096 | } 2097 | ], 2098 | "operations": [ 2099 | { 2100 | "_type": "UMLOperation", 2101 | "_id": "AAAAAAFtLqGgZdjuIYo=", 2102 | "_parent": { 2103 | "$ref": "AAAAAAFtLqF9jtimmIc=" 2104 | }, 2105 | "name": "generateMatrix" 2106 | }, 2107 | { 2108 | "_type": "UMLOperation", 2109 | "_id": "AAAAAAFtLqHgjNkTgYE=", 2110 | "_parent": { 2111 | "$ref": "AAAAAAFtLqF9jtimmIc=" 2112 | }, 2113 | "name": "generateList" 2114 | }, 2115 | { 2116 | "_type": "UMLOperation", 2117 | "_id": "AAAAAAFtLqIwu9k4emE=", 2118 | "_parent": { 2119 | "$ref": "AAAAAAFtLqF9jtimmIc=" 2120 | }, 2121 | "name": "createNetworkDiagram" 2122 | } 2123 | ] 2124 | }, 2125 | { 2126 | "_type": "UMLClass", 2127 | "_id": "AAAAAAFtLqN9sdmrl+4=", 2128 | "_parent": { 2129 | "$ref": "AAAAAAFtLp16g9cKmGI=" 2130 | }, 2131 | "name": "File System", 2132 | "operations": [ 2133 | { 2134 | "_type": "UMLOperation", 2135 | "_id": "AAAAAAFtLqOoINoazYk=", 2136 | "_parent": { 2137 | "$ref": "AAAAAAFtLqN9sdmrl+4=" 2138 | }, 2139 | "name": "AccessDatasets" 2140 | }, 2141 | { 2142 | "_type": "UMLOperation", 2143 | "_id": "AAAAAAFtLqO/mNo/dKw=", 2144 | "_parent": { 2145 | "$ref": "AAAAAAFtLqN9sdmrl+4=" 2146 | }, 2147 | "name": "PrintDataSets" 2148 | } 2149 | ] 2150 | } 2151 | ] 2152 | } 2153 | ] 2154 | } --------------------------------------------------------------------------------