multiple dispatch
Recently Published Documents


TOTAL DOCUMENTS

36
(FIVE YEARS 8)

H-INDEX

7
(FIVE YEARS 1)

2021 ◽  
Author(s):  
◽  
Radu Muschevici

<p>Multiple dispatch uses the run time types of more than one argument to a method call to determine which method body to run. While several languages over the last 20 years have provided multiple dispatch, most object-oriented languages still support only single dispatch - forcing programmers to implement multiple dispatch manually when required. This thesis presents an empirical study of the use of multiple dispatch in practice, considering six languages that support multiple dispatch. We hope that this study will help programmers understand the uses and abuses of multiple dispatch; virtual machine implementors optimise multiple dispatch; and language designers to evaluate the choice of providing multiple dispatch in new programming languages.</p>


2021 ◽  
Author(s):  
◽  
Radu Muschevici

<p>Multiple dispatch uses the run time types of more than one argument to a method call to determine which method body to run. While several languages over the last 20 years have provided multiple dispatch, most object-oriented languages still support only single dispatch - forcing programmers to implement multiple dispatch manually when required. This thesis presents an empirical study of the use of multiple dispatch in practice, considering six languages that support multiple dispatch. We hope that this study will help programmers understand the uses and abuses of multiple dispatch; virtual machine implementors optimise multiple dispatch; and language designers to evaluate the choice of providing multiple dispatch in new programming languages.</p>


Energies ◽  
2021 ◽  
Vol 14 (21) ◽  
pp. 7217
Author(s):  
Sk. A. Shezan ◽  
Kazi Nazmul Hasan ◽  
Akhlaqur Rahman ◽  
Manoj Datta ◽  
Ujjwal Datta

The power system responsiveness may be improved by determining the ideal size of each component and performing a reliability analysis. This study evaluated the design and optimization of an islanded hybrid microgrid system with multiple dispatch algorithms. As the penetration of renewable power increases in microgrids, the importance and influence of efficient design and operation of islanded hybrid microgrids grow. The Kangaroo Island in South Australia served as the study’s test microgrid. The sizing of the Kangaroo Island hybrid microgrid system, which includes solar PV, wind, a diesel engine, and battery storage, was adjusted for four dispatch schemes. In this study, the following dispatch strategies were used: (i) load following, (ii) cycle charging, (iii) generator order, and (iv) combination dispatch. The CO2 emissions, net present cost (NPC), and energy cost of the islanded microgrid were all optimized (COE). The HOMER microgrid software platform was used to build all four dispatch algorithms, and DIgSILENT PowerFactory was used to analyze the power system’s responsiveness and dependability. The findings give a framework for estimating the generation mix and required resources for an islanded microgrid’s optimal functioning under various dispatch scenarios. According to the simulation results, load following is the optimum dispatch technique for an islanded hybrid microgrid that achieves the lowest cost of energy (COE) and net present cost (NPC).


2021 ◽  
Vol 5 (4) ◽  
pp. 1-24
Author(s):  
Jianguo Chen ◽  
Kenli Li ◽  
Keqin Li ◽  
Philip S. Yu ◽  
Zeng Zeng

As a new generation of Public Bicycle-sharing Systems (PBS), the Dockless PBS (DL-PBS) is an important application of cyber-physical systems and intelligent transportation. How to use artificial intelligence to provide efficient bicycle dispatching solutions based on dynamic bicycle rental demand is an essential issue for DL-PBS. In this article, we propose MORL-BD, a dynamic bicycle dispatching algorithm based on multi-objective reinforcement learning to provide the optimal bicycle dispatching solution for DL-PBS. We model the DL-PBS system from the perspective of cyber-physical systems and use deep learning to predict the layout of bicycle parking spots and the dynamic demand of bicycle dispatching. We define the multi-route bicycle dispatching problem as a multi-objective optimization problem by considering the optimization objectives of dispatching costs, dispatch truck's initial load, workload balance among the trucks, and the dynamic balance of bicycle supply and demand. On this basis, the collaborative multi-route bicycle dispatching problem among multiple dispatch trucks is modeled as a multi-agent and multi-objective reinforcement learning model. All dispatch paths between parking spots are defined as state spaces, and the reciprocal of dispatching costs is defined as a reward. Each dispatch truck is equipped with an agent to learn the optimal dispatch path in the dynamic DL-PBS network. We create an elite list to store the Pareto optimal solutions of bicycle dispatch paths found in each action, and finally get the Pareto frontier. Experimental results on the actual DL-PBS show that compared with existing methods, MORL-BD can find a higher quality Pareto frontier with less execution time.


