JP6663873B2 - プログラム自動生成システム及びプログラム自動生成方法 - Google Patents
プログラム自動生成システム及びプログラム自動生成方法 Download PDFInfo
- Publication number
- JP6663873B2 JP6663873B2 JP2017030940A JP2017030940A JP6663873B2 JP 6663873 B2 JP6663873 B2 JP 6663873B2 JP 2017030940 A JP2017030940 A JP 2017030940A JP 2017030940 A JP2017030940 A JP 2017030940A JP 6663873 B2 JP6663873 B2 JP 6663873B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- node
- data
- unit
- generated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Description
既存のプログラム郡から知識を抽出して、プログラムの自動生成に利用する。このため、複数のプログラムが記憶されたプログラム記憶部200からプログラムモデルを作成する。プログラム記憶部200は、例えば、プログラムファイルが保持されたデータベースやオープンソースソフトウェア(OSS)のソフトウェアリポジトリである。ソフトウェアリポジトリとしては、CVS、Subversion、Gitなどのソフトウェア構成管理システムが含まれる。プログラムモデル学習機能101では、事前にプログラム記憶部200からプログラム郡(ソフトウェア郡)を読み出して分析し、その分析結果をプログラムモデルとして、プログラムモデル記憶部105に格納しておく。これにより、事前にユーザが基本ノードやパラメータの設計を行う必要はない。
事前に生成されたプログラムモデルと、ユーザが入力する設計要件を用いて、進化計算のための基本ノードと制約条件を生成する。そして、生成された基本ノードと制約条件と、入力データ及び目標データを用いて進化計算を実行してプログラムを生成する。進化計算は、例えば、遺伝的プログラミングである。生成される基本ノードは、進化計算の組み合わせ要素となるノードである。
プログラム生成装置100は、ユーザウインタフェース211からキーワード、対象となるデータベース又はソフトウェアリポジトリの指定、期間指定などの検索項目を受け付け、それらの情報を元に、外部ネットワーク240を介して、プログラム記憶部200から該当するプログラム群を検索する(ステップS301)。具体的には、プログラム検索部103が、プログラム群を検索する。検索されて抽出されたプログラム群は、プログラム生成装置100の内部ストレージに格納される。
プログラム分析装置100は、進化計算に必要な基本ノードと制約条件を、プログラムモデル学習機能101で生成されたプログラムモデルと、ユーザが入力する設計要件を用いて生成する(ステップS304)。具体的には、基本ノード/制約条件生成部106が、基本ノード・制約条件生成処理を実行する。ユーザが入力する設計要件は、例えば、活用プログラムの種別、ライブラリの種別、様式などがある。これらは、プログラムモデル記憶部105に対するプログラムモデルの参照に使われる。
図6を参照して、実施例1のプログラム分析部104が実行する処理の概要について説明する。ここで、図6Aは、実施例1のプログラム分析部104が実行する処理の1形態の概要を説明するためのフローチャートである。図6Bは、実施例1のプログラム分析部104が実行する処理の1形態の概要を説明するためのフローチャートである。図6Cは、実施例1のプログラム分析部104が実行する処理の1形態の概要を説明するためのフローチャートである。
Claims (15)
- 生成すべき第1のプログラムに対する入力データ、目標データ及び設計要件の入力を受け付ける入力部と、
複数の既存の第2のプログラムを記憶するプログラム記憶部と、
前記第1のプログラムを生成するプログラム生成装置と、
前記プログラム生成装置が生成した前記第1のプログラムを出力する出力部、を備え、
前記プログラム生成装置は、
前記プログラム記憶部に記憶された前記複数の第2のプログラムを分析してプログラムモデルを生成するプログラム分析部と、
前記プログラム分析部が生成した前記プログラムモデルと前記入力部から入力された前記設計要件に基づいて、進化計算のための基本ノードと制約条件を生成する基本ノード/制約条件生成部と、
前記基本ノード/制約条件生成部が生成した前記基本ノード及び前記制約条件と、前記入力部から入力された前記入力データ及び前記目標データに基づいて、前記進化計算により前記第1のプログラムを生成する最適化部と、
を有することを特徴とするプログラム自動生成システム。 - 前記プログラムモデルは、前記第2のプログラムの意味をコード化したベクトルデータであり、
前記プログラム分析部は、前記ベクトルデータを導出するために、前記複数の第2のプログラムから構文構造情報を抽出し、前記構文構造情報からノードの項目を列挙してノードベクトル情報を学習することを特徴とする請求項1に記載のプログラム自動生成システム。 - 前記プログラムモデルは、テンプレートデータであり、
前記プログラム分析部は、前記テンプレートデータを導出するために、前記複数の第2のプログラムから構文構造情報を抽出し、前記構文構造情報から部分構造を抽出して前記複数の第2のプログラム間の類似構造を抽出することを特徴とする請求項1に記載のプログラム自動生成システム。 - 前記プログラムモデルは、確率遷移グラフであり、
前記プログラム分析部は、前記確率遷移グラフを導出するために、前記複数の第2のプログラムからプログラムリストを作成し、前記作成したプログラムリストに従って前記複数の第2のプログラムの構文構造情報を重ね合わせることを特徴とする請求項1に記載のプログラム自動生成システム。 - 前記プログラムモデルは、前記第2のプログラムの意味をコード化したベクトルデータであり、
前記プログラム分析部は、前記ベクトルデータを導出するために、前記複数の第2のプログラムから構文構造情報を抽出し、前記複数の第2のプログラムから依存関係情報を抽出し、前記構文構造情報からノードの項目を列挙してノードベクトル情報を学習し、前記依存関係情報から重み情報を生成し、前記ノードベクトル情報と前記重み情報に基づいて前記ノードベクトルを追学習することを特徴とする請求項1に記載のプログラム自動生成システム。 - 前記入力部は、前記設計要件として、活用プログラムの種別、ライブラリの種別又は様式を入力することを特徴とする請求項1に記載のプログラム自動生成システム。
- 前記入力部は、前記設計要件として、修正前の前記第1のプログラムを入力することを特徴とする請求項1に記載のプログラム自動生成システム。
- 前記基本ノード/制約条件生成部は、前記制約条件として、個体数、世代数、交差確率、突然変異確率、ノードの分類情報による選択重み、ノードの選択確率又はノードの変異確率を生成することを特徴とする請求項1に記載のプログラム自動生成システム。
- 前記プログラムモデルは、前記第2のプログラムの意味をコード化したベクトルデータであり、
前記基本ノード/制約条件生成部は、前記ベクトルデータを用いて、前記複数の第2のプログラム中のノードを分類し、前記ノードの分類情報を基に前記制約条件を生成することを特徴とする請求項1に記載のプログラム自動生成システム。 - 前記プログラムモデルは、テンプレートデータ又は確率遷移グラフであり、
前記基本ノード/制約条件生成部は、前記テンプレートデータ又は前記確率遷移グラフを用いて、前記複数の第2のプログラム中のノード間の接続関係を分析し、前記ノードの接続関係を基に前記制約条件を生成することを特徴とする請求項1に記載のプログラム自動生成システム。 - 前記基本ノード/制約条件生成部は、前記基本ノードとして、前記進化計算のために処理される木構造の各ノードを構成する基本となるノードを生成することを特徴とする請求項1に記載のプログラム自動生成システム。
- 前記プログラムモデルは、前記第2のプログラムの意味をコード化したベクトルデータであり、
前記基本ノード/制約条件生成部は、前記ベクトルデータを用いて、前記複数の第2のプログラム中のノードを分類し、前記ノードの分類情報を基に前記進化計算のための基本ノードを生成することを特徴とする請求項1に記載のプログラム自動生成システム。 - 前記プログラムモデルは、テンプレートデータであり、
前記基本ノード/制約条件生成部は、前記テンプレートデータを前記基本ノードとして用いることを特徴とする請求項1に記載のプログラム自動生成システム。 - 前記進化計算は、遺伝的プログラミングであり、
前記最適化部は、
前記制約条件を基に初期集団を生成し、前記入力データ及び前記目標データを用いて、前記入力データに対する個体の出力データと前記目標データの距離を表す適応度を計算し、
前記適合度と前記制約条件を基に前記初期集団から前記個体を選択し、前記初期集団から選択された前記個体に対して、前記制約条件を用いて交差又は突然変異処理を実行して修正した個体を前記初期集団に戻し、
前記遺伝的プログラミングによる前記進化計算によって、世代を繰り返し更新して、前記適応度を収束させて前記第1のプログラムを生成することを特徴とする請求項1に記載のプログラム自動生成システム。 - 生成すべき第1のプログラムに対する入力データ、目標データ及び設計要件の入力を受け付け、
複数の既存の第2のプログラムを記憶し、
前記複数の第2のプログラムを分析してプログラムモデルを生成し、
前記生成した前記プログラムモデルと前記入力された前記設計要件に基づいて、進化計算のための基本ノードと制約条件を生成し、
前記生成した基本ノード及び前記制約条件と、前記入力された前記入力データ及び前記目標データに基づいて、前記進化計算により前記第1のプログラムを生成し、
前記生成した前記第1のプログラムを出力することを特徴とするプログラム自動生成方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017030940A JP6663873B2 (ja) | 2017-02-22 | 2017-02-22 | プログラム自動生成システム及びプログラム自動生成方法 |
| US15/898,731 US10466972B2 (en) | 2017-02-22 | 2018-02-19 | Automatic program generation system and automatic program generation method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017030940A JP6663873B2 (ja) | 2017-02-22 | 2017-02-22 | プログラム自動生成システム及びプログラム自動生成方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018136755A JP2018136755A (ja) | 2018-08-30 |
| JP6663873B2 true JP6663873B2 (ja) | 2020-03-13 |
Family
ID=63167821
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017030940A Active JP6663873B2 (ja) | 2017-02-22 | 2017-02-22 | プログラム自動生成システム及びプログラム自動生成方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10466972B2 (ja) |
| JP (1) | JP6663873B2 (ja) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11348032B1 (en) * | 2018-09-02 | 2022-05-31 | Meta Platforms, Inc. | Automated generation of machine learning models |
| US10552121B1 (en) * | 2019-05-07 | 2020-02-04 | Capital One Services, Llc | System and method for dynamic process flow control based on real-time events |
| CN111176614B (zh) * | 2019-12-26 | 2021-06-29 | 南京航空航天大学 | Vrm形式化需求模型的生成和分析方法 |
| US12175215B2 (en) * | 2020-02-12 | 2024-12-24 | Nippon Telegraph And Telephone Corporation | Program generation apparatus, program generation method and program |
| JP2021184147A (ja) * | 2020-05-21 | 2021-12-02 | 富士通株式会社 | データ変換プログラム、データ変換装置、及びデータ変換方法 |
| EP4272133A4 (en) * | 2020-12-30 | 2024-12-18 | Natural Computation LLC | AUTOMATED FEATURE EXTRACTION USING GENETIC PROGRAMMING |
| US12417095B2 (en) * | 2021-09-23 | 2025-09-16 | Change Healthcare Holdings, Llc | Systems and methods for building products |
| US12554993B2 (en) * | 2022-01-18 | 2026-02-17 | Noblis, Inc. | Systems and methods for automatically generating computer programs by mutating code while ensuring code viability |
| CN119292581B (zh) * | 2024-12-12 | 2025-03-07 | 鹏城实验室 | 结合演化计算与深度学习的程序生成方法、装置、设备及存储介质 |
Family Cites Families (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6532453B1 (en) * | 1999-04-12 | 2003-03-11 | John R. Koza | Genetic programming problem solver with automatically defined stores loops and recursions |
| US7225431B2 (en) * | 2002-10-24 | 2007-05-29 | International Business Machines Corporation | Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture |
| US7577935B2 (en) * | 2004-02-14 | 2009-08-18 | Matthew T. Reynolds | Generative programming system and method employing focused grammars |
| US7725409B2 (en) * | 2007-06-05 | 2010-05-25 | Motorola, Inc. | Gene expression programming based on Hidden Markov Models |
| US8782637B2 (en) * | 2007-11-03 | 2014-07-15 | ATM Shafiqul Khalid | Mini-cloud system for enabling user subscription to cloud service in residential environment |
| US8387001B2 (en) * | 2008-04-17 | 2013-02-26 | Infosys Technologies Limited | Method for finding an impact on a computer generated code |
| EP2296410B1 (en) * | 2009-09-10 | 2017-02-08 | Alcatel Lucent | Telecommunications network node and methods |
| US8195345B2 (en) * | 2010-08-05 | 2012-06-05 | King Fahd University Of Petroleum & Minerals | Method of generating an integrated fuzzy-based guidance law for aerodynamic missiles |
| US9563844B2 (en) * | 2011-06-30 | 2017-02-07 | International Business Machines Corporation | Speculative asynchronous sub-population evolutionary computing utilizing a termination speculation threshold |
| US8838510B2 (en) * | 2011-09-16 | 2014-09-16 | International Business Machines Corporation | Choosing pattern recognition algorithms and data features using a genetic algorithm |
| US8789022B2 (en) * | 2012-03-31 | 2014-07-22 | Bmc Software, Inc. | Self-evolving computing service template translation |
| JP5875681B2 (ja) * | 2012-06-20 | 2016-03-02 | 株式会社日立製作所 | 制御ソフトウェアの設計支援装置 |
| US9009536B2 (en) * | 2012-10-02 | 2015-04-14 | International Business Machines Corporation | Test case production utilizing problem reports |
| US10108526B2 (en) * | 2012-11-27 | 2018-10-23 | Purdue Research Foundation | Bug localization using version history |
| JP5702811B2 (ja) * | 2013-01-30 | 2015-04-15 | ファナック株式会社 | 動作プログラム作成装置 |
| US20140236578A1 (en) * | 2013-02-15 | 2014-08-21 | Nec Laboratories America, Inc. | Question-Answering by Recursive Parse Tree Descent |
| US9311597B2 (en) * | 2013-03-12 | 2016-04-12 | International Business Machines Corporation | Early generation of individuals to accelerate genetic algorithms |
| US9239710B2 (en) * | 2013-03-15 | 2016-01-19 | ArtinSoft Corporation | Programming language transformations with abstract syntax tree extensions |
| CN105121504B (zh) * | 2013-04-19 | 2018-05-01 | 株式会社武藏野化学研究所 | 脂肪族聚酯的精制方法及用该方法精制的脂肪族聚酯 |
| US9176732B2 (en) * | 2013-08-28 | 2015-11-03 | Oracle International Corporation | Method and apparatus for minimum cost cycle removal from a directed graph |
| JP2015230702A (ja) | 2014-06-06 | 2015-12-21 | 株式会社リコー | 処理フロー生成装置、処理フロー生成方法、処理フロー生成プログラム、情報処理装置の製造方法及び情報処理プログラムの製造方法 |
| CN106462397B (zh) * | 2014-06-11 | 2019-10-29 | 富士通株式会社 | 程序生成装置、程序生成方法 |
| JP6331914B2 (ja) * | 2014-09-17 | 2018-05-30 | 富士通株式会社 | アルゴリズム生成装置、アルゴリズム生成方法及びアルゴリズム生成用コンピュータプログラム |
| US20160224453A1 (en) * | 2015-01-30 | 2016-08-04 | Lindedln Corporation | Monitoring the quality of software systems |
| JP6533415B2 (ja) * | 2015-06-03 | 2019-06-19 | 株式会社日立製作所 | 系統樹を構築する装置、方法およびシステム |
| WO2016208037A1 (ja) * | 2015-06-25 | 2016-12-29 | 富士通株式会社 | プログラム生成装置、プログラム生成方法および生成プログラム |
| JP6511986B2 (ja) * | 2015-06-26 | 2019-05-15 | 富士通株式会社 | プログラム生成装置、プログラム生成方法および生成プログラム |
| US9798818B2 (en) * | 2015-09-22 | 2017-10-24 | International Business Machines Corporation | Analyzing concepts over time |
| JP6544435B2 (ja) * | 2015-10-02 | 2019-07-17 | 富士通株式会社 | プログラム生成装置、プログラム生成方法および生成プログラム |
| WO2017068675A1 (ja) * | 2015-10-22 | 2017-04-27 | 富士通株式会社 | プログラム生成装置、プログラム生成方法および生成プログラム |
| US9916158B2 (en) * | 2016-07-20 | 2018-03-13 | International Business Machines Corporation | Cognitive feature analytics |
| US10606885B2 (en) * | 2016-11-15 | 2020-03-31 | Evolv Technology Solutions, Inc. | Data object creation and recommendation using machine learning based online evolution |
-
2017
- 2017-02-22 JP JP2017030940A patent/JP6663873B2/ja active Active
-
2018
- 2018-02-19 US US15/898,731 patent/US10466972B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018136755A (ja) | 2018-08-30 |
| US20180239593A1 (en) | 2018-08-23 |
| US10466972B2 (en) | 2019-11-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10466972B2 (en) | Automatic program generation system and automatic program generation method | |
| CN112114791B (zh) | 一种基于元学习的代码自适应生成方法 | |
| EP3671526B1 (en) | Dependency graph based natural language processing | |
| CN120641878A (zh) | 生成式人工智能爬取和分块 | |
| US7577683B2 (en) | Methods for the construction and maintenance of a knowledge representation system | |
| US20250356218A1 (en) | Systems and methods for chain of thought meta-prompting for machine learning models | |
| US20060167873A1 (en) | Editor for deriving regular expressions by example | |
| CN119960823A (zh) | 一种代码生成方法及相关设备 | |
| Jessup et al. | Performance-based numerical solver selection in the Lighthouse framework | |
| Saini et al. | Domobot: An ai-empowered bot for automated and interactive domain modelling | |
| CN113302601A (zh) | 含义关系学习装置、含义关系学习方法及含义关系学习程序 | |
| Khalilipour et al. | Intelligent model management based on textual and structural extraction-an exploratory study | |
| JP5600826B1 (ja) | 非構造化データ処理システム、非構造化データ処理方法およびプログラム | |
| CN116301741B (zh) | 一种为机器学习模型自动推荐可解释性方法的方法 | |
| CN119474540A (zh) | 一种知识引导的基于大语言模型的可信api推荐方法 | |
| WO2021161428A1 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
| Hasan | Clustering techniques for software engineering | |
| Fraternali et al. | Almost rerere: An approach for automating conflict resolution from similar resolved conflicts | |
| Swadia | A study of text mining framework for automated classification of software requirements in enterprise systems | |
| CN113569128B (zh) | 数据检索方法、装置及电子设备 | |
| Maxville et al. | Applying a reusable framework for software selection | |
| JP2005202612A (ja) | データベース生成プログラム作成装置 | |
| Klusáček et al. | Comparing fitness functions for genetic feature transformation | |
| Guo et al. | From Evolution to Generation: Leveraging LLMs to Redefine Genetic Programming for Symbolic Regression | |
| KR102836254B1 (ko) | 멀티 모달 대규모 언어 모델 기반 프롬프트를 활용한 데이터 세트 처리 방법 및 시스템 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190319 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200124 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200204 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200217 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6663873 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |