DPGraphJ: A Java package for the implementation of dynamic programming algorithms
This paper introduces the DPGraphJ package, a collection of reusable Java functions to solve optimisation problems using a dynamic programming algorithm. The latter is based on a recursive schema that follows a top-down approach and uses the memoisation technique. This algorithm is a reusable softwa...
Uloženo v:
| Vydáno v: | SoftwareX Ročník 28; s. 101948 |
|---|---|
| Hlavní autoři: | , , , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
Elsevier B.V
01.12.2024
Elsevier |
| Témata: | |
| ISSN: | 2352-7110, 2352-7110 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | This paper introduces the DPGraphJ package, a collection of reusable Java functions to solve optimisation problems using a dynamic programming algorithm. The latter is based on a recursive schema that follows a top-down approach and uses the memoisation technique. This algorithm is a reusable software component that is generic and efficient. Moreover, it has been developed by paying special attention to good practices in the design of software. For using DPGraphJ, the problem to be solved needs to be modelled as an AND/OR graph. In the DPGraphJ package, we provide 5 academic case studies with detailed comments. We strongly believe that our proposal can be helpful for several kinds of users, such as students, researchers, and practitioners. |
|---|---|
| AbstractList | This paper introduces the DPGraphJ package, a collection of reusable Java functions to solve optimisation problems using a dynamic programming algorithm. The latter is based on a recursive schema that follows a top-down approach and uses the memoisation technique. This algorithm is a reusable software component that is generic and efficient. Moreover, it has been developed by paying special attention to good practices in the design of software. For using DPGraphJ, the problem to be solved needs to be modelled as an AND/OR graph. In the DPGraphJ package, we provide 5 academic case studies with detailed comments. We strongly believe that our proposal can be helpful for several kinds of users, such as students, researchers, and practitioners. |
| ArticleNumber | 101948 |
| Author | Toro, Miguel Borrego, Diana Barba, Irene Del Valle, Carmelo |
| Author_xml | – sequence: 1 givenname: Diana orcidid: 0000-0002-7471-9208 surname: Borrego fullname: Borrego, Diana email: dianabn@us.es – sequence: 2 givenname: Irene surname: Barba fullname: Barba, Irene email: irenebr@us.es – sequence: 3 givenname: Carmelo surname: Del Valle fullname: Del Valle, Carmelo email: carmelo@us.es – sequence: 4 givenname: Miguel surname: Toro fullname: Toro, Miguel email: migueltoro@us.es |
| BookMark | eNp9kNFKwzAUhoMoOOeewJu8wGaSpmsqeDGmzo2BCnodTtOTLnVtSlqGe3u7TcQrr87hh__jnO-KnNe-RkJuOJtwxqe35aT1tvuaCCbkIUmlOiMDEcVinHDOzv_sl2TUtiVjjMdCxUIOyNvD6yJAs1nd0RldwQ5oA-YTCqTWB9ptkLqq2WKFdQed8zX1lub7GipnaBN8EaCqXF1Q2BY-uG5TtdfkwsK2xdHPHJKPp8f3-fN4_bJYzmfrsYmmshsrqRjPIMmEVXkSmTxTmTWSK5EkeQYoY0hTQJvFkqf9Pu1TY1ikQFjII4iGZHni5h5K3QRXQdhrD04fAx8KDaFzZot6aqWy2HMER5lYoTJjk96AZJnKJRM9KzqxTPBtG9D-8jjTB8m61EfJ-iBZnyT3rftTC_s3dw6Dbo3D2mDuApquv8P92_8G3IiIiQ |
| Cites_doi | 10.1007/978-3-319-00080-0 10.1016/j.softx.2022.101001 10.1109/JAS.2020.1003231 10.1007/978-3-030-57799-5_40 10.3390/su131810331 10.1145/367766.368168 10.1016/j.softx.2021.100690 10.1145/1118178.1118215 10.1002/cae.21781 10.1145/322276.322285 10.1111/ecog.00888 10.1109/EduHPC54835.2021.00009 10.1016/j.chb.2019.106185 |
| ContentType | Journal Article |
| Copyright | 2024 The Authors |
| Copyright_xml | – notice: 2024 The Authors |
| DBID | 6I. AAFTH AAYXX CITATION DOA |
| DOI | 10.1016/j.softx.2024.101948 |
| DatabaseName | ScienceDirect Open Access Titles Elsevier:ScienceDirect:Open Access CrossRef DOAJ Directory of Open Access Journals |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: DOA name: DOAJ Directory of Open Access Journals url: https://www.doaj.org/ sourceTypes: Open Website |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2352-7110 |
| ExternalDocumentID | oai_doaj_org_article_6f48fe41921e47f28bcf752840b8d402 10_1016_j_softx_2024_101948 S2352711024003182 |
| GroupedDBID | 0R~ 0SF 457 5VS 6I. AACTN AAEDW AAFTH AALRI AAXUO ABMAC ACGFS ADBBV ADEZE ADVLN AEXQZ AFJKZ AFTJW AGHFR AITUG AKRWK ALMA_UNASSIGNED_HOLDINGS AMRAJ BCNDV EBS EJD FDB GROUPED_DOAJ IPNFZ IXB KQ8 M~E NCXOZ O9- OK1 RIG ROL SSZ AAYWO AAYXX ACVFH ADCNI AEUPX AFPUW AIGII AKBMS AKYEP APXCP CITATION |
| ID | FETCH-LOGICAL-c364t-84801ba7b2f8d73cdb8bfc418277dbae45a99aefb54195a967dbcc038a2fad3a3 |
| IEDL.DBID | DOA |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001352032400001&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 2352-7110 |
| IngestDate | Fri Oct 03 12:53:13 EDT 2025 Sat Nov 29 03:49:36 EST 2025 Wed Dec 04 16:46:18 EST 2024 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Keywords | Computational thinking Dynamic programming Design & implementation AND/OR graphs Software quality |
| Language | English |
| License | This is an open access article under the CC BY license. |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-c364t-84801ba7b2f8d73cdb8bfc418277dbae45a99aefb54195a967dbcc038a2fad3a3 |
| ORCID | 0000-0002-7471-9208 |
| OpenAccessLink | https://doaj.org/article/6f48fe41921e47f28bcf752840b8d402 |
| ParticipantIDs | doaj_primary_oai_doaj_org_article_6f48fe41921e47f28bcf752840b8d402 crossref_primary_10_1016_j_softx_2024_101948 elsevier_sciencedirect_doi_10_1016_j_softx_2024_101948 |
| PublicationCentury | 2000 |
| PublicationDate | December 2024 2024-12-00 2024-12-01 |
| PublicationDateYYYYMMDD | 2024-12-01 |
| PublicationDate_xml | – month: 12 year: 2024 text: December 2024 |
| PublicationDecade | 2020 |
| PublicationTitle | SoftwareX |
| PublicationYear | 2024 |
| Publisher | Elsevier B.V Elsevier |
| Publisher_xml | – sequence: 0 name: Elsevier B.V – name: Elsevier |
| References | Feng, You, Zhang, Ji, Gao (b26) 2019; vol. 33 Cormen, Leiserson, Rivest, Stein (b1) 2009 Manurung, Kristiana, Uddin (b16) 2022; 17 Jamal, Tan, Pasupuleti (b3) 2021; 13 Chadès, Chapron, Cros, Garcia, Sabbadin (b17) 2014; 37 Rossi (b18) 2022 Angeli, Giannakos (b14) 2020; 105 Denning, Tedre (b13) 2019 Wing (b12) 2006; 49 Forootani, Iervolino, Tipaldi, Neilson (b4) 2020; 7 Borrego D, Barba I, Toro M, Del Valle C. Problem generalization for designing recursive algorithms. In: The 11th international conference on European transnational educational. 2020 DOTExporter (b28) 2023 Bretto (b25) 2013 Floyd (b6) 1962; 5 Bellman (b2) 1957 Martelli, Montanari (b10) 1973 Dreyfus, Law (b5) 1977 Kátai (b20) 2010 Ballard Grey, Parsons Sarah. Visualizing Parallel Dynamic Programming using the Thread Safe Graphics Library. In: Workshop on education for high-performance computing. EduHPC, 2021, p. 24–31. Hazem, Ahmed (b21) 2017; 25 Weisstein Eric (b24) 2008 . Wagner (b7) 1995; 5 Katai, Elekes (b19) 2021; 13 Miretti, Misul, Spessa (b15) 2021; 14 Velázquez-Iturbide, Pérez-Carrasco (b23) 2016 Gnesi, Montanari, Martelli (b11) 1981; 28 De Moor (b8) 1999 Nilsson (b9) 1971 Jamal (10.1016/j.softx.2024.101948_b3) 2021; 13 Rossi (10.1016/j.softx.2024.101948_b18) 2022 Denning (10.1016/j.softx.2024.101948_b13) 2019 Wagner (10.1016/j.softx.2024.101948_b7) 1995; 5 Cormen (10.1016/j.softx.2024.101948_b1) 2009 Floyd (10.1016/j.softx.2024.101948_b6) 1962; 5 Manurung (10.1016/j.softx.2024.101948_b16) 2022; 17 Miretti (10.1016/j.softx.2024.101948_b15) 2021; 14 Chadès (10.1016/j.softx.2024.101948_b17) 2014; 37 Nilsson (10.1016/j.softx.2024.101948_b9) 1971 Martelli (10.1016/j.softx.2024.101948_b10) 1973 10.1016/j.softx.2024.101948_b22 Wing (10.1016/j.softx.2024.101948_b12) 2006; 49 Angeli (10.1016/j.softx.2024.101948_b14) 2020; 105 Velázquez-Iturbide (10.1016/j.softx.2024.101948_b23) 2016 Weisstein Eric (10.1016/j.softx.2024.101948_b24) 2008 Bellman (10.1016/j.softx.2024.101948_b2) 1957 Kátai (10.1016/j.softx.2024.101948_b20) 2010 Feng (10.1016/j.softx.2024.101948_b26) 2019; vol. 33 10.1016/j.softx.2024.101948_b27 De Moor (10.1016/j.softx.2024.101948_b8) 1999 Bretto (10.1016/j.softx.2024.101948_b25) 2013 Gnesi (10.1016/j.softx.2024.101948_b11) 1981; 28 Hazem (10.1016/j.softx.2024.101948_b21) 2017; 25 Dreyfus (10.1016/j.softx.2024.101948_b5) 1977 DOTExporter (10.1016/j.softx.2024.101948_b28) 2023 Forootani (10.1016/j.softx.2024.101948_b4) 2020; 7 Katai (10.1016/j.softx.2024.101948_b19) 2021; 13 |
| References_xml | – year: 2009 ident: b1 article-title: Introduction to algorithms – year: 1977 ident: b5 article-title: The art and theory of dynamic programming – volume: 49 start-page: 33 year: 2006 end-page: 35 ident: b12 article-title: Computational thinking publication-title: Commun ACM – volume: 5 start-page: 345 year: 1962 ident: b6 article-title: Algorithm 97: shortest path publication-title: Commun ACM – year: 2022 ident: b18 article-title: jsdp: a java stochastic dynamic programming library – volume: 28 start-page: 737 year: 1981 end-page: 751 ident: b11 article-title: Dynamic programming as graph searching: An algebraic approach publication-title: J ACM – start-page: 71 year: 2016 end-page: 76 ident: b23 article-title: Systematic development of dynamic programming algorithms assisted by interactive visualization publication-title: Annual conference on innovation and technology in computer science education – reference: Ballard Grey, Parsons Sarah. Visualizing Parallel Dynamic Programming using the Thread Safe Graphics Library. In: Workshop on education for high-performance computing. EduHPC, 2021, p. 24–31. – year: 1971 ident: b9 article-title: Problem-solving methods in artificial intelligence – year: 2023 ident: b28 article-title: DOTExporter (JGraphT) – volume: 5 start-page: 42 year: 1995 end-page: 51 ident: b7 article-title: Dynamic programming publication-title: Math J – volume: 7 start-page: 975 year: 2020 end-page: 990 ident: b4 article-title: Approximate dynamic programming for stochastic resource allocation problems publication-title: IEEE/CAA J Autom Sin – year: 2019 ident: b13 article-title: Computational thinking – year: 2013 ident: b25 article-title: Hypergraph theory. An introduction publication-title: Mathematical engineering – volume: vol. 33 year: 2019 ident: b26 article-title: Hypergraph neural networks publication-title: Proceedings of the AAAI conference on artificial intelligence – volume: 25 start-page: 179 year: 2017 end-page: 187 ident: b21 article-title: MonitTDPA: A tool for monitoring the tracing of dynamic programming algorithms publication-title: Comput Appl Eng Educ – volume: 14 year: 2021 ident: b15 article-title: Dynaprog: Deterministic dynamic programming solver for finite horizon multi-stage decision problems publication-title: SoftwareX – volume: 17 year: 2022 ident: b16 article-title: Yadpf: A reusable deterministic dynamic programming implementation in matlab publication-title: SoftwareX – reference: Borrego D, Barba I, Toro M, Del Valle C. Problem generalization for designing recursive algorithms. In: The 11th international conference on European transnational educational. 2020, – volume: 105 year: 2020 ident: b14 article-title: Computational thinking education: Issues and challenges publication-title: Comput Hum Behav – year: 1973 ident: b10 article-title: Additive AND/OR graphs publication-title: Proceedings of the 3rd international joint conference on artificial intelligence – reference: . – year: 1999 ident: b8 article-title: Dynamic programming as a software component publication-title: Proceedings of CSCC – volume: 37 start-page: 916 year: 2014 end-page: 920 ident: b17 article-title: Mdptoolbox: a multi-platform toolbox to solve stochastic dynamic programming problems publication-title: Ecography – volume: 13 start-page: 361 year: 2021 end-page: 372 ident: b19 article-title: Dp-solver: automating dynamic programming. Acta Universitatis Sapientiae publication-title: Informatica (Ljubl) – year: 2010 ident: b20 article-title: Modelling dynamic programming problems by generalized d-graphs – volume: 13 start-page: 10331 year: 2021 ident: b3 article-title: A review of energy management and power management systems for microgrid and nanogrid applications publication-title: Sustainability – year: 2008 ident: b24 article-title: Floyd-warshall algorithm publication-title: MathWorld—A wolfram web resource – year: 1957 ident: b2 article-title: Dynamic programming – year: 2013 ident: 10.1016/j.softx.2024.101948_b25 article-title: Hypergraph theory. An introduction doi: 10.1007/978-3-319-00080-0 – volume: vol. 33 year: 2019 ident: 10.1016/j.softx.2024.101948_b26 article-title: Hypergraph neural networks – year: 1957 ident: 10.1016/j.softx.2024.101948_b2 – volume: 13 start-page: 361 issue: 2 year: 2021 ident: 10.1016/j.softx.2024.101948_b19 article-title: Dp-solver: automating dynamic programming. Acta Universitatis Sapientiae publication-title: Informatica (Ljubl) – year: 1971 ident: 10.1016/j.softx.2024.101948_b9 – volume: 17 year: 2022 ident: 10.1016/j.softx.2024.101948_b16 article-title: Yadpf: A reusable deterministic dynamic programming implementation in matlab publication-title: SoftwareX doi: 10.1016/j.softx.2022.101001 – year: 2010 ident: 10.1016/j.softx.2024.101948_b20 – volume: 7 start-page: 975 issue: 4 year: 2020 ident: 10.1016/j.softx.2024.101948_b4 article-title: Approximate dynamic programming for stochastic resource allocation problems publication-title: IEEE/CAA J Autom Sin doi: 10.1109/JAS.2020.1003231 – year: 1973 ident: 10.1016/j.softx.2024.101948_b10 article-title: Additive AND/OR graphs – ident: 10.1016/j.softx.2024.101948_b27 doi: 10.1007/978-3-030-57799-5_40 – volume: 13 start-page: 10331 issue: 18 year: 2021 ident: 10.1016/j.softx.2024.101948_b3 article-title: A review of energy management and power management systems for microgrid and nanogrid applications publication-title: Sustainability doi: 10.3390/su131810331 – start-page: 71 year: 2016 ident: 10.1016/j.softx.2024.101948_b23 article-title: Systematic development of dynamic programming algorithms assisted by interactive visualization – year: 1977 ident: 10.1016/j.softx.2024.101948_b5 – volume: 5 start-page: 345 issue: 6 year: 1962 ident: 10.1016/j.softx.2024.101948_b6 article-title: Algorithm 97: shortest path publication-title: Commun ACM doi: 10.1145/367766.368168 – year: 2023 ident: 10.1016/j.softx.2024.101948_b28 – year: 1999 ident: 10.1016/j.softx.2024.101948_b8 article-title: Dynamic programming as a software component – volume: 5 start-page: 42 issue: 4 year: 1995 ident: 10.1016/j.softx.2024.101948_b7 article-title: Dynamic programming publication-title: Math J – volume: 14 year: 2021 ident: 10.1016/j.softx.2024.101948_b15 article-title: Dynaprog: Deterministic dynamic programming solver for finite horizon multi-stage decision problems publication-title: SoftwareX doi: 10.1016/j.softx.2021.100690 – volume: 49 start-page: 33 issue: 3 year: 2006 ident: 10.1016/j.softx.2024.101948_b12 article-title: Computational thinking publication-title: Commun ACM doi: 10.1145/1118178.1118215 – volume: 25 start-page: 179 issue: 2 year: 2017 ident: 10.1016/j.softx.2024.101948_b21 article-title: MonitTDPA: A tool for monitoring the tracing of dynamic programming algorithms publication-title: Comput Appl Eng Educ doi: 10.1002/cae.21781 – year: 2022 ident: 10.1016/j.softx.2024.101948_b18 – volume: 28 start-page: 737 issue: 4 year: 1981 ident: 10.1016/j.softx.2024.101948_b11 article-title: Dynamic programming as graph searching: An algebraic approach publication-title: J ACM doi: 10.1145/322276.322285 – year: 2009 ident: 10.1016/j.softx.2024.101948_b1 – volume: 37 start-page: 916 issue: 9 year: 2014 ident: 10.1016/j.softx.2024.101948_b17 article-title: Mdptoolbox: a multi-platform toolbox to solve stochastic dynamic programming problems publication-title: Ecography doi: 10.1111/ecog.00888 – ident: 10.1016/j.softx.2024.101948_b22 doi: 10.1109/EduHPC54835.2021.00009 – year: 2008 ident: 10.1016/j.softx.2024.101948_b24 article-title: Floyd-warshall algorithm – year: 2019 ident: 10.1016/j.softx.2024.101948_b13 – volume: 105 year: 2020 ident: 10.1016/j.softx.2024.101948_b14 article-title: Computational thinking education: Issues and challenges publication-title: Comput Hum Behav doi: 10.1016/j.chb.2019.106185 |
| SSID | ssj0001528524 |
| Score | 2.285137 |
| Snippet | This paper introduces the DPGraphJ package, a collection of reusable Java functions to solve optimisation problems using a dynamic programming algorithm. The... |
| SourceID | doaj crossref elsevier |
| SourceType | Open Website Index Database Publisher |
| StartPage | 101948 |
| SubjectTerms | AND/OR graphs Computational thinking Design & implementation Dynamic programming Software quality |
| Title | DPGraphJ: A Java package for the implementation of dynamic programming algorithms |
| URI | https://dx.doi.org/10.1016/j.softx.2024.101948 https://doaj.org/article/6f48fe41921e47f28bcf752840b8d402 |
| Volume | 28 |
| WOSCitedRecordID | wos001352032400001&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVAON databaseName: DOAJ Directory of Open Access Journals customDbUrl: eissn: 2352-7110 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001528524 issn: 2352-7110 databaseCode: DOA dateStart: 20150101 isFulltext: true titleUrlDefault: https://www.doaj.org/ providerName: Directory of Open Access Journals – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2352-7110 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001528524 issn: 2352-7110 databaseCode: M~E dateStart: 20150101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwrV07T8MwELYQYmDhjSgveWAkInGc2GEr0IIqqIoEUjfLjxgKtEVtqJj47ZzjBGWChSWKrMiOvkvuvpPP3yF0YiExVonUATEmCahSaZDFkQnyyFqgE0nKTHlQ-Jb1-3w4zAaNVl-uJszLA3vgzlJLuc3dXmWUU2YJV9qyBJxqqLihXkYyZFkjmfLngwlPCK1lhsqCrjn4tU_ICAl1I5nr-NMIRaVifyMiNaJMdwOtVfQQt_1rbaKlfLKF1uvWC7j6E7fR_dXg2klN985xG_fkQmLIfV_BN2AgoRhIHR6N68pwBz2eWmx883lclWSNIWhh-fY0nY2K5_F8Bz12Ow-XN0HVHSHQcUqLgDvhFyWZIpYbFmujuLKaQr7AmFEyp4nMMplblQB4cA-oK63DmEtipYllvIuWJ9NJvoewAVaiOKcRMZJKFSlLrM1CTrVNYy1NC53WQIl3L4Ih6uqwF1HiKhyuwuPaQhcOzJ9HnYJ1OQB2FZVdxV92baG0NoWoyIAP8jDV6LfV9_9j9QO06qb0dSuHaLmYfeRHaEUvitF8dlx-a3C9--p8A1YG23M |
| linkProvider | Directory of Open Access Journals |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=DPGraphJ%3A+A+Java+package+for+the+implementation+of+dynamic+programming+algorithms&rft.jtitle=SoftwareX&rft.au=Borrego%2C+Diana&rft.au=Barba%2C+Irene&rft.au=Del+Valle%2C+Carmelo&rft.au=Toro%2C+Miguel&rft.date=2024-12-01&rft.pub=Elsevier+B.V&rft.issn=2352-7110&rft.eissn=2352-7110&rft.volume=28&rft_id=info:doi/10.1016%2Fj.softx.2024.101948&rft.externalDocID=S2352711024003182 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2352-7110&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2352-7110&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2352-7110&client=summon |