⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bigtree_clustering.java~17~

📁 分别是模糊识别、模糊聚类、模糊控制的实例代码
💻 JAVA~17~
字号:
package fuzzy_project;class Bigtree_Clustering{  private double Matrix[][];  private int row;  private int col;  private int x;  private int length;  private Edges[] Value_Array;            //存储边  private Edges[] Bigtree_Array;          //存放最大树边  private int[][] Clustering_Matrix;      //存储所有可能的分类结果  private int loop[];  private String result;  public Bigtree_Clustering(double array[][],int r,int c)  {    Matrix=array;    row=r;    col=c;    x=0;    length=1;    Value_Array=new Edges[row*(row-1)/2];     //一个完全无向图的边数有row*(row-1)/2条    Bigtree_Array=new Edges[row-1];          //生成树的边数有row-1条    Clustering_Matrix=new int[row][col];    loop=new int[row*(row-1)/2];    result="#";    for(int i=0;i<row;i++)      for(int j=i+1;j<col;j++)      {        Value_Array[x]=new Edges(i,j,Matrix[i][j]);   //把相似矩阵的每条边存储在Edges类型的数组Value_Array中        x++;      }    for(int x=0;x<row;x++)    {      Clustering_Matrix[x][0]=x;                  //给矩阵赋初始值    }    quickSort(Value_Array,0,row*(row-1)/2-1);      //对数组sort_array中的权值进行排序    Bigtree_exe();  }  public void quickSort(Edges array[],int low,int high)   //快速排序算法  {    int i,j;    Edges temp;    i=low;    j=high;    temp=array[low];    while(i<j)    {    while(array[j].weight>=temp.weight&&i<j)      {j--;}    array[i]=array[j];    while(array[i].weight<=temp.weight&&i<j)      {i++;}    array[j]=array[i];    }    array[i]=temp;    if(i-1>low)      {quickSort(array,low,i-1);}    if(high>i+1)      {quickSort(array,i+1,high);}  }  public void Bigtree_exe()        //生成最大树  {    int x=0;    int v1,v2;    for(int i=row*(row-1)/2-1;i>=0;i--)          //判断是否构成回路    {      v1=seek(loop,Value_Array[i].start);      v2=seek(loop,Value_Array[i].end);      if(v1!=v2)      {        Bigtree_Array[x] = Value_Array[i];        loop[v1]=v2;        x++;      }      if(x==row-1)        break;    }  }  public String Clustering_exe(double param)     //在最大树基础上进行聚类  {    for(int i=0;i<row-1;i++)    {      if(Bigtree_Array[i].weight>=param)           //选取权值大于等于聚类参数的边      {        Clustering(Bigtree_Array[i].start,Bigtree_Array[i].end);        System.out.println(Bigtree_Array[i].start+","+Bigtree_Array[i].end);      }    }///////////////////////////////////////////////////////////////////////////////////////////   return result;  }  private void Clustering(int x,int y)     //根据当前最大树边的起点与终点值,合并具有相同元素的分类集合  {  }  private int seek(int loop[],int v)  {    int i=v;    while(loop[i]>0)    {i=loop[i];}    return i;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -