A software ecosystem offline community detection method based on co-evolution optimization

By segmenting a dynamic network into multi-layer networks and employing a co-evolutionary optimization method to detect the community structure of a software ecosystem, the problem of low efficiency and insufficient accuracy in existing community detection technologies is solved, achieving efficient and accurate community detection and evolutionary event analysis.

CN122367455APending Publication Date: 2026-07-10YANCHENG INST OF TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610486058.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-04-14
Publication Date
2026-07-10

AI Technical Summary

Technical Problem

Existing dynamic community detection methods are mainly designed for online networks, resulting in low accuracy and time consumption in community detection. Furthermore, they fail to effectively utilize historical information, making it difficult to efficiently detect the community structure of offline networks within a software ecosystem.

Method used

A co-evolutionary optimization-based approach is adopted to divide the dynamic network into several continuous multi-layer networks. The community of each multi-layer network is detected simultaneously through the co-evolutionary optimization method. By utilizing the information interaction and community update of adjacent multi-layer networks, the accuracy and efficiency of community detection are improved.

Benefits of technology

It enables efficient and accurate community detection of offline networks in the software ecosystem, improving the efficiency and accuracy of community detection, and can generate community evolution events in a timely and accurate manner, supporting the regulation of the software ecosystem.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122367455A_ABST
    Figure CN122367455A_ABST
Patent Text Reader

Abstract

This invention provides an offline community detection method for software ecosystems based on co-evolutionary optimization. Software ecosystem networks are often dynamic, forming dynamic networks. Based on the network formation mechanism, dynamic networks can be divided into offline and online networks. The goal of dynamic network community detection in software ecosystems is to efficiently reveal the community structure and evolutionary patterns of the system, contributing to understanding individual interaction behavior and promoting the healthy and sustainable development of software ecosystems. This invention segments the dynamic network into several continuous multi-layer networks based on the similarity of the network at different time periods. It considers both the saliency of the intra-layer network community structure and the similarity of the inter-layer network community division. Nine offline software ecosystem networks with different characteristics are constructed using data crawled from GitHub. Comparative experimental results show that the proposed offline community detection method for software ecosystems is superior.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of software ecosystem technology, and more specifically, to an offline community detection method for software ecosystems based on co-evolutionary optimization. Background Technology

[0002] A software ecosystem is a complex system formed by the interaction of stakeholders such as software companies, developers, and technical communities within a specific technological environment, using software products, services, data, and knowledge as mediators. With the advancement of software servitization, ecosystem development, and collective intelligence, software ecosystems have attracted considerable attention from researchers. Essentially, a software ecosystem is a complex network reflecting different stakeholders and their relationships. These relationships often exhibit time dependence, making the complex network dynamic. Accurately and efficiently mining the relationships and evolutionary processes among different stakeholders within a software ecosystem allows for a profound understanding of individual interactive behaviors, thereby promoting the healthy and sustainable development of the entire ecosystem.

[0003] For a software ecosystem, it is often feasible to obtain information about developers, projects, users, and their relationships over a given period. It is easy to see that by dividing this period, multiple consecutive time segments can be obtained. Each time segment has specific entities and their relationships, forming a corresponding complex network. It can be observed that these time-segment networks can be generated simultaneously, thus constituting a dynamic network, which is called an offline network. For an offline network, community is an important topological characteristic. In particular, the communities in an offline software ecosystem network can be used to obtain several community evolution events offline, revealing the interactive behaviors of individuals. This paper studies the community detection problem in offline software ecosystem networks.

[0004] The prerequisite for detecting offline network communities within a software ecosystem is constructing an offline network that reflects the different entities within the software ecosystem and their relationships. However, scholars' research interests have primarily focused on constructing static and online networks reflecting these entities and their relationships. Bana et al. constructed developer collaboration networks, developer attention networks, project-to-project networks, developer-to-project networks, and Star networks, reflecting the relationships between developers, between projects, between developers and projects, and between users and projects, respectively. Hou et al. constructed a developer collaboration network based on collaboration strength and revealed its community structure. Herbold et al. pointed out that developer social networks are tools for analyzing developer communities and collaboration within software ecosystems and thoroughly investigated related work. It can be seen that they mainly focused on revealing the relationships and their strength between different entities within the software ecosystem. However, they neglected the dynamic nature of the network. To address this, Shen et al. constructed a dynamic network of the software ecosystem online based on the developer collaboration network, thus forming an online network of the software ecosystem. However, this study can only obtain the network for the current time period, which is not conducive to efficient analysis of dynamic networks, such as their community structure and evolution. Therefore, constructing offline networks of the software ecosystem is essential.

[0005] For an offline network within a software ecosystem, employing appropriate methods to detect its communities is crucial. It's readily apparent that the goal of community detection in a complex network is to maximize the connection density within a community and minimize the connection density between communities. This problem can be modeled as an optimization problem and is NP-hard. Evolutionary algorithms (EAs) are a popular framework for solving this problem and have been widely utilized by researchers. Pizzuti et al. proposed a multi-objective genetic algorithm to discover the community structure of the network, taking into account different community detection objectives. Furthermore, Bi et al. used a multi-objective, multi-stage genetic algorithm to solve the community detection problem in biological networks, obtaining functionally similar genes and biomarkers. However, these EAs can only detect the community structure of static networks and cannot perform community detection in dynamic networks. Therefore, Panizo-LLedot et al. employed a novel multi-objective genetic algorithm to solve the community detection problem in dynamic networks. The key lies in designing a local search strategy to repair the population from the previous time period to match the network in the current time period. Similarly, Folino et al. proposed an online community detection framework based on a multi-objective genetic algorithm, aiming to make the community structure of the network in the current time period significantly similar to the community partitioning of networks in adjacent time periods. Yin et al. used a multi-objective discrete particle swarm optimization algorithm framework to detect communities in large-scale dynamic networks, obtaining a series of dynamic communities. Furthermore, Zhang et al. designed a diverse population migration strategy and used a multi-objective evolutionary optimization method for dynamic community detection. However, these dynamic community detection methods are all aimed at online networks, and the online detection of the network in the current time period over time leads to low efficiency in dynamic community detection. In addition, when detecting communities in the current time period, only the communities of the network in the previous time period are used, limiting the use of historical information. In view of this, designing offline community detection methods for software ecosystems is crucial.

