This paper compares the performance of two Binary Decision Diagram (BDD) libraries in Java - JavaBDD and the author's own implementation. It uses differential testing to check that the libraries produce functionally equivalent results. Execution times are measured for constructing BDDs of different sizes. Statistical analysis using t-tests, histograms and boxplots shows that JavaBDD has significantly faster execution times than the author's library, and the difference increases as the BDD size increases. The paper concludes JavaBDD has better performance and advocates improving BDD library implementations.
Building a vietnamese dialog mechanism for v dlg~tabl systemijnlc
This paper introduces a Vietnamese automatic dialog mechanism which allows the V-DLG~TABL system to automatically communicate with clients. This dialog mechanism is based on the Question – Answering engine of V-DLG~TABL system, and composes the following supplementary mechanisms: 1) the mechanism of choosing the suggested question; 2) the mechanism of managing the conversations and suggesting information; 3) the mechanism of resolving the questions having anaphora; 4) the scenarios of dialog (in this stage, there is only one simple scenario defined for the system).
This document presents the process for a student's project that will conduct differential testing on two Binary Decision Diagram (BDD) libraries. The project will: 1) Construct BDD objects from both libraries with the same features; 2) Automatically generate random tests by applying operations to the BDDs; 3) Use JUnit tests to check that the two libraries produce equivalent results; 4) Measure and compare the running times of the libraries to determine if there is a significant performance difference. The goal is to validate that the two BDD implementations behave the same while also evaluating their relative performance.
DCG and NDCG are evaluation measures used to evaluate the performance of ranking models. DCG measures the goodness of a ranking list based on the labels of each document, where documents with higher labels contribute more to the DCG score. NDCG normalizes the DCG score to range from 0 to 1. MAP measures the average precision of a ranking list where labels are binary as relevant or not. Kendall's Tau evaluates how closely the order of items in two lists match on a scale from -1 to 1.
Clustering technology has been applied in numerous applications. It can enhance the performance
of information retrieval systems, it can also group Internet users to help improve the click-through rate of
on-line advertising, etc. Over the past few decades, a great many data clustering algorithms have been
developed, including K-Means, DBSCAN, Bi-Clustering and Spectral clustering, etc. In recent years, two
new data clustering algorithms have been proposed, which are affinity propagation (AP, 2007) and density
peak based clustering (DP, 2014). In this work, we empirically compare the performance of these two latest
data clustering algorithms with state-of-the-art, using 6 external and 2 internal clustering validation metrics.
Our experimental results on 16 public datasets show that, the two latest clustering algorithms, AP and DP,
do not always outperform DBSCAN. Therefore, to find the best clustering algorithm for a specific dataset, all
of AP, DP and DBSCAN should be considered. Moreover, we find that the comparison of different clustering
algorithms is closely related to the clustering evaluation metrics adopted. For instance, when using the
Silhouette clustering validation metric, the overall performance of K-Means is as good as AP and DP. This
work has important reference values for researchers and engineers who need to select appropriate clustering
algorithms for their specific applications.
The document contains information about CIS 336 final exams and study materials for CIS 336 courses. It includes multiple choice questions and answers from past CIS 336 final exams. It also includes information about a CIS 336 group project on database design and modeling.
The high-level information is:
1) The document provides sample questions and answers from past CIS 336 final exams on topics like relational database management systems, data modeling, and SQL queries.
2) It also includes guidelines and deliverables for a group project on designing, developing, and demonstrating a database based on a business scenario.
3) Students are to submit logical and physical models, populate tables with data, and write queries for reports to demonstrate the functionality
Web Information Extraction Learning based on Probabilistic Graphical ModelsGUANBO
The document describes a graphical model for jointly extracting and resolving product attributes from web pages. The model uses a Dirichlet process prior to handle an unlimited number of attributes. Variational inference is used to approximate the intractable posterior distribution. Experimental results on four domains show the model achieves good performance on attribute extraction and resolution without supervision.
This document discusses different techniques for decomposing data and computations into parallel tasks, including: output data partitioning, input data partitioning, partitioning intermediate data, exploratory decomposition of search spaces, speculative decomposition, and hybrid approaches. It provides examples and diagrams to illustrate how to apply these techniques to problems like matrix multiplication, counting item frequencies, and the 15-puzzle problem. Key characteristics of derived tasks like task generation, sizes, data associations are also covered.
This document summarizes the author's masters project on developing a document translation system. The system uses a multi-step pipeline including text detection with the CRAFT model, text recognition with STR, text merging, image inpainting with DeepFillV2, and translation via Google Translate API. Details are provided on the models used, data processing, and approach for each step of the pipeline to translate documents while preserving layout and design elements.
Building a vietnamese dialog mechanism for v dlg~tabl systemijnlc
This paper introduces a Vietnamese automatic dialog mechanism which allows the V-DLG~TABL system to automatically communicate with clients. This dialog mechanism is based on the Question – Answering engine of V-DLG~TABL system, and composes the following supplementary mechanisms: 1) the mechanism of choosing the suggested question; 2) the mechanism of managing the conversations and suggesting information; 3) the mechanism of resolving the questions having anaphora; 4) the scenarios of dialog (in this stage, there is only one simple scenario defined for the system).
This document presents the process for a student's project that will conduct differential testing on two Binary Decision Diagram (BDD) libraries. The project will: 1) Construct BDD objects from both libraries with the same features; 2) Automatically generate random tests by applying operations to the BDDs; 3) Use JUnit tests to check that the two libraries produce equivalent results; 4) Measure and compare the running times of the libraries to determine if there is a significant performance difference. The goal is to validate that the two BDD implementations behave the same while also evaluating their relative performance.
DCG and NDCG are evaluation measures used to evaluate the performance of ranking models. DCG measures the goodness of a ranking list based on the labels of each document, where documents with higher labels contribute more to the DCG score. NDCG normalizes the DCG score to range from 0 to 1. MAP measures the average precision of a ranking list where labels are binary as relevant or not. Kendall's Tau evaluates how closely the order of items in two lists match on a scale from -1 to 1.
Clustering technology has been applied in numerous applications. It can enhance the performance
of information retrieval systems, it can also group Internet users to help improve the click-through rate of
on-line advertising, etc. Over the past few decades, a great many data clustering algorithms have been
developed, including K-Means, DBSCAN, Bi-Clustering and Spectral clustering, etc. In recent years, two
new data clustering algorithms have been proposed, which are affinity propagation (AP, 2007) and density
peak based clustering (DP, 2014). In this work, we empirically compare the performance of these two latest
data clustering algorithms with state-of-the-art, using 6 external and 2 internal clustering validation metrics.
Our experimental results on 16 public datasets show that, the two latest clustering algorithms, AP and DP,
do not always outperform DBSCAN. Therefore, to find the best clustering algorithm for a specific dataset, all
of AP, DP and DBSCAN should be considered. Moreover, we find that the comparison of different clustering
algorithms is closely related to the clustering evaluation metrics adopted. For instance, when using the
Silhouette clustering validation metric, the overall performance of K-Means is as good as AP and DP. This
work has important reference values for researchers and engineers who need to select appropriate clustering
algorithms for their specific applications.
The document contains information about CIS 336 final exams and study materials for CIS 336 courses. It includes multiple choice questions and answers from past CIS 336 final exams. It also includes information about a CIS 336 group project on database design and modeling.
The high-level information is:
1) The document provides sample questions and answers from past CIS 336 final exams on topics like relational database management systems, data modeling, and SQL queries.
2) It also includes guidelines and deliverables for a group project on designing, developing, and demonstrating a database based on a business scenario.
3) Students are to submit logical and physical models, populate tables with data, and write queries for reports to demonstrate the functionality
Web Information Extraction Learning based on Probabilistic Graphical ModelsGUANBO
The document describes a graphical model for jointly extracting and resolving product attributes from web pages. The model uses a Dirichlet process prior to handle an unlimited number of attributes. Variational inference is used to approximate the intractable posterior distribution. Experimental results on four domains show the model achieves good performance on attribute extraction and resolution without supervision.
This document discusses different techniques for decomposing data and computations into parallel tasks, including: output data partitioning, input data partitioning, partitioning intermediate data, exploratory decomposition of search spaces, speculative decomposition, and hybrid approaches. It provides examples and diagrams to illustrate how to apply these techniques to problems like matrix multiplication, counting item frequencies, and the 15-puzzle problem. Key characteristics of derived tasks like task generation, sizes, data associations are also covered.
This document summarizes the author's masters project on developing a document translation system. The system uses a multi-step pipeline including text detection with the CRAFT model, text recognition with STR, text merging, image inpainting with DeepFillV2, and translation via Google Translate API. Details are provided on the models used, data processing, and approach for each step of the pipeline to translate documents while preserving layout and design elements.
The document summarizes two projects completed during an internship at JCDecaux:
1. Psychographic Spatial Segmentation (PSA) aimed to cluster geographic regions based on residents' preferences from an external data provider, but the project was interrupted when data access stopped.
2. Ads Recognition sought to classify ad image content to restrict inappropriate ads, comparing free models to Amazon Rekognition. Various datasets and models were evaluated to map image tags to business needs.
An Interval Type-2 Fuzzy Approach for Process Plan Selectioninventionjournals
International Journal of Engineering and Science Invention (IJESI) is an international journal intended for professionals and researchers in all fields of computer science and electronics. IJESI publishes research articles and reviews within the whole field Engineering Science and Technology, new teaching methods, assessment, validation and the impact of new technologies and it will continue to provide information on the latest trends and developments in this ever-expanding subject. The publications of papers are selected through double peer reviewed to ensure originality, relevance, and readability. The articles published in our journal can be accessed online.
45min talk given at LondonR March 2014 Meetup.
The presentation describes how one might go about an insights-driven data science project using the R language and packages, using an open source dataset.
This document summarizes a machine learning project to predict insurance claim severities for the Kaggle "Allstate Claims Severity" competition. It describes the dataset, preprocessing steps including one-hot encoding and outlier removal. A deep neural network model was trained using H2O. Hyperparameters were optimized in 4 phases: activation function, network architecture, outliers/epochs, and learning rate. 21 model submissions achieved test MAEs from 1,169 to 1,292, outperforming random forest benchmarks. Rectifier activation, 3 hidden layers of 1000 neurons total, removing outliers, 100 epochs, and a learning rate of 0.0001 produced strong results.
Supplementary material for my following paper: Infinite Latent Process Decomp...Tomonari Masada
This document proposes an infinite latent process decomposition (iLPD) model for microarray data. iLPD extends latent process decomposition (LPD) to allow for an infinite number of latent processes. It presents iLPD's generative process and joint distribution. The document also introduces auxiliary variables and provides a collapsed variational Bayesian inference approach for iLPD. This involves deriving a lower bound for the log evidence to evaluate iLPD's efficiency and compare it to LPD. The proposed method improves on past work by treating full posterior distributions over hyperparameters and removing dependencies in computing the variational lower bound.
Multimodal Biometrics Recognition by Dimensionality Diminution MethodIJERA Editor
Multimodal biometric system utilizes two or more character modalities, e.g., face, ear, and fingerprint,
Signature, plamprint to improve the recognition accuracy of conventional unimodal methods. We propose a new
dimensionality reduction method called Dimension Diminish Projection (DDP) in this paper. DDP can not only
preserve local information by capturing the intra-modal geometry, but also extract between-class relevant
structures for classification effectively. Experimental results show that our proposed method performs better
than other algorithms including PCA, LDA and MFA.
SOURCE CODE RETRIEVAL USING SEQUENCE BASED SIMILARITYIJDKP
This document summarizes an approach to improve source code retrieval using structural information from source code. A lexical parser is developed to extract control statements and method identifiers from Java programs. A similarity measure is proposed that calculates the ratio of fully matching statements to partially matching statements in a sequence. Experiments show the retrieval model using this measure improves retrieval performance over other models by up to 90.9% relative to the number of retrieved methods.
Finding Relationships between the Our-NIR Cluster ResultsCSCJournals
The problem of evaluating node importance in clustering has been active research in present days and many methods have been developed. Most of the clustering algorithms deal with general similarity measures. However In real situation most of the cases data changes over time. But clustering this type of data not only decreases the quality of clusters but also disregards the expectation of users, when usually require recent clustering results. In this regard we proposed Our-NIR method that is better than Ming-Syan Chen proposed a method and it has proven with the help of results of node importance, which is related to calculate the node importance that is very useful in clustering of categorical data, still it has deficiency that is importance of data labeling and outlier detection. In this paper we modified Our-NIR method for evaluating of node importance by introducing the probability distribution which will be better than by comparing the results.
AN EFFICIENT CODEBOOK INITIALIZATION APPROACH FOR LBG ALGORITHMIJCSEA Journal
In VQ based image compression technique has three major steps namely (i) Codebook Design, (ii) VQ Encoding Process and (iii) VQ Decoding Process. The performance of VQ based image compression technique depends upon the constructed codebook. A widely used technique for VQ codebook design is the Linde-Buzo-Gray (LBG) algorithm. However the performance of the standard LBG algorithm is highly dependent on the choice of the initial codebook. In this paper, we have proposed a simple and very effective approach for codebook initialization for LBG algorithm. The simulation results show that the proposed scheme is computationally efficient and gives expected performance as compared to the standard LBG algorithm.
BARRACUDA, AN OPEN SOURCE FRAMEWORK FOR PARALLELIZING DIVIDE AND CONQUER ALGO...IJCI JOURNAL
This paper presents a newly-created Barracuda open-source framework which aims to parallelize Java divide and conquer applications. This framework exploits implicit for-loop parallelism in dividing and merging operations. So, this makes it a mixture of parallel for-loop and task parallelism. It targets sharedmemory multiprocessors and hybrid distributed shared-memory architectures. We highlight the effectiveness of the framework and focus on the performance gain and programming effort by using this framework. Barracuda aims at large public actors as well as various application domains. In terms of performance achievement, it is very close to Fork/Join framework while allowing end-users to only focus on refactoring code and experts to have the opportunity to improve it.
Deploying the producer consumer problem using homogeneous modalitiesFredrick Ishengoma
This document describes a proposed system called BedcordFacework for deploying the producer-consumer problem using homogeneous modalities. It discusses related work on neural networks and distributed theory. It presents a model for BedcordFacework consisting of four independent components and details its relationship to virtual theory. The implementation includes Ruby scripts, Fortran code, and Prolog files. Results are presented showing BedcordFacework outperforming other frameworks in terms of throughput and latency. The conclusion argues that BedcordFacework can make voice-over-IP atomic, pervasive, and distributed.
This technical report compares the machine learning libraries H2O and SparkMLlib. It finds that H2O offers more advanced machine learning algorithms and faster performance for tasks like linear modeling and random forests. Experiments show predictive analysis using H2O's GLM took 15.86 seconds and achieved 71.33% accuracy on iris data, while SparkMLlib's GLM took 25.70 seconds and had lower 68.33% accuracy. The report concludes H2O provides more efficient algorithms and integration with Spark for machine learning on big data.
This document contains lecture notes for an Advanced Data Structures course taught by Sanjay Goel in 2006. It covers a range of topics related to data structures and algorithms, including concept mapping, storing graphs and binary trees in tables, sorting algorithms like merge sort and quicksort, and greedy algorithms like Huffman encoding and minimum spanning trees. Students are assigned several programming assignments involving implementing and analyzing the performance of various algorithms.
1 Project 2 Introduction - the SeaPort Project seri.docxhoney725342
1
Project 2
Introduction - the SeaPort Project series
For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports.
Here are the classes and their instance variables we wish to define:
SeaPortProgram extends JFrame
o variables used by the GUI interface
o world: World
Thing implement Comparable <Thing>
o index: int
o name: String
o parent: int
World extends Thing
o ports: ArrayList <SeaPort>
o time: PortTime
SeaPort extends Thing
o docks: ArrayList <Dock>
o que: ArrayList <Ship> // the list of ships waiting to dock
o ships: ArrayList <Ship> // a list of all the ships at this port
o persons: ArrayList <Person> // people with skills at this port
Dock extends Thing
o ship: Ship
Ship extends Thing
o arrivalTime, dockTime: PortTime
o draft, length, weight, width: double
o jobs: ArrayList <Job>
PassengerShip extends Ship
o numberOfOccupiedRooms: int
o numberOfPassengers: int
o numberOfRooms: int
CargoShip extends Ship
o cargoValue: double
o cargoVolume: double
o cargoWeight: double
Person extends Thing
o skill: String
Job extends Thing - optional till Projects 3 and 4
o duration: double
o requirements: ArrayList <String>
// should be some of the skills of the persons
PortTime
o time: int
Eventually, in Projects 3 and 4, you will be asked to show the progress of the jobs using JProgressBar's.
2
Here's a very quick overview of all projects:
1. Read a data file, create the internal data structure, create a GUI to display the structure, and let
the user search the structure.
2. Sort the structure, use hash maps to create the structure more efficiently.
3. Create a thread for each job, cannot run until a ship has a dock, create a GUI to show the
progress of each job.
4. Simulate competing for resources (persons with particular skills) for each job.
Project 2 General Objectives
Project 2 - Map class, Comparator, sorting
Use the JDK Map class to write more efficient code when constructing the internal data
structures from the data file.
Implement SORTING using the Comparator interface together with the JDK support for sorting
data structures, thus sorting on different fields of the classes from Project 1.
Extend the GUI from Project 1 to let the user sort the data at run-time.
Documentation Requirements:
You should start working on a documentation file before you do anything else with these projects, and
fill in items as you go along. Leaving the documentation until the project is finished is not a good idea for
any number of reasons.
The documentation should include the following (graded) elements:
Cover page (including name, date, project, your class information)
Design
o including a UML class diagram
o classes, variables and methods: what they mean and why they are there
o tied to the requirements of the project
User's Guide
o how would a user start and run your pro ...
This document provides an overview of functional modeling and the Object Modeling Technique (OMT) methodology for object-oriented systems analysis and design. It describes functional modeling using data flow diagrams and the key components of OMT, including the analysis, design, and implementation phases. The analysis phase involves creating object, dynamic, and functional models to specify the system. Comparisons are made between OMT and other methodologies like Structured Analysis/Design and Jackson Structured Design.
This document discusses functional modeling and data flow diagrams (DFDs) for object-oriented systems. It provides an overview of the following topics:
1. Functional modeling uses DFDs to represent how input and output values are derived in a program through processes and data flows.
2. DFDs graphically show the flow of data through a system using processes, data stores, flows, and external entities. They can be layered with increasing specificity.
3. Specifying operations for a functional model involves identifying inputs/outputs, building the DFD, describing functions, identifying constraints, and specifying optimization criteria.
4. The document also briefly introduces the Object Modeling Technique (OMT) methodology
ME/R model: A New approach of Data Warehouse Schema Designidescitation
In this paper we pursue schema design for data
warehouses in the spirit of classical database design, organized
as a sequence of requirement analysis and specification to
collect user requirements, conceptual design to model the
data warehouse as a multidimensional database independently
from implementation issues, logical design to transform the
conceptual data warehouse schema into the target data model,
and physical design to maximize performance with respect to
a target database system.
This document discusses HadoopDB and Apache Hive. HadoopDB aims to combine the scalability of MapReduce with the performance of parallel databases by running Hive queries over data stored in node-local relational databases rather than HDFS. It describes HadoopDB's architecture, which replaces HDFS with local databases, and benchmarks comparing it to MapReduce. It also summarizes Hive's data model, query language and architecture, which provides a SQL interface to MapReduce by translating queries into map and reduce jobs.
This document discusses software design principles and methods. It covers topics like abstraction, modularity, coupling and cohesion, and information hiding. It also describes different design methods including functional decomposition, data flow design, design based on data structures, and object-oriented design. Key aspects of these methods are explained, such as the stages of object-oriented analysis and design. The document provides examples to illustrate different design concepts and metrics.
This document provides an agenda and overview for a quick start lab on JBoss Data Grid (JDG). The agenda includes an introduction to big data and NoSQL terminology, how developers scale out applications, consistent hashing, what a data grid is, a demonstration, JDG/Infinispan features, and a question and answer section. It describes key concepts like the CAP theorem, consistent hashing algorithms, different JDG cache topologies (local, invalidation, replicated, distributed), and how to tune hashing in JDG.
LOD2 plenary meeting in Paris: presentation of WP2: State of Play (Storing and Querying Very Large Knowledge Bases) by Peter Boncz (CWI) and Orri Erling (OpenLink Software)
The document summarizes two projects completed during an internship at JCDecaux:
1. Psychographic Spatial Segmentation (PSA) aimed to cluster geographic regions based on residents' preferences from an external data provider, but the project was interrupted when data access stopped.
2. Ads Recognition sought to classify ad image content to restrict inappropriate ads, comparing free models to Amazon Rekognition. Various datasets and models were evaluated to map image tags to business needs.
An Interval Type-2 Fuzzy Approach for Process Plan Selectioninventionjournals
International Journal of Engineering and Science Invention (IJESI) is an international journal intended for professionals and researchers in all fields of computer science and electronics. IJESI publishes research articles and reviews within the whole field Engineering Science and Technology, new teaching methods, assessment, validation and the impact of new technologies and it will continue to provide information on the latest trends and developments in this ever-expanding subject. The publications of papers are selected through double peer reviewed to ensure originality, relevance, and readability. The articles published in our journal can be accessed online.
45min talk given at LondonR March 2014 Meetup.
The presentation describes how one might go about an insights-driven data science project using the R language and packages, using an open source dataset.
This document summarizes a machine learning project to predict insurance claim severities for the Kaggle "Allstate Claims Severity" competition. It describes the dataset, preprocessing steps including one-hot encoding and outlier removal. A deep neural network model was trained using H2O. Hyperparameters were optimized in 4 phases: activation function, network architecture, outliers/epochs, and learning rate. 21 model submissions achieved test MAEs from 1,169 to 1,292, outperforming random forest benchmarks. Rectifier activation, 3 hidden layers of 1000 neurons total, removing outliers, 100 epochs, and a learning rate of 0.0001 produced strong results.
Supplementary material for my following paper: Infinite Latent Process Decomp...Tomonari Masada
This document proposes an infinite latent process decomposition (iLPD) model for microarray data. iLPD extends latent process decomposition (LPD) to allow for an infinite number of latent processes. It presents iLPD's generative process and joint distribution. The document also introduces auxiliary variables and provides a collapsed variational Bayesian inference approach for iLPD. This involves deriving a lower bound for the log evidence to evaluate iLPD's efficiency and compare it to LPD. The proposed method improves on past work by treating full posterior distributions over hyperparameters and removing dependencies in computing the variational lower bound.
Multimodal Biometrics Recognition by Dimensionality Diminution MethodIJERA Editor
Multimodal biometric system utilizes two or more character modalities, e.g., face, ear, and fingerprint,
Signature, plamprint to improve the recognition accuracy of conventional unimodal methods. We propose a new
dimensionality reduction method called Dimension Diminish Projection (DDP) in this paper. DDP can not only
preserve local information by capturing the intra-modal geometry, but also extract between-class relevant
structures for classification effectively. Experimental results show that our proposed method performs better
than other algorithms including PCA, LDA and MFA.
SOURCE CODE RETRIEVAL USING SEQUENCE BASED SIMILARITYIJDKP
This document summarizes an approach to improve source code retrieval using structural information from source code. A lexical parser is developed to extract control statements and method identifiers from Java programs. A similarity measure is proposed that calculates the ratio of fully matching statements to partially matching statements in a sequence. Experiments show the retrieval model using this measure improves retrieval performance over other models by up to 90.9% relative to the number of retrieved methods.
Finding Relationships between the Our-NIR Cluster ResultsCSCJournals
The problem of evaluating node importance in clustering has been active research in present days and many methods have been developed. Most of the clustering algorithms deal with general similarity measures. However In real situation most of the cases data changes over time. But clustering this type of data not only decreases the quality of clusters but also disregards the expectation of users, when usually require recent clustering results. In this regard we proposed Our-NIR method that is better than Ming-Syan Chen proposed a method and it has proven with the help of results of node importance, which is related to calculate the node importance that is very useful in clustering of categorical data, still it has deficiency that is importance of data labeling and outlier detection. In this paper we modified Our-NIR method for evaluating of node importance by introducing the probability distribution which will be better than by comparing the results.
AN EFFICIENT CODEBOOK INITIALIZATION APPROACH FOR LBG ALGORITHMIJCSEA Journal
In VQ based image compression technique has three major steps namely (i) Codebook Design, (ii) VQ Encoding Process and (iii) VQ Decoding Process. The performance of VQ based image compression technique depends upon the constructed codebook. A widely used technique for VQ codebook design is the Linde-Buzo-Gray (LBG) algorithm. However the performance of the standard LBG algorithm is highly dependent on the choice of the initial codebook. In this paper, we have proposed a simple and very effective approach for codebook initialization for LBG algorithm. The simulation results show that the proposed scheme is computationally efficient and gives expected performance as compared to the standard LBG algorithm.
BARRACUDA, AN OPEN SOURCE FRAMEWORK FOR PARALLELIZING DIVIDE AND CONQUER ALGO...IJCI JOURNAL
This paper presents a newly-created Barracuda open-source framework which aims to parallelize Java divide and conquer applications. This framework exploits implicit for-loop parallelism in dividing and merging operations. So, this makes it a mixture of parallel for-loop and task parallelism. It targets sharedmemory multiprocessors and hybrid distributed shared-memory architectures. We highlight the effectiveness of the framework and focus on the performance gain and programming effort by using this framework. Barracuda aims at large public actors as well as various application domains. In terms of performance achievement, it is very close to Fork/Join framework while allowing end-users to only focus on refactoring code and experts to have the opportunity to improve it.
Deploying the producer consumer problem using homogeneous modalitiesFredrick Ishengoma
This document describes a proposed system called BedcordFacework for deploying the producer-consumer problem using homogeneous modalities. It discusses related work on neural networks and distributed theory. It presents a model for BedcordFacework consisting of four independent components and details its relationship to virtual theory. The implementation includes Ruby scripts, Fortran code, and Prolog files. Results are presented showing BedcordFacework outperforming other frameworks in terms of throughput and latency. The conclusion argues that BedcordFacework can make voice-over-IP atomic, pervasive, and distributed.
This technical report compares the machine learning libraries H2O and SparkMLlib. It finds that H2O offers more advanced machine learning algorithms and faster performance for tasks like linear modeling and random forests. Experiments show predictive analysis using H2O's GLM took 15.86 seconds and achieved 71.33% accuracy on iris data, while SparkMLlib's GLM took 25.70 seconds and had lower 68.33% accuracy. The report concludes H2O provides more efficient algorithms and integration with Spark for machine learning on big data.
This document contains lecture notes for an Advanced Data Structures course taught by Sanjay Goel in 2006. It covers a range of topics related to data structures and algorithms, including concept mapping, storing graphs and binary trees in tables, sorting algorithms like merge sort and quicksort, and greedy algorithms like Huffman encoding and minimum spanning trees. Students are assigned several programming assignments involving implementing and analyzing the performance of various algorithms.
1 Project 2 Introduction - the SeaPort Project seri.docxhoney725342
1
Project 2
Introduction - the SeaPort Project series
For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports.
Here are the classes and their instance variables we wish to define:
SeaPortProgram extends JFrame
o variables used by the GUI interface
o world: World
Thing implement Comparable <Thing>
o index: int
o name: String
o parent: int
World extends Thing
o ports: ArrayList <SeaPort>
o time: PortTime
SeaPort extends Thing
o docks: ArrayList <Dock>
o que: ArrayList <Ship> // the list of ships waiting to dock
o ships: ArrayList <Ship> // a list of all the ships at this port
o persons: ArrayList <Person> // people with skills at this port
Dock extends Thing
o ship: Ship
Ship extends Thing
o arrivalTime, dockTime: PortTime
o draft, length, weight, width: double
o jobs: ArrayList <Job>
PassengerShip extends Ship
o numberOfOccupiedRooms: int
o numberOfPassengers: int
o numberOfRooms: int
CargoShip extends Ship
o cargoValue: double
o cargoVolume: double
o cargoWeight: double
Person extends Thing
o skill: String
Job extends Thing - optional till Projects 3 and 4
o duration: double
o requirements: ArrayList <String>
// should be some of the skills of the persons
PortTime
o time: int
Eventually, in Projects 3 and 4, you will be asked to show the progress of the jobs using JProgressBar's.
2
Here's a very quick overview of all projects:
1. Read a data file, create the internal data structure, create a GUI to display the structure, and let
the user search the structure.
2. Sort the structure, use hash maps to create the structure more efficiently.
3. Create a thread for each job, cannot run until a ship has a dock, create a GUI to show the
progress of each job.
4. Simulate competing for resources (persons with particular skills) for each job.
Project 2 General Objectives
Project 2 - Map class, Comparator, sorting
Use the JDK Map class to write more efficient code when constructing the internal data
structures from the data file.
Implement SORTING using the Comparator interface together with the JDK support for sorting
data structures, thus sorting on different fields of the classes from Project 1.
Extend the GUI from Project 1 to let the user sort the data at run-time.
Documentation Requirements:
You should start working on a documentation file before you do anything else with these projects, and
fill in items as you go along. Leaving the documentation until the project is finished is not a good idea for
any number of reasons.
The documentation should include the following (graded) elements:
Cover page (including name, date, project, your class information)
Design
o including a UML class diagram
o classes, variables and methods: what they mean and why they are there
o tied to the requirements of the project
User's Guide
o how would a user start and run your pro ...
This document provides an overview of functional modeling and the Object Modeling Technique (OMT) methodology for object-oriented systems analysis and design. It describes functional modeling using data flow diagrams and the key components of OMT, including the analysis, design, and implementation phases. The analysis phase involves creating object, dynamic, and functional models to specify the system. Comparisons are made between OMT and other methodologies like Structured Analysis/Design and Jackson Structured Design.
This document discusses functional modeling and data flow diagrams (DFDs) for object-oriented systems. It provides an overview of the following topics:
1. Functional modeling uses DFDs to represent how input and output values are derived in a program through processes and data flows.
2. DFDs graphically show the flow of data through a system using processes, data stores, flows, and external entities. They can be layered with increasing specificity.
3. Specifying operations for a functional model involves identifying inputs/outputs, building the DFD, describing functions, identifying constraints, and specifying optimization criteria.
4. The document also briefly introduces the Object Modeling Technique (OMT) methodology
ME/R model: A New approach of Data Warehouse Schema Designidescitation
In this paper we pursue schema design for data
warehouses in the spirit of classical database design, organized
as a sequence of requirement analysis and specification to
collect user requirements, conceptual design to model the
data warehouse as a multidimensional database independently
from implementation issues, logical design to transform the
conceptual data warehouse schema into the target data model,
and physical design to maximize performance with respect to
a target database system.
This document discusses HadoopDB and Apache Hive. HadoopDB aims to combine the scalability of MapReduce with the performance of parallel databases by running Hive queries over data stored in node-local relational databases rather than HDFS. It describes HadoopDB's architecture, which replaces HDFS with local databases, and benchmarks comparing it to MapReduce. It also summarizes Hive's data model, query language and architecture, which provides a SQL interface to MapReduce by translating queries into map and reduce jobs.
This document discusses software design principles and methods. It covers topics like abstraction, modularity, coupling and cohesion, and information hiding. It also describes different design methods including functional decomposition, data flow design, design based on data structures, and object-oriented design. Key aspects of these methods are explained, such as the stages of object-oriented analysis and design. The document provides examples to illustrate different design concepts and metrics.
This document provides an agenda and overview for a quick start lab on JBoss Data Grid (JDG). The agenda includes an introduction to big data and NoSQL terminology, how developers scale out applications, consistent hashing, what a data grid is, a demonstration, JDG/Infinispan features, and a question and answer section. It describes key concepts like the CAP theorem, consistent hashing algorithms, different JDG cache topologies (local, invalidation, replicated, distributed), and how to tune hashing in JDG.
LOD2 plenary meeting in Paris: presentation of WP2: State of Play (Storing and Querying Very Large Knowledge Bases) by Peter Boncz (CWI) and Orri Erling (OpenLink Software)
Knowledge Discovery Query Language (KDQL)Zakaria Zubi
The document discusses Knowledge Discovery Query Language (KDQL), a proposed query language for interacting with i-extended databases in the knowledge discovery process. KDQL is designed to handle data mining rules and retrieve association rules from i-extended databases. The key points are:
1) KDQL is based on SQL and is intended to support tasks like association rule mining within the ODBC_KDD(2) model for knowledge discovery.
2) It can be used to query i-extended databases, which contain both data and discovered patterns.
3) The KDQL RULES operator allows users to specify data mining tasks like finding association rules that satisfy certain frequency and confidence thresholds.
This document provides a primer on using MongoDB's find() and aggregate() methods to query data. It explains that find() allows filtering and sorting documents like a SQL SELECT statement, while aggregate() enables more complex queries like joins, aggregations, and outputting results to collections. It details the different stages of aggregation pipelines like match, group, sort, and limit, and provides many examples of using find() and aggregate() to query data in MongoDB.
MIXED 0−1 GOAL PROGRAMMING APPROACH TO INTERVAL-VALUED BILEVEL PROGRAMMING PR...cscpconf
This document presents a mixed 0-1 goal programming approach to solve interval-valued fractional bilevel programming problems using a bio-inspired computational algorithm. It formulates the problem using goal programming to minimize regret intervals for target intervals of achieving goals. A genetic algorithm is used to determine target intervals and optimal decisions by distributing decision powers hierarchically. It presents the problem formulation, design of the genetic algorithm using fitter codon selection and two-point crossover, and formulation of interval-valued goals by determining best and worst solutions for objectives of decision makers at different levels using the genetic algorithm.
DIRECTIONS READ THE FOLLOWING STUDENT POST AND RESPOND EVALUATE I.docxlynettearnold46882
DIRECTIONS: READ THE FOLLOWING STUDENT POST AND RESPOND EVALUATE ITS CONTENT. PLEASE CITE ALL REFERENCES
Katie Kessler
Unit 2 Discussion 1
Top of Form
The word “noir” is used to remember the scaling of measurement in psychology (Embretson, 2004). In short, the letters stand for nominal, ordinal, interval and ratio (Embretson, 2004). To give a brief introduction of what each scale measures, “nominal is the simplest way to measure” because it focuses on categorizing measurements on a scale of category, according to Embretson (2004). An example of nominal is eye color. “Ordinal measures in terms of ranking, interval measures scores of tests that focus on unobservable mental functioning and ratio focuses on measuring activities in the physical world, such as someone’s running time” (Embretson, 2004). With different scales of measurement, there are two methods to compare sets of data. These include norm-referenced and criterion-referenced testing. According to Embretson (2004) norm-referenced testing “yields information on a testtaker’s standing or ranking relative to some comparison group of testtakers.” In other words, it focuses on the performance of peers. Criterion-referenced testing is a little different because it focuses on examining individual’s scores to a set standard (Embretson, 2004).
The ability for ordinal measurement scale to be utilized on a standardized test as a norm-referenced test is high since an ordinal scale is based upon ranking and norm-referenced testing gathers information on the examinees ranking compared to a group of testtakers. For example, a study conducted on decision making with the use of ordinal variables states that ordinal measurement scales has the ability to be utilized by norm-referenced testing (Barua, Kademane, Das, Gubbiyappa, Verma, & Al-Dubai, 2014).On the other hand, ordinal scaling would not be a strong measurement for criterion-referenced testing because it focuses on the ranking rather than the measurement of the scores to be close to a set standard.
Ratio scaling directs its focus on measuring objects and activities in the physical world which would be beneficial for criterion-referenced testing instead of norm-referenced testing. Imagine a marathon runner who was trying to beat the world’s fastest time running a marathon. Criterion-referenced testing allows the runner to be aware of the set standard the marathon runner needs to beat to be the best and set a new standard. Norm-referenced testing would not be as useful because the marathon runner would not have the standard measurement he or she needs to beat. However, the marathon runner would be aware of the relative time he or she needs to beat to be the best. That is not as helpful as the criterion-referenced testing because runners need an exact number instead of a relative number in comparison to other runners.
Norm-referenced data would be collected by “the standards relative to a group, such as means and standard deviation.
ON AN OPTIMIZATION TECHNIQUE USING BINARY DECISION DIAGRAMIJCSEA Journal
Two-level logic minimization is a central problem in logic synthesis, and has applications in reliability analysis and automated reasoning. This paper represents a method of minimizing Boolean sum of products function with binary decision diagram and with disjoint sum of product minimization. Due to the symbolic representation of cubes for large problem instances, the method is orders of magnitude faster than previous enumerative techniques. But the quality of the approach largely depends on the variable ordering of the underlying BDD. The application of Binary Decision Diagrams (BDDs) as an efficient approach for the minimization of Disjoint Sums-of-Products (DSOPs). DSOPs are a starting point for several applications. The use of BDDs has the advantage of an implicit representation of terms. Due to this scheme the algorithm is faster than techniques working on explicit representations and the application to large circuits that could not be handled so far becomes possible. Theoretical studies on the influence of the BDDs to the search space are carried out. In experiments the proposed technique is compared to others. The results with respect to the size of the resulting DSOP are as good or better as those of the other techniques.
GEN: A Database Interface Generator for HPC ProgramsTanu Malik
GEN is a database interface generator that takes user-supplied C declarations and provides an interface to load scientific array data into databases without requiring changes to source code. It works by wrapping POSIX I/O calls at runtime to generate database schema definitions and load data. Experiments show it can reduce the time needed to reorganize data in the database compared to loading data from files and reorganizing outside the database. Current work aims to relax GEN's assumptions and improve data loading performance.
GEN: A Database Interface Generator for HPC Programs
Xia Xiao-research paper
1. Differential Testing, Java Performance Evaluation
and Execution Time Comparison of two Binary
Decision Diagram Libraries
Xia Xiao
Institute for Software Research, Carnegie Mellon University, Pittsburgh, PA
New York University, New York City, NY
xx681@nyu.edu
Abstract
As one of the data structures to represent Boolean functions in
Computer Science, Binary Decision Diagram(BDD) or
branching program is a compressed and abstract representation
of sets and relations. Comparing with other data structures like
Negation normal form(NNF) and Propositional directed acyclic
graph(PDAG), Binary Decision Diagram has its unique features
that are advantageous: In most cases, the term BDD commonly
refers to Reduced Binary Decision Diagram(ROBDD). The
nodes with variables in the BDD are connected with an order
(either alphabetical or numerical), and therefore it saves the
trouble traversing through the graph to look for a particular
node within the structure; meanwhile, the structure of BDD is
usually reduced, which means it eliminates the redundancies of
duplicated nodes existing within the same structure. Most
important of all, ROBDD has the feature that its representation
of a particular function and variable order is canonical – this
advantage it’s useful and make it simple for checking the
functional equivalency of multiple different Boolean functions
and operations like technology mapping.
Based on the uniqueness of Binary Decision Diagram,
Boolean function f can be transformed into a reduced and
ordered version of BDD. It simplified the work of building truth
table and comparing the truth values with different combination
of operations with multiple variables. It is worthwhile for us to
conduct a research on the Java Performance Evaluation on BDD
libraries.
There already exists some implementation of BDD libraries.
We are particularly interested in comparing the performance of
the JavaBDD library (available at
http://javabdd.sourceforge.net/index.html) and our own
implementation of Binary Decision Diagram library. By
implementing Differential Testing on both BDD libraries, we
check the functionally equivalency of operations to make sure
our BDD library follows the correct structure and no bugs
existing in the execution. In the differential testing file, we
measure the execution time of constructing different sizes of
BDD objects on both libraries and collected data from multiple
runs of the JUnit test file. Then we use Minitab Express to
generate 6 histograms and 6 boxplots of the execution time of
two BDD libraries in order to compare their running speed.
With theoretical support of statistic, we use t-test and
confidence interval to make sure the difference in their Java
Performance is statistically significant.
This paper shows that the JavaBDD library performs a faster
execution time when constructing BDD objects (and its
advantage gets more obvious when the number of BDD
increase). And this conclusion is illustrated by using differential
testing and statistically rigorous methodologies. In addition, we
advocate taking advantage of the structure of the existing
JavaBDD library and apply those advantages into our own
development of the BDD library implementations. We also
would like to encourage other researchers to put effort into
improving and consummating Java BDD implementation in
future work, since it would benefit future research on Data
Structure and Boolean Function studies.
Keywords
Binary Decision Diagram, Java, Differential Testing, Java
Performance Evaluation, Statistics, Methodology
1. Introduction
Boolean function has been an important concept exiting in both
mathematics and logic for many years. It describes how to
determine a Boolean value output based on some logical
calculation from some Boolean inputs. There have been many
extended applications derive from the theory. Generally, a
Boolean function is of the following form:
ƒ: Bk
→ B
In the formula above, B = {0, 1} is called a Boolean domain and
k is a non-negative integer called the arity of the function. In the
case where k = 0, the "function" is essentially a constant element
of B. Every k-ary Boolean function can be expressed as a
2. propositional formula in k variables x1, …, xk, and two
propositional formulas are logically equivalent if and only if
they express the same Boolean function. There are 22k k-ary
functions for every k.
Particularly, Boolean function plays a pivotal role in the area
of computer engineering. There have been some propositional
logical representations of Boolean function, like multivariate
polynomials over (GF), negation normal forms, and
propositional directed acyclic graphs (PDAG). Among those
representations, Binary Decision Diagram is a more efficient
and simplified.
Binary Decision Diagram(BDD), a data structure has been
introduced by Lee in 1959, is gradually getting popular in recent
years. Its uniqueness in the variable’s order and reduction in the
duplicated nodes make it a special position among other data
structure representing Boolean functions.
The data structure of a Binary Decision Tree and truth table is
illustrated in Figure 1. As is shown, the value of the function can
be determined for a given variable assignment by following a
path down the graph to a terminal node. In Figure 1 the dotted
lines represent edges to a high child. Therefore, in order to find
(x1=0, x2=1, x3=1), we can begin at x1, and traverse down the
dotted line to x2 (since x1 has an assignment to 0), then down
two solid lines (since x2 and x3 each have an assignment to one).
This leads to the terminal 1, which is the value of f (x1=0, x2=1,
x3=1).
Figure 1. An example illustrating the Binary decision tree and
the corresponding truth table of the Boolean function f (x1, x2,
x3) = ¬(x1x2x3)+ x1x2 + x2x3.
The binary decision tree and the truth table in the above
figure can be transformed into a binary decision diagram by
maximally reducing it according to the two reduction rules:
• Merge any isomorphic sub graphs.
• Eliminate any node whose two children are
isomorphic.
The resulting BDD is shown in Figure 2 as following:
Figure 2. The BDD for the Boolean function f(x1, x2, x3) =
¬(x1x2x3)+ x1x2 + x2x3.
From the graph illustration of Boolean function f represented
in the data structure of Binary Decision Diagram we can see
clearly its structure: It’s rooted directed and consists of several
decision nodes (x1, x2, x3) and it has two two terminal nodes 0
and 1.
In Figure 2, each decision node is pointed to a low child (on
the left) and a high child (on the right). A dotted line represents
an assignment of 0 and a solid line represents an assignment of
1 instead.
This paper is organized as follows. In section 2, we firstly
raise some questions and come up several ideas of approaches
towards the research. Section 3 specifies the four major steps
of the research process. In section 4, we study the concept of
Differential Testing and apply it to the two Binary Decision
Diagram libraries. In the meantime, we write Java program that
automatically generate JUnit test file to conduct the differential
testing between the two BDD libraries. Section 6 we make the
comparison of the execution time of two BDD libraries.
Section 6 is the summary of this paper, and we make the
conclusion from the 6 histograms and 6 boxplots. Overall, the
JavaBDD library performs a faster running speed than our
BDD library.
3. 2. Questions and Ideas of
Approaches
In initial period of our research, we start with raising some
questions with relevance to the topics of Binary Decision
Diagram, Differential Testing and Java Performance Evaluation
as follows:
• How to implement Differential Testing on two different
BDD libraries?
• What’s the difference between Differential Testing and
other prevalent testing methods?
• What are the methods/theories would be helpful during
Java Evaluation on BDD?
• Which BDD library would have a shorter running time
during the evaluation? Is there a significant difference
between their running time?
• What non-determinism factor may effect the BDD Java
Performance Evaluation?
After we raise the above questions, we then collect some ideas
of approaches towards the research as follows:
• Since we are trying to compare two BDD libraries, it’s
important to consider the difference in the
implementation and functionality.
• Statistically rigorous methodology should be included
in our Java Performance Evaluation in order to avoid
misleading or even incorrect result.
• Confidence intervals can provide theoretical support
for the Java Performance Evaluation.
• Various system effects may have influence on the BDD
performance, while they do not have large impact on
the Java Performance Evaluation.
In the next section, we specify and follow the four major steps
during the research, making progress gradually towards our
conclusion.
3. Steps of the research
In the first step, we begin with getting familiar with the concepts,
theory, and background knowledge, and try to understand the
implementation and functionality in two different BDD libraries.
Next, we implement Differential Testing and write program for
automatically generating random test cases for both BDD
libraries. In the third step, we implement Differential Testing
and write program for automatically generating random test
cases for both BDD libraries. In the final step, we compare the
running time from step 3; we use Minitab Express to produce t-
test and histogram for two BDD library performance; and we
make conclusion based on the evaluation.
4. Differential Testing on Binary
Decision Diagram
Differential Testing – A form of random testing, is an important
testing technology for large software system. Particularly, based
on its unique feature of indirectness and comparison, differential
testing can bring about swift, efficient testing results and save
miscellaneous expense in time and space.
In order to implement Differential Testing on the two Binary
Decision Diagram, we follow the following procedure and the
corresponding code is shown in Figure 3:
a) Construct a series of BDD objects from both libraries,
and assign them with the same features(with the same
variable, low and high nodes).
b) Run the written program to automatically generate
random combination of the existing BDD with random
operations on them. Assign the constructed new BDDs
to group a and group b.
c) Make hypothesis and assume the BDDs with the same
data structure are built.
d) Use Junit Test and helper Method isSameBDD to
check the features of two groups of BDDs.
e) The helper method isSameBDD would call the toString
method in each library to check their equality.
f) Prove the hypothesis that the the constructed BDDs
work in the same way.
Figure 3. A part of the code from the JUnit test file illustrating
how the differential testing is applied in the BDD Java
performance Evaluation.
4. 5. Execution Time Comparison of two
BDD libraries
In order to compare the Java Performance Evaluation of two
Binary Decision Diagram, we use Minitab Express to generate
6 box plots and 6 histograms respectively as follows, Figure 4
shows the 6 boxplots and Figure 5 shows the 6 histograms:
(a)
(b)
(c)
Figure 4. The boxplots illustrating the execution time of two
BDD libraries when constructing the different numbers of BDD.
In Figure 4, the boxplots illustrate the distribution of the
running speed of two BDD libraries. As we can notice, when the
number of BDD to be constructed is one, the two boxplots are
almost on the same vertical level (overlap), which shows that the
running time of them are very close to each other. However, as
the size of BDD constructed increase, the boxplots don't’
overlap anymore and tend to show a gradually increasing
difference between the running time. And the gap is getting
larger as the size gets larger.
(d)
(e)
(f)
5. (a)
(b)
(c)
Figure 5. The histogram illustrating the execution time of two
BDD libraries when constructing the different numbers of BDD.
(d)
(e)
(f)
Figure 5 shows the 6 histograms illustrating the distribution of
both BDD libraries. Starting from size 1, the running time of
both libraries are very close, and the mode of the execution time
mostly distributed near 2 milliseconds. As the size of the
construction getting large, the different gets large as well, and
the difference can be seen more clearly in graph (c), (d), (e) and
(f).
6. 5. Summary
As we can see from section 5, There exists a difference in the
running speed between two BDD libraries during the Java
Performance Evaluation. As the numbers of BDD constructed
increase (size of 1,10, 20, 30, 40, 50), the histogram shows that
the difference in running time is also increasing.
The 6 boxplots illustrate that the distribution of the running
speed of two libraries. We notice that when size = 1, the running
speed is overlapped. However, as the size of BDD constructed
increase, the boxplots do not overlap anymore. The gap between
the two boxplots get larger as the size gets larger.
Overall, the JavaBDD library perform a faster running speed
than our BDD library. From data in the t-test statistics, 6
histograms and 6 boxplots generated by Minitab Express, the
results support our hypothesis.
There have been some non-determinisms could have a effect
on the Java Performance Evaluation on the Binary Decision
Diagram, including the garbage collector and the Java noise in
the background. However, they would not make a big difference
during the Java Performance Evaluation.
We believe this paper makes a step towards further study on
implementing the current Java BDD library and figuring out
how to improve the existing implementation and make it more
efficient with a faster execution time. Moreover, we would like
to implement a deeper inspection on our BDD library to make
sure there is not bugs or other kinds of exceptions occur. The
stability and reliability worth a further study and work in the
future.
Acknowledgment
We would like to thank Professor Christian Kästner – who offers
enthusiastic instructions and help with this research. His detailed
suggestions have greatly helped us throughout this summer
research program, including conducing the research, making the
academic poster and writing this research paper. The weekly
reading group also helped in introducing me into the world of
software research. By reading and discussing a specifically
chosen paper on a weekly basis, I learned some important skills
associated with research papers: How to critically reflect on a
scientific work; how to practice reading and argumentation
strategies; how to be exposed to broad range of research topics;
and how to lead a reading group discussion and guide your
teammates throughout the discussion. In the meantime, the
weekly meetings for all REU students on each Monday are also
thought-provoking. PHD students would Moreover, I would like
to thank all the staff and faculty in the REU program of Institute
for Software Research at Carnegie Mellon University. With your
generously offering me with this precious opportunity to
participate in this summer research program, I would be able to
have such a great experience during my undergraduate
education. The REU summer program indeed provided me with
a platform to work closely with professors, PHD students at
Carnegie Mellon University, as well as undergraduate
colleagues from other universities and colleges. It would always
be a valuable experience during my undergraduate years.
References
[1] Andersen, Henrik Reif. "An introduction to binary decision
diagrams." Lecture notes, available online, IT University
of Copenhagen (1997).
[2] “Binary Decision Diagram.” Wikipedia. Wikimedia
Foundation, n.d. Web. 24 July 2016.
[3] "Boolean Function." Wikipedia. Accessed July 27, 2016.
https://en.wikipedia.org/wiki/Boolean_function.
[4] Clarke, Edmund M., Masahiro Fujita, and Xudong Zhao.
"Multi-Terminal Binary Decision Diagrams and Hybrid
Decision Diagrams." Representations of Discrete
Functions, 1996, 93-108. doi:10.1007/978-1-4613-1385-
4_4.
[5] Drechsler, Rolf, and Bernd Becker. Binary decision
diagrams: theory and implementation. Springer Science &
Business Media, 2013.
[6] Georges, Andy, Dries Buytaert, and Lieven Eeckhout.
“Statistically Rigorous Java Performance Evaluation.”
ACM SIGPLAN Notices 42, no. 10 (October 21,
2007):57.doi; 10,1145/1297105.1297033.
[7] Vliet, Hans Van. Software Engineering: Principles and
Practice. Chichester: John Wiley, 2000.
[8] Wegener, Ingo. "Branching Programs and Binary Decision
Diagrams." 2000. doi:10.1137/1.9780898719789.
[9] William M. Mckeeman, “Differential Testing for Software,”
Digital Technical Journal 10. No. 1 (1998).