<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">sapi</journal-id><journal-title-group><journal-title xml:lang="ru">Системный анализ и прикладная информатика</journal-title><trans-title-group xml:lang="en"><trans-title>«System analysis and applied information science»</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">2309-4923</issn><issn pub-type="epub">2414-0481</issn><publisher><publisher-name>Belarusian National Technical University</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.21122/2309-4923-2020-4-31-38</article-id><article-id custom-type="elpub" pub-id-type="custom">sapi-494</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Обработка информации и принятие решений</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>Data processing and decision–making</subject></subj-group></article-categories><title-group><article-title>Генетический алгоритм оптимизации квалификации групп программистов</article-title><trans-title-group xml:lang="en"><trans-title>Genetic algorithm of optimizing the qualification of programmer teams</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Прихожий</surname><given-names>А. А.</given-names></name><name name-style="western" xml:lang="en"><surname>Prihozhy</surname><given-names>A. A.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Прихожий Анатолий Алексеевич – профессор кафедры программного обеспечения вычислительной техники и автоматизированных систем, доктор технических наук, профессор</p><p>Минск</p></bio><bio xml:lang="en"><p>Anatoly Prihozhy, doctor of science, professor, Computer and system software department</p></bio><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Ждановский</surname><given-names>А. М.</given-names></name><name name-style="western" xml:lang="en"><surname>Zhdanouski</surname><given-names>A. M.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Ждановский Арсений Матвеевич – аспирант кафедры «Программное обеспечение вычислительной техники и автоматизированных систем» БНТУ, инженер программист компании EPAM Systems</p><p>Минск</p></bio><bio xml:lang="en"><p>Arseni Zhdanouski is a postgraduate of the Computer and system software department of Belarusian national technical university, and a software engineer at EPAM Systems.</p></bio><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Белорусский национальный технический университет</institution><country>Беларусь</country></aff><aff xml:lang="en"><institution>Belarusian National Technical University</institution><country>Belarus</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2020</year></pub-date><pub-date pub-type="epub"><day>28</day><month>01</month><year>2021</year></pub-date><volume>0</volume><issue>4</issue><fpage>31</fpage><lpage>38</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Прихожий А.А., Ждановский А.М., 2021</copyright-statement><copyright-year>2021</copyright-year><copyright-holder xml:lang="ru">Прихожий А.А., Ждановский А.М.</copyright-holder><copyright-holder xml:lang="en">Prihozhy A.A., Zhdanouski A.M.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://sapi.bntu.by/jour/article/view/494">https://sapi.bntu.by/jour/article/view/494</self-uri><abstract><p>Разбиение множества профессиональных программистов на множество команд, когда программистский проект определяет требования к компетенциям в различных технологиях и инструментах программирования, представляет собой сложную комбинаторную проблему. В статье предлагается генетический алгоритм, который способен находить конкурентоспособные и высококачественные решения по разбиению за приемлемое процессорное время. Алгоритм вводит хромосомы таким образом, чтобы распределить каждого программиста в команду, определить состав команд и легко реконструировать команды в процессе оптимизации. Функция приспособленности характеризует каждую хромосому с точки зрения качества разбиения программистов. В ней учитывается средняя квалификация команд и квалификация лучших представителей команд по каждой из технологий. Функция распознает команды, которые удовлетворяют всем ограничениям проекта и являются работоспособными с этой точки зрения. Она также способна распознавать команды, которые не соответствуют требованиям и не являются работоспособными. Алгоритм определяет генетические операции отбора, скрещивания и мутации таким образом, чтобы перемещать программистов из неработоспособных команд в работоспособные, увеличивать количество работоспособных команд, обмениваться программистами между работоспособными командами, повышать компетентность каждой работоспособной команды, и, таким образом, максимально увеличивать общую квалификацию команд. Экспериментальные результаты, полученные на выборке программистов, окончивших вузы Беларуси, показывают способность генетического алгоритма находить хорошие решения для разбиения, максимизировать компетенцию команд и минимизировать количество не работающих программистов.</p></abstract><trans-abstract xml:lang="en"><p>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.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>оптимизация</kwd><kwd>генетический алгоритм</kwd><kwd>программист</kwd><kwd>команда</kwd><kwd>технология</kwd><kwd>квалификация</kwd></kwd-group><kwd-group xml:lang="en"><kwd>optimization</kwd><kwd>genetic algorithm</kwd><kwd>programmer</kwd><kwd>team</kwd><kwd>technology</kwd><kwd>qualification</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Barricelli, N.A. Symbio genetic evolution processes realized by artificial methods / N.A. Barricelli // Methodos, 1957, pp. 143–182.</mixed-citation><mixed-citation xml:lang="en">Barricelli, N.A. Symbio genetic evolution processes realized by artificial methods / N.A. Barricelli // Methodos, 1957, pp. 143–182.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">McCall, J. Genetic algorithms for modelling and optimization / J. McCall // Journal of Computational and Applied Mathematics, Vol. 184, 2005, pp. 205–222.</mixed-citation><mixed-citation xml:lang="en">McCall, J. Genetic algorithms for modelling and optimization / J. McCall // Journal of Computational and Applied Mathematics, Vol. 184, 2005, pp. 205–222.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Lamini, C. Genetic Algorithm Based Approach for Autonomous Mobile Robot Path Planning / C. Lamini, S. Benhlima, Elbekri // Procedia Computer Science, Vol. 127, 2018, pp. 180–189.</mixed-citation><mixed-citation xml:lang="en">Lamini, C. Genetic Algorithm Based Approach for Autonomous Mobile Robot Path Planning / C. Lamini, S. Benhlima,</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Thomas, D., Kovoor B. C. A Genetic Algorithm Approach to Autonomous Smart Vehicle Parking system / D. Thomas, B. C. Kovoor // Procedia Computer Science, Vol. 125, 2018, pp. 68–76.</mixed-citation><mixed-citation xml:lang="en">A.	Elbekri // Procedia Computer Science, Vol. 127, 2018, pp. 180–189.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Assi, M. Genetic Algorithm Analysis using the Graph Coloring Method for Solving the University Timetable Problem / Assi, M., Halawi, B., Haraty, R.A. // Procedia Computer Science, Vol. 126, 2018, pp. 899–906.</mixed-citation><mixed-citation xml:lang="en">Thomas, D., Kovoor B. C. A Genetic Algorithm Approach to Autonomous Smart Vehicle Parking system / D. Thomas,</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">M. Sergeeva, D. Delahaye, C. Mancel, A. Vidosavljevic. Dynamic airspace configuration by genetic algorithm / // journal of traffic and transportation engineering 2017; 4 (3): pp. 300–314.</mixed-citation><mixed-citation xml:lang="en">B. C. Kovoor // Procedia Computer Science, Vol. 125, 2018, pp. 68–76.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Прихожий, А. Эвристический генетический алгоритм оптимизации вычислительных конвейеров / А. А. Прихожий, А. М. Ждановский, О. Н. Карасик, М. Маттавелли // Доклады БГУИР, 2017, № 1, с. 34–41.</mixed-citation><mixed-citation xml:lang="en">Assi, M. Genetic Algorithm Analysis using the Graph Coloring Method for Solving the University Timetable Problem / Assi, M., Halawi, B., Haraty, R.A. // Procedia Computer Science, Vol. 126, 2018, pp. 899–906.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Joshi, S. Agile Development – Working with Agile in a Distributed Team Environment / S. Joshi // MSDN Magazine, 2012, Vol.27, No.1, pp.1–6.</mixed-citation><mixed-citation xml:lang="en">M. Sergeeva, D. Delahaye, C. Mancel, A. Vidosavljevic. Dynamic airspace configuration by genetic algorithm / // journal of traffic and transportation engineering 2017; 4 (3): pp. 300–314.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Müller, J. P., Rao, A. S., Singh, M. P. A-Teams: An Agent Architecture for Optimization and Decision-Support, Proceedings 5th International Workshop, ATAL’98 Paris, France, July 4–7, 1998, pp. 261–276.</mixed-citation><mixed-citation xml:lang="en">Prihozhy, А.A. Heuristic genetic algorithm for computational pipelines optimization / A.A. Prihozhy, A. M. Zhdanouski,</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Прихожий, А. А. Метод оценки квалификации и оптимизация состава профессиональных групп программистов / А. А. Прихожий, А. М. Ждановский // Системный анализ и прикладная информатика. – № 2. – 2018. – С. 4–12.</mixed-citation><mixed-citation xml:lang="en">O. N. Karasik, M. Mattavelli // Doklady BGUIR, 2017, № 1, с. 34–41.</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Prihozhy, A. Genetic algorithm of optimizing the size, staff and number of professional teams of programmers /Prihozhy, A. Zhdanouski // Open Semantic Technologies for Intelligent Systems: Research Paper Collection, Issue 3. – Minsk, BSUIR, 2019. – P. 305–310.</mixed-citation><mixed-citation xml:lang="en">Joshi, S. Agile Development – Working with Agile in a Distributed Team Environment / S. Joshi // MSDN Magazine, 2012, Vol.27, No.1, pp.1–6.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Prihozhy, A.A. Analysis, transformation and optimization for high performance parallel computing / A.A. Prihozhy // Minsk, BNTU. – 2019. – 229 p.</mixed-citation><mixed-citation xml:lang="en">Müller, J. P., Rao, A. S., Singh, M. P. A-Teams: An Agent Architecture for Optimization and Decision-Support, Proceedings 5th International Workshop, ATAL’98 Paris, France, July 4–7, 1998, pp. 261–276.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Prihozhy, А. А. Method of qualification estimation and optimization of professional teams of programmers / А. А. Prihozhy, А. М. Zhdanouski // System analysis and applied information science. – № 2. – 2018. – С. 4–12.</mixed-citation><mixed-citation xml:lang="en">Prihozhy, А. А. Method of qualification estimation and optimization of professional teams of programmers / А. А. Prihozhy, А. М. Zhdanouski // System analysis and applied information science. – № 2. – 2018. – С. 4–12.</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Prihozhy, A. Genetic algorithm of optimizing the size, staff and number of professional teams of programmers / A. Prihozhy, A. Zhdanouski // Open Semantic Technologies for Intelligent Systems: Research Paper Collection, Issue 3. – Minsk, BSUIR, 2019. – P. 305–310.</mixed-citation><mixed-citation xml:lang="en">Prihozhy, A. Genetic algorithm of optimizing the size, staff and number of professional teams of programmers / A. Prihozhy, A. Zhdanouski // Open Semantic Technologies for Intelligent Systems: Research Paper Collection, Issue 3. – Minsk, BSUIR, 2019. – P. 305–310.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">Prihozhy, A.A. Analysis, transformation and optimization for high performance parallel computing / A.A. Prihozhy // Minsk, BNTU. – 2019. – 229 p.</mixed-citation><mixed-citation xml:lang="en">Prihozhy, A.A. Analysis, transformation and optimization for high performance parallel computing / A.A. Prihozhy // Minsk, BNTU. – 2019. – 229 p.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