2021 ◽  
Vol 55 (3) ◽  
pp. 92-96
Author(s):  
Shashi Gowda ◽  
Yingbo Ma ◽  
Alessandro Cheli ◽  
Maja Gwóźzdź ◽  
Viral B. Shah ◽  
...  

As mathematical computing becomes more democratized in high-level languages, high-performance symbolic-numeric systems are necessary for domain scientists and engineers to get the best performance out of their machine without deep knowledge of code optimization. Naturally, users need different term types either to have different algebraic properties for them, or to use efficient data structures. To this end, we developed Symbolics.jl, an extendable symbolic system which uses dynamic multiple dispatch to change behavior depending on the domain needs. In this work we detail an underlying abstract term interface which allows for speed without sacrificing generality. We show that by formalizing a generic API on actions independent of implementation, we can retroactively add optimized data structures to our system without changing the pre-existing term rewriters. We showcase how this can be used to optimize term construction and give a 113x acceleration on general symbolic transformations. Further, we show that such a generic API allows for complementary term-rewriting implementations. Exploiting this feature, we demonstrate the ability to swap between classical term-rewriting simplifiers and e-graph-based term-rewriting simplifiers. We illustrate how this symbolic system improves numerical computing tasks by showcasing an e-graph ruleset which minimizes the number of CPU cycles during expression evaluation, and demonstrate how it simplifies a real-world reaction-network simulation to halve the runtime. Additionally, we show a reaction-diffusion partial differential equation solver which is able to be automatically converted into symbolic expressions via multiple dispatch tracing, which is subsequently accelerated and parallelized to give a 157x simulation speedup. Together, this presents Symbolics.jl as a next-generation symbolic-numeric computing environment geared towards modeling and simulation.


Fresa implements a nature inspired plant propagation algorithm for the solution of single and multiple objective optimization problems. The method is population based and evolutionary. Treating the objective function as a black box, the implementation is able to solve problems exhibiting behaviour that is challenging for mathematical programming methods. Fresa is easily adapted to new problems which may benefit from bespoke representations of solutions by taking advantage of the dynamic typing and multiple dispatch capabilities of the Julia language. Further, the support for threads in Julia enables an efficient implementation on multi-core computers.


Author(s):  
Oscar Dowson ◽  
Lea Kapelevich

We present SDDP.jl, an open-source library for solving multistage stochastic programming problems using the stochastic dual dynamic programming algorithm. SDDP.jl is built on JuMP, an algebraic modeling language in Julia. JuMP provides SDDP.jl with a solver-agnostic, user-friendly interface. In addition, we leverage unique features of Julia, such as multiple dispatch, to provide an extensible framework for practitioners to build on our work. SDDP.jl is well tested, and accessible documentation is available at https://github.com/odow/SDDP.jl .


2019 ◽  
Vol 3 (POPL) ◽  
pp. 1-28 ◽  
Author(s):  
Gyunghee Park ◽  
Jaemin Hong ◽  
Guy L. Steele Jr. ◽  
Sukyoung Ryu
Keyword(s):  

2018 ◽  
Vol 12 (6) ◽  
pp. 1285-1293 ◽  
Author(s):  
Zhengwei Ren ◽  
Ying Chen ◽  
Shaowei Huang ◽  
Lu Zhang
Keyword(s):  

Sign in / Sign up

Export Citation Format

Share Document