[0006] Currently, there are no relevant research results on offline networks of software ecosystems. Regarding dynamic network community detection methods, although existing methods have many advantages, their efficiency and information utilization are low. Furthermore, accurate and efficient detection of communities in offline software ecosystem networks helps to generate community evolution events in a timely and accurate manner, analyze individual interaction behaviors, and lay the foundation for the regulation of the system. However, simultaneously considering the quality and efficiency of offline community segmentation is very challenging. Existing research neglects the dynamic nature of software ecosystems. Existing research uses multi-objective parallel evolutionary optimization methods to detect dynamic communities in software ecosystems. However, this research only detects communities in the current time period, resulting in high time costs for community detection.

[0007] The investigation revealed that while some progress has been made in software ecosystem community detection research, primarily including static and dynamic community detection, offline construction of dynamic networks is generally feasible within software ecosystems, and there are currently no research findings on offline community detection for software ecosystems. Therefore, this paper proposes an offline community detection method for software ecosystems based on co-evolutionary optimization. Summary of the Invention

[0008] The purpose of this invention is to address the problems raised in the existing background technology. To achieve the above-mentioned objective, this invention provides the following technical solution: an offline community detection method for software ecosystems based on co-evolutionary optimization, comprising the following steps: S1: Perform dynamic network segmentation on the dynamic network of the software ecosystem. Based on the similarity of the network in different time periods, the dynamic network is segmented into several continuous multi-layer networks. Among them, a single-layer network is regarded as a special multi-layer network, and the time periods corresponding to adjacent multi-layer networks are continuous. S2: The co-evolutionary optimization method is used to simultaneously detect the communities of each multi-layer network. If several adjacent layers of the network are completely identical, then these layers of the network correspond to a population; otherwise, each layer of the network corresponds to a population. Information interaction between different populations is realized during the evolution process. S3: Perform community updates on adjacent multi-layer networks. If the last layer of the preceding multi-layer network is similar to the first layer of the following multi-layer network, adjust the community division of the following multi-layer network based on community alignment and update operations to make the community divisions of adjacent multi-layer networks similar. S4: Based on the community division of the network in each time period, the final community division of the dynamic network of the software ecosystem is obtained.

[0009] As a preferred technical solution of the present invention, the specific method for dynamic network segmentation in step S1 is as follows: Suppose that the dynamic network of the software ecosystem consists of a network with T time periods, and let the network in the t-th time period be denoted as . ,in A set of nodes, representing the main body of the software ecosystem. The set of edges within a layer represents the interaction relationships between subjects within the corresponding time period; the set of edges between layers... Used to characterize the identity of corresponding nodes in adjacent time period networks; the first time period network of the dynamic network is used as the initial single-layer network to form the first multi-layer network; the subsequent time period networks are traversed in turn. If the similarity between the currently traversed time period network and all time period networks in the current multi-layer network is greater than a preset threshold, then the time period network is merged into the current multi-layer network; if the similarity is less than or equal to the preset threshold, then a new multi-layer network is formed based on the time period network, and finally the dynamic network segmentation is completed.

[0010] As a preferred technical solution of the present invention, the specific process of detecting multi-layer network communities by the co-evolutionary optimization method in step S2 includes: S21: For any multi-layer network Extract the networks that are not completely identical, and record them in chronological order by time period. , where n is the number of not completely identical networks, and one network corresponds to one population; S22: For each not completely identical network, perform community partitioning encoding, initialize the corresponding population, and evaluate the fitness of each individual in the population; S23: Perform crossover, mutation, and selection operations on each population to generate the next generation population, and perform information exchange operations between different populations at preset generation intervals; S24: After iterating to the maximum number of iterations, a multilayer network is obtained. The community division is consistent if different layers in a multi-layer network are completely identical.

[0011] As a preferred technical solution of the present invention, the community division encoding in step S22 adopts a string encoding method. Each individual in the population corresponds to a solution of community division. The individual is composed of genes. Each gene is represented by an integer to indicate the community label of the corresponding node. If the gene values ​​of two nodes are the same, it indicates that the two nodes belong to the same community. The population initialization adopts a random initialization strategy to ensure that the community division of the individual has diversity.

[0012] As a preferred technical solution of the present invention, the individual fitness evaluation in step S22 is based on constructing an optimization model based on modularity, specifically as follows: Let the adjacency matrix of any network G in the multilayer network be A, the total number of edges be m, and the degree of node i be... The degree of node j is Define indicator variables If node i and node j belong to the same community, then ,otherwise .

[0013] As a preferred technical solution of the present invention, the information interaction between different populations in step S23 adopts a two-stage information interaction mechanism, specifically including: Phase 1: Indirect Information Interaction Among Populations For the parent population P_g and the offspring population O_g of the g-th generation, find the individual with the highest modularity and form the optimal individual set B. For a given individual in a population, the community partitioning similarity between that individual and individuals in set B is calculated using standard mutual information. This yields the individual similarity between that individual and all individuals in set B based on standard mutual information. ; The overall individual similarity between this individual and each optimal individual is calculated using the Jaccard coefficient. Perform the above operation on each individual in the population, and evaluate the individuals in the population together with the modularity value; based on the modularity and the comprehensive individual similarity, the individuals are divided into different non-dominated layers using the non-dominated sorting principle, and a preset number of excellent individuals are selected from the parent and offspring populations to form a temporary population. Phase Two: Direct Information Interaction Between Populations Perform local repair operations on individuals in the temporary population to obtain a repaired population. The specific repair process is as follows: Step 1 decodes the individuals in the temporary population to obtain the corresponding network community division; Step 2: Identify the common nodes between the network to be repaired and the original network. Based on the community tags of the common nodes in the original network, assign tags to the common nodes in the network to be repaired, and assign unique tags to the remaining nodes. Step 3: Traverse each node in the network to be repaired, and assign the most frequent label among its neighboring node labels to that node. If there are multiple labels with the same highest frequency, select one randomly until all nodes have completed label assignment. The repaired community division is obtained and encoded as the repaired individual. Merge all repaired populations with the original population, select the preset number of individuals with the highest modularity to generate the next generation population, and complete direct information exchange between populations.

