
Michael OrlovSami Shamoon College of Engineering | SCE · Department of Software Engineering
Michael Orlov
Ph.D. in Computer Science
About
19
Publications
9,328
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
214
Citations
Introduction
Publications
Publications (19)
There are organized groups that disseminate similar messages in online forums and social media; they respond to real-time events or as persistent policy, and operate with state-level or organizational funding. Identifying these groups is of vital importance for preventing distribution of sponsored propaganda and misinformation. This paper presents...
This paper proposes to explore a software engineer-assisted method for evolutionarily improving large-scale software systems. A framework is outlined for selecting and evolving specific components of such systems, while avoiding treating the complete software as a single independent individual in the population, thereby forgoing the high costs of t...
This entrepreneurship pitch submission describes a POC for detecting high-level anomaly events in utility networks such as power grids, water plants, pressurized pipelines, etc.
This paper proposes to explore the following question: can software evolution systems like FINCH, that evolve linear representations originating from a higher-level structural language, take advantage of building blocks inherent to that original language?
This thesis presents FINCH (Fertile Darwinian Bytecode Harvester), a methodology for evolving Java bytecode, enabling the evolution of extant, unrestricted Java programs, or programs in other languages that compile to Java bytecode. The name of this thesis, “Darwinian Software Engineering”, reflects our optimistic view of how this methodology may a...
We present a HeuristicLab plugin for FINCH. FINCH (Fertile Darwinian Bytecode Harvester) is a system designed to evolutionarily improve actual, extant software, which was not intentionally written for the purpose of serving as a GP representation in particular, nor for evolution in general. This is in contrast to existing work that uses restricted...
FINCH is a methodology for evolving Java bytecode, enabling the evolution of extant, unrestricted Java programs, or programs
in other languages that compile to Java bytecode. The established approach in genetic programming (GP) involves the definition
of functions and terminals appropriate to the problem at hand, after which evolution of expression...
We describe Fertile Darwinian Bytecode Harvester (FINCH), a methodology for evolving Java bytecode, enabling the evolution of extant, unrestricted Java programs, or programs in other languages that compile to Java bytecode. Our approach is based upon the notion of compatible crossover, which produces correct programs by performing operand stack-bas...
The established approach in genetic programming (GP) involves the definition of functions and terminals appropriate to the
problem at hand, after which evolution of expressions using these definitions takes place. We have recently developed a system,
dubbed FINCH (Fertile Darwinian Bytecode Harvester), to evolutionarily improve actual, extant softw...
Article history: We present a universal optimization for generating a uniformly distributed integer in an interval, based on the underlying uniform distribution. This optimization provides up to 25% run-time improvement, and what is sometimes more important, up to 25% reduction in usage of (pseudo-)random bits. The optimization entails no run-time...
Glossary
Definition of the Subject
Introduction
Evolutionary Algorithms
A Touch of Theory
Extensions of the Basic Methodology
Lethal Applications
Evolutionary Games
Future Directions
Bibliography
We describe a methodology for evolving Java bytecode, en- abling the evolution of extant, unrestricted Java programs, or programs in other languages that compile to Java byte- code. Bytecode is evolved directly, without any intermedi- ate genomic representation. Our approach is based upon the notion of compatible crossover, which produces correct p...
The use of Greatest Common Divisor algorithm (GCD) for efficient random-number generation are discussed. The GCD algorithm computes the maximal number that divides its two arguments, in logarithmic number of arithmetic operations. The GCD computation cancels any running time benefit attained by reducing the expected number of calls to next. This co...
This paper describes the details of DODFC implementation and the corresponding experimental results. After clearing some implementation issues, DODFC performs very well against the established algorithms. The implementation and the paper serve as the final project in Constraints Programming 2004/A course by Prof. Amnon Meisels.
Two new distributed search algorithms for Distributed CSPs are proposed. In one algorithm, search is performed concurrently on disjoint parts of the global search space, by agents that constitute these parts. Agents form a hierarchy of groups and each group generates consistent partial solutions. Partial solutions are produced concurrently and are...
This paper shows how to implement a set partitions generator, where each iteration has constant space and amortized time complexity. This is achieved by defining a notation for set partitions, from which following and preceding partitions are easily derivable. The method is not novel — the purpose of this paper is to aid programmers in implementing...
A major drawback of evolutionary computation is that only relatively small-scale solutions can be found during the search process—it is currently impossible to evolve a whole chunk of software. We propose a method named evolutionary software improvement, which makes it possible to take some module, or some aspect of an existing software system, and...
A new search algorithm, Descending Requirements Search (DESRS), for Distributed CSPs is proposed. The algorithm is composed of two independent phases. In the first phase, agents form a binary hierarchy of groups. The distributed par- tition algorithm uses a heuristic that prefers to join neighbors that are strongly constrained, into groups. This is...