Genetic algorithm of optimizing the qualification of programmer teams
Another Title
Генетический алгоритм оптимизации квалификации групп программистов
Bibliographic entry
Prihozhy, A. А. Genetic algorithm of optimizing the qualification of programmer teams = Генетический алгоритм оптимизации квалификации групп программистов / A. А. Prihozhy, A. М. Zhdanouski // Системный анализ и прикладная информатика. – 2020. – № 4. – С. 31-38.
Abstract
The partitioning a set of professional programmers into a set of teams when a programming project specifies requirements to the competency in various programming technologies and tools is a hard combinatorial problem. The paper proposes a genetic algorithm, which is capable of finding competitive and high-quality partitioning solutions in acceptable runtime. The algorithm introduces chromosomes in such a way as to assign each programmer to a team, define the team staff and easily reconstruct the teams during optimization process. A fitness function characterizes each chromosome with respect to the quality of the programmers partitioning. It accounts for the average qualification of teams and the qualification of team best representatives on each of the technologies. The function recognizes the teams that meet all constraints on the project and are workable from this point of view. It is also capable of recognizing the teams that do not meet the constraints and are unworkable. The algorithm defines the genetic operations of selection, crossing and mutation in such a way as to move programmers from unworkable to workable teams, to increase the number of workable teams, to ex-change programmers among workable teams, to increase the competency of every workable team, and thus to maximize the teams overall qualification. Experimental results obtained on a set of programmers graduated from Belarus universities show the capability of the genetic algorithm to find good partitioning solutions, maximize the teams’ competency and minimize the number of unemployed programmers.
Abstract in another language
Разбиение множества профессиональных программистов на множество команд, когда программистский проект определяет требования к компетенциям в различных технологиях и инструментах программирования, представляет собой сложную комбинаторную проблему. В статье предлагается генетический алгоритм, который способен находить конкурентоспособные и высококачественные решения по разбиению за приемлемое процессорное время. Алгоритм вводит хромосомы таким образом, чтобы распределить каждого программиста в команду, определить состав команд и легко реконструировать команды в процессе оптимизации. Функция приспособленности характеризует каждую хромосому с точки зрения качества разбиения программистов. В ней учитывается средняя квалификация команд и квалификация лучших представителей команд по каждой из технологий. Функция распознает команды, которые удовлетворяют всем ограничениям проекта и являются работоспособными с этой точки зрения. Она также способна распознавать команды, которые не соответствуют требованиям и не являются работоспособными. Алгоритм определяет генетические операции отбора, скрещивания и мутации таким образом, чтобы перемещать программистов из неработоспособных команд в работоспособные, увеличивать количество работоспособных команд, обмениваться программистами между работоспособными командами, повышать компетентность каждой работоспособной команды, и, таким образом, максимально увеличивать общую квалификацию команд. Экспериментальные результаты, полученные на выборке программистов, окончивших вузы Беларуси, показывают способность генетического алгоритма находить хорошие решения для разбиения, максимизировать компетенцию команд и минимизировать количество не работающих программистов.
View/ Open
Collections
- № 4[6]