[0014] As a preferred technical solution of the present invention, the specific process of community update of adjacent multi-layer networks in step S3 is as follows: S31: Calculate adjacent multilayer networks The last layer network and First layer network similarity ; S32: If If the similarity exceeds a preset threshold, community alignment is performed, specifically as follows: S321: Calculate separately Each community and The similarity of all communities is calculated based on a greedy matching strategy. Each community was matched with the most similar and unmatched [groups / entities]. For communities, if the similarity is greater than 0, a corresponding community tag is assigned; if the similarity is 0, it is marked as a new community and assigned a unique tag. S322: Assign independent community tags to newly added communities, complete. Community tag alignment; S33: Based on the aligned community tags, perform a community update operation, specifically: S331: Traversal For each node, find the label with the highest frequency among its neighboring nodes and record the highest frequency. S332: If the node exists simultaneously Then find its in The highest frequency of neighboring node labels is compared with two highest frequencies; if... The highest frequency of the neighbor labels of the middle node is greater than If the corresponding value is in the middle, then keep it. The tag should be replaced with the tag that is used to replace ... The label; if the node only exists If the label has the highest frequency among its neighboring labels, then retain the label corresponding to that label. S333: Repeat the traversal until all nodes have completed label updates, and obtain... The new community division is then completed, thereby updating the communities of adjacent multi-layer networks; if the similarity is less than or equal to the threshold, the community division of adjacent multi-layer networks remains unchanged.

[0015] As a preferred technical solution of the present invention, the construction method of the dynamic network of the software ecosystem is as follows: crawl the developer's submission records based on the GitHub platform, determine the continuous time period, construct the software ecosystem network for each time period according to the developer's submission records, the node represents the developer, the edge represents the cooperation relationship between the developers in the corresponding time period, and the network does not contain isolated nodes; by adjusting the time interval parameter and the non-overlapping size parameter, nine offline networks of the software ecosystem with different characteristics are constructed.

[0016] As a preferred embodiment of the present invention, the evolutionary operators of the co-evolutionary optimization method include a single-path crossover operator, a single-point mutation operator, and a roulette wheel selection operator, wherein: The single-way crossover operator is used to exchange gene sequences of individuals in a population to generate new offspring individuals; Single-point mutation operators are used to randomly change the value of a single gene in an individual, thereby achieving local adjustments to community division; The selection operator in the betting pool uses the fitness value of an individual to retain superior individuals for the next generation of the population through probabilistic selection.

[0017] A computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the offline community detection method for software ecosystems based on co-evolutionary optimization as described in any one of claims 1 to 9.

[0018] Compared with existing technologies, the advantages of this invention are as follows: Existing dynamic community detection methods mainly target online networks, resulting in low accuracy and time consumption. This paper proposes an offline community detection framework for offline networks in the software ecosystem. First, the dynamic network is divided into several continuous multi-layer networks; then, multi-layer network community detection based on co-evolutionary optimization is performed; finally, the communities of adjacent multi-layer networks are updated to further obtain the communities of the offline network. Existing dynamic community detection methods often detect network communities in the current time period online, reducing the efficiency of community detection. Based on this, this paper proposes a dynamic network segmentation method. According to the similarity of networks in different time periods, the dynamic network is divided into several continuous multi-layer networks, laying the foundation for subsequent simultaneous detection of communities in each multi-layer network.

[0019] Existing dynamic community detection methods typically rely on network communities from the previous time period to detect network communities in the current time period online, resulting in low utilization of historical information. Therefore, this paper proposes a multi-layer network community detection method based on co-evolutionary optimization. Its core mechanism lies in information interaction between different populations to enhance the utilization of historical information and improve community detection accuracy. To ensure the similarity of community partitioning in adjacent multi-layer networks, this paper proposes a community update method to adjust their communities. For adjacent multi-layer networks, the similarity between the last layer of the previous multi-layer network and the first layer of the next multi-layer network is determined based on the Jaccard coefficient. If these two layers are similar, their communities are aligned, and the latter's community is updated. Attached Figure Description Figure 1 A schematic diagram illustrating an example of a dynamic network for a software ecosystem provided by this invention; Figure 2 This is an example schematic diagram of dynamic network segmentation provided by the present invention; Figure 3 A schematic diagram of the two-stage inter-population information interaction mechanism provided by the present invention; Figure 4 A schematic diagram illustrating a community update example of an adjacent multilayer network provided by the present invention; Figure 5 The different community detection methods provided by this invention for each time period Schematic diagram; Figure 6 The different community detection methods provided by this invention for each time period Schematic diagram; Figure 7 Provided by the present invention Diagrams of the first and second multi-layered networks of communities. Detailed Implementation

[0020] Example 1: An Offline Community Detection Method for Software Ecosystems Based on Co-evolutionary Optimization. Problem Description: In a software ecosystem, different entities and their relationships form a diverse and complex network. Furthermore, over time, relationships between different entities may emerge or disappear, thus forming a dynamic network of the software ecosystem. A dynamic network of a software ecosystem can be viewed as a sequence of networks spanning multiple consecutive time periods, or as a multi-layered network composed of networks spanning multiple consecutive time periods, denoted as... Among them, there are a total of Each time period; Indicates time period The software ecosystem network or the first Layered network, and , express A collection of nodes, where each node represents a subject. express The set of edges, where each inner edge represents an interaction relationship between two corresponding entities; express A set of inter-layer edges, where each inter-layer edge represents the corresponding nodes that are the same between adjacent networks; a multi-layer network is represented as a set of multiple consecutive time-segment networks and their inter-layer edges. Figure 1 An example of a dynamic network for a software ecosystem is given. The diagram shows the software ecosystem network across five time periods, corresponding to a five-layer network; circles represent nodes, and the numbers inside the circles indicate node indices; solid black lines represent intra-layer edges, and dashed black lines represent inter-layer edges; and... compared to, Node 8 and its corresponding edges have been added.

[0021] It is easy to see that detecting a dynamic network community is equivalent to detecting its network communities for each time period. Currently, network communities for different time periods are often detected sequentially, with the network communities of the previous time period used to help detect those of the next. It can be observed that detecting network communities for each time period at a time, and only utilizing the network communities of the previous time period, results in low utilization and efficiency of historical information in dynamic community detection. In practice, obtaining the software ecosystem network for each time period simultaneously is helpful for offline detection of these networks' communities, i.e., offline community detection of the software ecosystem. Furthermore, timely and accurate detection of communities in the dynamic network of the software ecosystem helps to understand the evolution of these communities, providing a basis for the prediction and regulation of the software ecosystem. Therefore, research on offline community detection of the software ecosystem is essential. This problem can be described as: offline detection of several communities in the dynamic network of the software ecosystem, resulting in similar community divisions in adjacent consecutive time periods, close subject relationships between nodes within the same community, and sparse subject relationships between nodes in different communities.

[0022] 1.1 Overall Framework When detecting software ecosystem communities offline, it is necessary not only to accurately and fully utilize information from different time periods, but also to adopt appropriate optimization methods to improve the accuracy and efficiency of community detection. Therefore, this paper proposes an offline community detection method for software ecosystems based on co-evolutionary optimization, denoted as CEOOCD, whose overall framework is shown in Algorithm 1.

[0023] For a dynamic network of a software ecosystem First, based on the similarity of the network at different time periods, the dynamic network is divided into several continuous multi-layer networks, denoted as... ,in, This indicates the number of multi-layer networks; a multi-layer network consists of multiple networks spanning consecutive time periods, and adjacent multi-layer networks correspond to consecutive time periods; a single-layer network is considered a special type of multi-layer network (line 1); then, a co-evolutionary optimization method is used to detect the communities of each multi-layer network, where if several adjacent multi-layer networks are completely identical, then these multi-layer networks correspond to a population; otherwise, one layer of network corresponds to one population; during the evolutionary process, information is exchanged between different populations (lines 2-4); next, for adjacent multi-layer networks... and ( ),if The last layer network and Since the first layer networks are similar, based on their communities, a community update method is used to adjust the latter's communities to make them more efficient. and If the community divisions are similar, then their community divisions remain unchanged (lines 5-9); finally, based on the community divisions of the networks at different time periods, we obtain... Community division (line 10).

[0024] It is readily apparent that dynamic network segmentation, multi-layer network community detection based on co-evolutionary optimization, and community updating of adjacent multi-layer networks are the key technologies that this paper aims to address. These key technologies are described in detail below.

[0025] 1.2 Dynamic Network Segmentation As mentioned above, segmenting a dynamic network into several consecutive multi-layered networks is a prerequisite for its offline community detection. However, an offline network often contains a large number of networks spanning consecutive time periods, and these networks exhibit varying degrees of similarity. Therefore, dynamic network segmentation based on the similarity of networks across different time periods is essential. For dynamic networks... Considering time period and network and Using the Jaccard coefficient as a reference, to measure and The similarity is denoted as ,So, It can be represented as: (1) From equation (1), we can see that, ,and and The more similar, then The larger the value, the lower the value; conversely, The smaller the value.

[0026] Therefore, this section proposes a dynamic network segmentation method, the process of which is shown in Algorithm 2. For Assuming The first layer network is First, As a single-layer network, it forms (Line 3); Then, consider the network in subsequent time periods in turn. ( , ), and examine them in turn. ( , ),if Value greater than threshold and , then, Merge into In the middle, a multi-layered network is formed; otherwise, if Value less than or equal to threshold ,So, This will remain unchanged (line 4-18). For each time period of the network, perform the above process sequentially; finally... Divided into A multi-layer network (Line 23).

[0027] Assumption , Figure 1 The dynamic network is divided into two multi-layer networks. and ,like Figure 2 As shown in the figure, , , , , , , ; , and Forming a multi-layer network , and Forming a multi-layer network .

[0028] 1.3 Community Detection in Multilayer Networks Based on Co-evolutionary Optimization for By using dynamic network partitioning, several consecutive multi-layer networks can be obtained. In a multi-layered network with more than one layer, any two layers are similar; at least two layers in a multi-layered network are dissimilar. It's easy to understand that for a multi-layered network with more than one layer, the similarity between communities in different layers should be relatively high. Based on this, this section uses the same co-evolutionary optimization method to simultaneously detect communities in different multi-layered networks. Consider multi-layered networks. (For networks with more than 1 layer), Algorithm 3 presents a multi-layer network community detection framework based on co-evolutionary optimization.

[0029] for First, extract the non-identical networks from this multi-layer network and categorize them according to their corresponding time periods. ,in, express The number of networks that are not completely identical is determined, with one network corresponding to one population (line 1); then, for each network, community partitioning is performed, the corresponding population is initialized, and individuals in the population are evaluated (lines 3-4); next, each population undergoes crossover, mutation, and selection operations to generate the next generation population, wherein, every [number of networks]... Inter-population information exchange (lines 5-11); finally, we obtain... The community division is such that if different layers of the network are the same, then their community division is the same (line 13).

[0030] Furthermore, for multi-layer networks with a single layer, this paper employs the same evolutionary optimization method to detect their communities. Compared to co-evolutionary optimization, this method does not require inter-population information exchange; the remaining processes are the same.

[0031] It is readily apparent that optimization models, problem encoding, and evolutionary operators are key technologies for community detection using evolutionary optimization methods. Furthermore, for multi-layer networks with more than one layer, this paper employs a co-evolutionary optimization method to detect their communities, the core mechanism of which lies in information interaction between populations.

[0032] consider One of its communities is divided into Among them, community It can be viewed as a set of nodes within the community; yes The number of communities included. So, for ,have ,in, express The set of nodes in the middle; for ,satisfy ;also, .Establish When optimizing the model for the community detection problem, select As a decision variable.

[0033] by Using modularity as the decision variable, we aim to maximize the density of connections between nodes within a community and the sparseness of connections between nodes between communities. Based on this, we establish an optimization model for the community detection problem and implement individual evaluation. for The adjacency matrix, for The number of middle edges, and They are nodes and The degree, Used to determine nodes and Do they belong to the same community? If the node and If they belong to the same community, then... ;otherwise, Let the objective function reflecting modularity be . ,So, The optimization model for the community detection problem can be expressed as: (2) For evolutionary optimization, problem encoding is crucial, and each individual in the population corresponds to a solution to the problem, determining the subsequent evolutionary operators used. Here, string encoding is employed. Considering an individual... Depend on Each gene composition, therefore It can be represented as In string encoding, an integer is used to represent the community tag to which the node corresponding to a gene belongs. When At that time, node and They belong to the same community. Based on this, population initialization is performed. Furthermore, single-path crossover, single-point mutation, and roulette wheel selection operators are used here.

[0034] It is readily apparent that when using co-evolutionary optimization methods to solve problems, inter-population information interaction can promote the evolution of different populations, and the mode of information interaction is closely related to the characteristics of the problem. Currently, existing co-evolutionary optimization methods often achieve information interaction between populations through individual migration. However, for the multi-layer network community detection problem proposed in this section, each layer of the network corresponds to one population, and different layers of the network are not completely identical, making it difficult to directly perform individual migration between populations. Furthermore, the multi-layer network addressed in this section is a dynamic network, and dynamic network community detection aims for similar community divisions in adjacent consecutive time periods. Based on this, this section incorporates a two-stage inter-population information interaction mechanism into the proposed co-evolutionary optimization method, as shown in Algorithm 4.

[0035] for Consider the first The parent and offspring populations of each generation, among which, for , No. The parent and offspring populations of a generation are denoted as follows: and .for and First, in the first phase, based on modularity, standard mutual information, and Jaccard coefficient indicators, the following criteria were selected: Individuals generate a temporary population, denoted as _____. For each of the other network layers, the first... The parent and offspring populations of each generation simultaneously perform this process, achieving indirect information exchange between populations (lines 1-4); then, for In the second phase, local repair operations are performed on the temporary population corresponding to each other network layer to generate... A restoration population, where each individual represents A community division; then, merging these restoration populations with And select the module with the highest modularity. Individuals generate the next generation of the population. For each of the other network layers, the first... The temporary populations of each generation simultaneously perform this process, enabling direct information exchange between populations (lines 5-9); finally, for each layer of the network, the first... The population of the generation (line 10).

[0036] It can be seen that the indirect information exchange between populations in the first stage and the direct information exchange between populations in the second stage are the key to the proposed information exchange mechanism. These two stages will be described in detail below.

[0037] (1) Indirect information exchange between populations In inter-population indirect information exchange, it is desirable not only for high-quality community partitioning within the network but also for similar community partitioning between networks to improve solution quality. Furthermore, networks between layers exhibit varying degrees of similarity. Therefore, this section selects individuals based on modularity, standard mutual information, and the Jaccard coefficient to achieve inter-population indirect information exchange.

[0038] for , respectively record the first The individual with the highest modularity in both the parent and offspring populations of a generation is The set of these individuals is denoted as .for and For each individual, standard mutual information is used to measure the relationship between that individual and all others. ( The community partitioning similarity corresponding to ( ) is called individual similarity based on standard mutual information. For individuals and Individual similarity based on standard mutual information is denoted as ,So, ,in, and Individuals and The corresponding community divisions. This way, all of them can be obtained. ( ).

[0039] Furthermore, based on the Jaccard coefficient, measures With all ( The overall individual similarity is denoted as . ,So, ,in, Represents network and The higher the similarity between them, the better. The more important it is, the higher its corresponding weight. Furthermore, remember... The modularity is ,So, Based on this, utilizing and Jointly evaluate individuals .

[0040] for and Based on modularity and comprehensive individual similarity indices, and according to the principle of non-dominated ranking, different individuals are divided into different non-dominated layers, with individuals in lower non-dominated layers being superior to those in higher layers. Furthermore, for individuals within the same non-dominated layer, modularity is used to measure their relative merits. Based on this, from... and Select A temporary population is formed by a few outstanding individuals. For the parent and child populations corresponding to other current network layers, perform the above process to obtain the corresponding temporary populations.

[0041] (2) Direct information exchange between populations To a certain extent, indirect information interaction between populations balances the quality of intra-layer network community partitioning and the similarity of inter-layer network community partitioning. However, neglecting inter-population individual migration limits the improvement of population evolutionary capacity. Furthermore, different populations correspond to different networks. Therefore, this section performs local repair operations on individuals to be migrated, so that the repaired individuals represent a community partition of the corresponding network. Consider the... Temporary population Individuals in In order to relocate this individual to Local repair procedures are needed for this individual so that the repaired individual can represent... A community division. Below, individual... The local repair process.

[0042] First, decode the individual ,get A community division Then, for and Find the common nodes of these nodes. Each node is assigned a label to its community. If two nodes have the same label, they belong to the same community; otherwise, they belong to different communities. For the remaining nodes, assign a unique label to each node; then, consider... nodes Find the labels of all neighboring nodes of the given node, and assign the label with the highest frequency to the given node. If multiple labels have the same frequency, randomly select a label and assign it to the given node. Repeat this process until... Until each node is examined, we obtain A community division is defined; finally, this community division is encoded to obtain the repaired individual. .for By performing the above operations on all individuals, the population can be repaired. .

[0043] This allows repaired individuals to be migrated to other corresponding populations, enabling direct information exchange between populations.

[0044] against , Figure 3 A schematic diagram of a two-stage inter-population information exchange mechanism is given. In the diagram, the solid black lines represent the selection of individuals from the population to form a temporary population or the next generation population. For a temporary population, a local repair operation is performed to obtain a corresponding repaired population, enabling population migration. The red, yellow, and blue dashed lines represent inter-population information transfer. For the second stage... For each generation of the network, corresponding to the parent and child populations at different layers, indirect information exchange between populations is performed to generate a temporary population; for the first generation... The temporary populations corresponding to different layers of the network perform direct information exchange between populations to generate the next generation population.

[0045] 1.4 Community Update in Adjacent Multilayer Networks For a dynamic network, the above operations can yield several consecutive multi-layer networks and their communities, with similar divisions between different layers and their communities within each multi-layer network. However, for adjacent multi-layer networks... and ( It is difficult to guarantee. The last layer network and The community divisions of the first-layer networks are similar. This is because the two networks do not utilize each other's community information during community detection. It is easy to see that for a dynamic network, when detecting communities offline, the community divisions of adjacent consecutive time periods should be as similar as possible. Consider adjacent multi-layer networks. and ,So, The last layer of the network is And record The first layer network is .measure and similarity ,if Greater than the threshold This indicates that the two networks are similar, and the update... The community partitioning is performed as shown in Algorithm 5; otherwise, the community partitioning remains unchanged. This process is performed for any adjacent multilayer networks.

[0046] conduct When updating a community, firstly, its community label is adjusted according to the Jaccard coefficient to achieve community alignment. and The community tags should be as consistent as possible (line 2); then, based on Community tags and New community tags, updated The community (line 3); finally, we get New community division (line 5).

[0047] It is easy to see that community alignment and community renewal are key to community renewal in adjacent multilayer networks. These will be discussed in detail below.

[0048] (1) Community Alignment for and Based on co-evolutionary optimization-based community detection in multi-layer networks, the community divisions of each layer of the network were obtained. A community is divided into ,in, express It includes a community; yes Number of communities included. (Consideration) community and community Using the Jaccard coefficient as a reference, to measure and The similarity is denoted as ,So, It can be represented as: (3) From equation (3), we can see that, ,and and The more similar, then The larger the value, the lower the value; conversely, The smaller the value. In particular, when hour, and Completely different; when hour, and Exactly the same.

[0049] Drawing inspiration from greedy matching, adjustments were made. Community tags. First, using the Jaccard coefficient, calculate respectively. Every community and All community similarities; then, for A community Search Zhongyu The unmatched community with the highest similarity, if this community is unique and its corresponding community has a similarity greater than 0, then... The community label is assigned to For each node in the list, mark that community as matched; if multiple communities exist and their corresponding similarity is greater than 0, then randomly select one community and... The community label is assigned to For each node in the list, mark that the community has matched; if the corresponding community similarity is equal to 0, then it means... There is no connection between China and the United States. Similar unmatched communities, called This is a newly added community. For For each community, repeat the above process to obtain the tags of all newly added communities and nodes in other communities; finally, for each newly added community, set a unique community tag and assign the corresponding tag to the node of the corresponding newly added community.

[0050] (2) Community Updates for It adjusted its community tags through community alignment. This is easy to see. Community division and The community divisions in different layers of the network are similar. Furthermore, we hope... and The community divisions are similar. In order to achieve... and Different layers of networks and Since the community divisions are similar, this section proposes a community renewal method.

[0051] for First, examine the nodes of the network. Find the label with the highest frequency among the labels of the neighboring nodes of the given node, and record the frequency of this label as 1. If multiple labels have the same frequency, then randomly select one label and record its frequency as 1. Then, if There are nodes Then, find the label with the highest frequency among the neighboring node labels of this node in the network, and denote the frequency of this label as . If multiple labels have the same frequency, then randomly select one label and record its frequency as 1. Finally, if There are nodes So, comparison and ;if There are no nodes in or Greater than , then, Assign the corresponding label to the node Otherwise, if Less than , then, Assign the corresponding label to the node Repeat the above process until... Each node is examined until a new community partition of the network is obtained. The above process fully considers the similarity and community structure between the two corresponding networks, which helps to enhance the similarity of their community partitions.

[0052] Figure 2 middle, The last layer network and First layer network The similarity is ,mean and Since they are similar, their community divisions should also be similar. This can be achieved using the method described in Section 3.5. and The community partitioning of these networks is performed. However, the similarity of their community partitioning cannot be guaranteed. Therefore, the community update operation for adjacent multilayer networks proposed in this section is implemented, such as... Figure 4 As shown. Figure 4 In (a), nodes of the same color belong to the same community, and nodes of different colors belong to different communities. Figure 4 In (b), The community composed of green nodes and Community alignment composed of blue nodes in the middle. The community composed of yellow nodes in the middle and Community alignment formed by the red nodes in the middle. Figure 4 In (c), regarding The community division was performed, and after the community update, the community affiliation of node 3 was changed.

[0053] 2 Experimental Examples 2.1 Data Acquisition In the software ecosystem, the most representative developer collaboration is when two developers jointly submit a project. Furthermore, developer collaborations often change over time. Exploring the evolutionary patterns of developer collaboration communities can provide profound insights into developers' collaborative behaviors. Based on this, an offline network for the software ecosystem can be constructed.

[0054] To verify the effectiveness of the proposed method, GitHub was chosen as the data source to construct an offline network of the software ecosystem. It is easy to see that an offline network of the software ecosystem consists of networks for each time period, and the key to its construction lies in obtaining data from the network for each time period. Records of all commits made by several developers between March 29, 2019, and March 29, 2020 were obtained. Based on this, [the following was determined]. Each consecutive time period, and the developer submission records for each time period, i.e., the network data for each time period.

[0055] Sure When considering consecutive time periods, two important parameters are described below. Firstly, the collaborative relationship between two developers is related to the projects they submit, the time periods during which they jointly submit projects, and the time interval between these submissions. This time interval is denoted as... On the other hand, the degree of change in data between adjacent time periods determines the degree of change in the network, thus affecting the community detection results. Therefore, two consecutive and non-overlapping time periods are overlapped, and the non-overlap size is set to [value missing]. That is, the overlap size is To ensure network smoothness.

[0056] To fully validate the performance of the proposed method in offline networks of software ecosystems with varying characteristics, three parameter value combinations are presented: , and For each combination of parameter values, select those prior to March 29, 2020. Different combinations of parameter values ​​correspond to different network characteristics over consecutive time periods. It is easy to see that... This determines the likelihood of a collaboration between two developers, as well as the timeliness of their collaboration. This determines the degree of change in the network.

[0057] Within each time period, a corresponding software ecosystem network is constructed based on developers' submission records. Nodes represent developers, and edges represent collaborative relationships between two developers within that time period. This results in offline software ecosystem networks, where developers are randomly selected from different programming languages. , exist The number of developers has been increased on the basis of this. exist The developers have been added to the existing platform. , exist The number of developers has been increased on the basis of this. exist The developers have been added to the existing platform. , exist The number of developers has been increased on the basis of this. exist The network now includes developers. Furthermore, no isolated nodes are present in the software ecosystem network at any given time period.

[0058] 2.2 Performance Indicators For the offline community detection problem in the software ecosystem, a modularity approach is adopted. Evaluate the saliency of network community structure in each time period; standard mutual information. This measures the similarity between the current time period and the previous time period in terms of network community segmentation. It can be observed that the above two indicators are used to evaluate the community detection effectiveness for each time period.

[0059] It's easy to see the division of online communities over a period of time. The larger the value, the more distinct the corresponding network community structure. Network community division between the current time period and the previous time period. The higher the value, the more similar the two communities are.

[0060] 2.3 Comparison Methods and Parameter Settings This paper compares five evolutionary optimization-based community detection methods and one incremental update-based community detection method with the proposed method. The evolutionary optimization-based methods compared are MOGA-Net, NSGA-Ⅱ-RW, DYN-MOGA, DYN-MODPSO, and DPMOEA; the incremental update-based method is DYN-IMDC. MOGA-Net is a classic static community detection method, used to divide network communities at each time period, thus forming offline network communities. NSGA-Ⅱ-RW, when detecting dynamic network communities, uses random walks for local search, achieving population repair and efficient utilization of historical information. For detecting dynamic network communities, DYN-MOGA and DYN-MODPSO are based on multi-objective genetic algorithm frameworks and multi-objective discrete particle swarm optimization algorithm frameworks, respectively. DPMOEA designs diverse population migration strategies within the multi-objective evolutionary optimization framework to improve algorithm accuracy. DYN-IMDC employs different incremental update strategies based on the network change type to improve the quality of community division. Compared with the above six community testing methods, the performance of the proposed method can be fully reflected.

[0061] 2.4 Comparison with other methods The performance of CEOOCD was evaluated by conducting offline community tests on nine tested dynamic networks and comparing it with MOGA-Net, NSGA-Ⅱ-RW, DYN-MOGA, DYN-MODPSO, DPMOEA, and DYN-IMDC. Figure 5 and Figure 6The results for different community testing methods at each time period are given. and In the graph, the vertical axis is... or The horizontal axis represents the time step, with one time step corresponding to one time period.

[0062] Depend on Figure 5 It can be seen that: (1) For , , , and CEOOCD at all times The values ​​are all greater than all comparison methods; (2) for , , and CEOOCD during most periods The value is not less than all comparison methods; (3) For all dynamic networks, DYN-MODPSO has the best performance in most time periods. Superior to other comparison methods; (4) For all dynamic networks, DPMOEA outperforms other methods in all time periods. The value is the smallest. This means that, in most cases, the community structure of the CEOOCD offline detection software ecosystem is the most significant, thanks to its accurate and full utilization of information from different time periods; regarding each time period... In terms of performance, DYN-MODPSO is second only to CEOOCD; among all methods, DPMOEA has the worst software ecosystem community structure in every time period.

[0063] Depend on Figure 6 It can be seen that: (1) For , , , , and CEOOCD during most periods The value is not less than all comparison methods; (2) for , and CEOOCD during most periods It is inferior to some comparative methods. This indicates that, in most cases, CEOOCD yields the most similar network community segments across different time periods; for , and The similarity of network community divisions obtained by CEOOCD across different time periods is poor. This is because the networks change significantly across different time periods, making it difficult to obtain corresponding similar community divisions.

[0064] To visualize the offline community detection of the network by the proposed method, this paper presents Gephi plots of the community detection results at different time periods. Due to space limitations, only [the following is selected here]. The first multilayer network and the second multilayer network Provide a Gephi plot of their community detection results, such as Figure 7 As shown in the diagram, due to the large number of communities included, this section selects the 10 largest communities, with different communities identified by different colors. Each node is identified by the corresponding developer's name; the size of each node is determined by the number of collaborators for that developer. The larger a node is, the more collaborators that developer has.

[0065] Depend on Figure 7 It can be seen that: (1) and Compared to the existing community, developer "AoEiuV020" joined... The community where the developer "X4" is located; (2) with Compared to the community, developer "06b" joined The community where the developer "X4" is located; (3) The community where the developer "X4" is located and The community where developer "X4" resides shares a common developer "X4" and "x4m"; (4) For all layers of the network, there are several developers whose corresponding nodes are relatively large. This indicates that for In the first and second multi-layer networks, the community where the developer "X4" was located changed relatively little at first, and then changed drastically; for , , and There are several developers who have a large number of collaborators; these developers are called core developers.

[0066] The above embodiments are only used to illustrate the present invention and are not intended to limit the technical solutions described herein. Although the present invention has been described in detail with reference to the above embodiments, the present invention is not limited to the specific embodiments described above. Therefore, any modifications or equivalent substitutions to the present invention, as well as all technical solutions and improvements that do not depart from the spirit and scope of the invention, are covered within the scope of the claims of the present invention.

Claims

1. A method for offline community detection in software ecosystems based on co-evolutionary optimization, characterized in that, Includes the following steps: S1: Perform dynamic network segmentation on the dynamic network of the software ecosystem. Based on the similarity of the network in different time periods, the dynamic network is segmented into several continuous multi-layer networks. Among them, a single-layer network is regarded as a special multi-layer network, and the time periods corresponding to adjacent multi-layer networks are continuous. S2: The co-evolutionary optimization method is used to simultaneously detect the communities of each multi-layer network. If several adjacent layers of the network are completely identical, then these layers of the network correspond to a population; otherwise, each layer of the network corresponds to a population. Information interaction between different populations is realized during the evolution process. S3: Perform community updates on adjacent multi-layer networks. If the last layer of the preceding multi-layer network is similar to the first layer of the following multi-layer network, adjust the community division of the following multi-layer network based on community alignment and update operations to make the community divisions of adjacent multi-layer networks similar. S4: Based on the community division of the network in each time period, the final community division of the dynamic network of the software ecosystem is obtained.

2. The offline community detection method for software ecosystems based on co-evolutionary optimization according to claim 1, characterized in that, The specific method for dynamic network segmentation in step S1 is as follows: Suppose that the dynamic network of the software ecosystem consists of a network with T time periods, and let the network in the t-th time period be denoted as . ,in A set of nodes, representing the main body of the software ecosystem. The set of edges within a layer represents the interaction relationships between subjects within the corresponding time period; the set of edges between layers... Used to characterize the identity of corresponding nodes in adjacent time period networks; the first time period network of the dynamic network is used as the initial single-layer network to form the first multi-layer network; the subsequent time period networks are traversed in turn, and if the similarity between the currently traversed time period network and all time period networks in the current multi-layer network is greater than a preset threshold, then the time period network is merged into the current multi-layer network. If the similarity is less than or equal to a preset threshold, a new multi-layer network is formed based on the network of that time period, and finally the dynamic network segmentation is completed.

3. The offline community detection method for software ecosystems based on co-evolutionary optimization according to claim 1, characterized in that, The specific process of detecting multi-layer network communities using the co-evolutionary optimization method in step S2 includes: S21: For any multi-layer network Extract the networks that are not completely identical, and record them in chronological order by time period. , where n is the number of not completely identical networks, and one network corresponds to one population; S22: For each not completely identical network, perform community partitioning encoding, initialize the corresponding population, and evaluate the fitness of each individual in the population; S23: Perform crossover, mutation, and selection operations on each population to generate the next generation population, and perform information exchange operations between different populations at preset generation intervals; S24: After iterating to the maximum number of iterations, a multilayer network is obtained. The community division is consistent if different layers in a multi-layer network are completely identical.

4. The offline community detection method for software ecosystems based on co-evolutionary optimization according to claim 3, characterized in that, In step S22, the community division encoding adopts a string encoding method. Each individual in the population corresponds to a community division solution. The individual is composed of genes, and each gene is represented by an integer to indicate the community label of the corresponding node. If the gene values ​​of two nodes are the same, it indicates that the two nodes belong to the same community. The population initialization adopts a random initialization strategy to ensure the diversity of the community division of individuals.

5. The offline community detection method for software ecosystems based on co-evolutionary optimization according to claim 3, characterized in that, In step S22, the individual fitness evaluation is based on constructing an optimization model using modularity. Specifically, let A be the adjacency matrix of any network G in a multilayer network, m be the total number of edges, and the degree of node i be... The degree of node j is Define indicator variables If node i and node j belong to the same community, then ,otherwise .

6. The offline community detection method for software ecosystems based on co-evolutionary optimization according to claim 3, characterized in that, The information exchange between different populations in step S23 adopts a two-stage information exchange mechanism, specifically including: Phase 1: Indirect Information Interaction Among Populations For the parent population P_g and the offspring population O_g of the g-th generation, find the individual with the highest modularity and form the optimal individual set B. For a given individual in a population, the community partitioning similarity between that individual and individuals in set B is calculated using standard mutual information. This yields the individual similarity between that individual and all individuals in set B based on standard mutual information. ; The overall individual similarity between this individual and each optimal individual is calculated using the Jaccard coefficient. Perform the above operation on each individual in the population, and evaluate the individuals in the population together with the modularity value; based on the modularity and the comprehensive individual similarity, the individuals are divided into different non-dominated layers using the non-dominated sorting principle, and a preset number of excellent individuals are selected from the parent and offspring populations to form a temporary population. Phase Two: Direct Information Interaction Between Populations Perform local repair operations on individuals in the temporary population to obtain a repaired population. The specific repair process is as follows: Step 1 decodes the individuals in the temporary population to obtain the corresponding network community division; Step 2: Identify the common nodes between the network to be repaired and the original network. Based on the community tags of the common nodes in the original network, assign tags to the common nodes in the network to be repaired, and assign unique tags to the remaining nodes. Step 3: Traverse each node in the network to be repaired, and assign the most frequent label among its neighboring node labels to that node. If there are multiple labels with the same highest frequency, select one randomly until all nodes have completed label assignment. The repaired community division is obtained and encoded as the repaired individual. Merge all repaired populations with the original population, select the preset number of individuals with the highest modularity to generate the next generation population, and complete direct information exchange between populations.

7. The offline community detection method for software ecosystems based on co-evolutionary optimization according to claim 1, characterized in that, The specific process of community update in adjacent multi-layer networks in step S3 is as follows: S31: Calculate adjacent multilayer networks The last layer network and First layer network similarity ; S32: If If the similarity exceeds a preset threshold, community alignment is performed, specifically as follows: S321: Calculate separately Each community and The similarity of all communities is calculated based on a greedy matching strategy. Each community was matched with the most similar and unmatched [groups / entities]. For communities, if the similarity is greater than 0, a corresponding community tag is assigned; if the similarity is 0, it is marked as a new community and assigned a unique tag. S322: Assign independent community tags to newly added communities, complete. Community tag alignment; S33: Based on the aligned community tags, perform a community update operation, specifically: S331: Traversal For each node, find the label with the highest frequency among its neighboring nodes and record the highest frequency. S332: If the node exists simultaneously Then find out where The highest frequency of neighboring node labels is compared with two highest frequencies; if... The highest frequency of the neighbor labels of the middle node is greater than If the corresponding value is in the middle, then keep it. The tag should be replaced with the tag that is used to replace ... The label; if the node only exists If the label has the highest frequency among its neighboring labels, then retain the label corresponding to that label. S333: Repeat the traversal until all nodes have completed label updates, and obtain... The new community division is then completed, thereby updating the communities of adjacent multi-layer networks; if the similarity is less than or equal to the threshold, the community division of adjacent multi-layer networks remains unchanged.

8. The offline community detection method for software ecosystems based on co-evolutionary optimization according to claim 1, characterized in that, The construction method of the dynamic network of the software ecosystem is as follows: crawl the developer's submission records based on the GitHub platform, determine the continuous time period, and construct the software ecosystem network for each time period according to the developer's submission records. The nodes represent the developers, the edges represent the cooperation relationship between the developers in the corresponding time period, and the network does not contain isolated nodes. By adjusting the time interval parameter and the non-overlapping size parameter, nine offline networks of the software ecosystem with different characteristics are constructed.

9. The offline community detection method for software ecosystems based on co-evolutionary optimization according to claim 1, characterized in that, The evolutionary operators of the co-evolutionary optimization method include a single-path crossover operator, a single-point mutation operator, and a roulette wheel selection operator, wherein: The single-way crossover operator is used to exchange gene sequences of individuals in a population to generate new offspring individuals; Single-point mutation operators are used to randomly change the value of a single gene in an individual, thereby achieving local adjustments to community division; The selection operator in the betting pool uses the fitness value of an individual to retain superior individuals for the next generation of the population through probabilistic selection.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the offline community detection method for software ecosystems based on co-evolutionary optimization as described in any one of claims 1 to 9.