This document provides an introduction to deep learning. It defines artificial intelligence, machine learning, data science, and deep learning. Machine learning is a subfield of AI that gives machines the ability to improve performance over time without explicit human intervention. Deep learning is a subfield of machine learning that builds artificial neural networks using multiple hidden layers, like the human brain. Popular deep learning techniques include convolutional neural networks, recurrent neural networks, and autoencoders. The document discusses key components and hyperparameters of deep learning models.
A short presentation for beginners on Introduction of Machine Learning, What it is, how it works, what all are the popular Machine Learning techniques and learning models (supervised, unsupervised, semi-supervised, reinforcement learning) and how they works with various Industry use-cases and popular examples.
Stemming And Lemmatization Tutorial | Natural Language Processing (NLP) With ...Edureka!
( **Natural Language Processing Using Python: - https://www.edureka.co/python-natural... ** )
This PPT will provide you with detailed and comprehensive knowledge of the two important aspects of Natural Language Processing ie. Stemming and Lemmatization. It will also provide you with the differences between the two with Demo on each. Following are the topics covered in this PPT:
Introduction to Big Data
What is Text Mining?
What is NLP?
Introduction to Stemming
Introduction to Lemmatization
Applications of Stemming & Lemmatization
Difference between stemming & Lemmatization
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Cross-validation is a technique used to evaluate machine learning models by reserving a portion of a dataset to test the model trained on the remaining data. There are several common cross-validation methods, including the test set method (reserving 30% of data for testing), leave-one-out cross-validation (training on all data points except one, then testing on the left out point), and k-fold cross-validation (randomly splitting data into k groups, with k-1 used for training and the remaining group for testing). The document provides an example comparing linear regression, quadratic regression, and point-to-point connection on a concrete strength dataset using k-fold cross-validation. SPSS output for the
This document provides an overview of the Python programming language. It discusses Python's history and evolution, its key features like being object-oriented, open source, portable, having dynamic typing and built-in types/tools. It also covers Python's use for numeric processing with libraries like NumPy and SciPy. The document explains how to use Python interactively from the command line and as scripts. It describes Python's basic data types like integers, floats, strings, lists, tuples and dictionaries as well as common operations on these types.
Presentation in Vietnam Japan AI Community in 2019-05-26.
The presentation summarizes what I've learned about Regularization in Deep Learning.
Disclaimer: The presentation is given in a community event, so it wasn't thoroughly reviewed or revised.
This document provides an introduction to machine learning. It discusses how machine learning allows computers to learn from experience to improve their performance on tasks. Supervised learning is described, where the goal is to learn a function that maps inputs to outputs from a labeled dataset. Cross-validation techniques like the test set method, leave-one-out cross-validation, and k-fold cross-validation are introduced to evaluate model performance without overfitting. Applications of machine learning like medical diagnosis, recommendation systems, and autonomous driving are briefly outlined.
Machine learning models involve a bias-variance tradeoff, where increased model complexity can lead to overfitting training data (high variance) or underfitting (high bias). Bias measures how far model predictions are from the correct values on average, while variance captures differences between predictions on different training data. The ideal model has low bias and low variance, accurately fitting training data while generalizing to new examples.
This document provides an overview of key concepts in software and software engineering from Pressman's Software Engineering: A Practitioner's Approach textbook. It discusses the dual role of software as both a product and vehicle, common questions about software development that have not changed, differences between software and hardware, the changing nature of software types, challenges with legacy software, and common software myths among management, customers, and practitioners.
Activation functions and Training Algorithms for Deep Neural networkGayatri Khanvilkar
Training of Deep neural network is difficult task. Deep neural network train with the help of training algorithms and activation function This is an overview of Activation Function and Training Algorithms used for Deep Neural Network. It underlines a brief comparative study of activation function and training algorithms.
The Unified Process (UP) is a popular iterative software development framework that uses use cases, architecture-centric design, and the Unified Modeling Language. It originated from Jacobson's Objectory process in the 1980s and was further developed by Rational Software into the Rational Unified Process. The UP consists of four phases - inception, elaboration, construction, and transition - and emphasizes iterative development, architectural drivers, and risk-managed delivery.
SDLC is the acronym of Software Development Life Cycle. It is also called as Software development process. The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process.
This document discusses algorithms and their analysis. It defines an algorithm as a step-by-step procedure to solve a problem or calculate a quantity. Algorithm analysis involves evaluating memory usage and time complexity. Asymptotics, such as Big-O notation, are used to formalize the growth rates of algorithms. Common sorting algorithms like insertion sort and quicksort are analyzed using recurrence relations to determine their time complexities as O(n^2) and O(nlogn), respectively.
The document describes an online railway reservation system project submitted by students. It discusses software engineering principles and methods used to develop the system. It includes UML diagrams like use case, class, sequence, and activity diagrams that were created as part of the analysis and design of the system. It also describes testing done on the project in the form of alpha testing.
Artificial neural networks mimic the human brain by using interconnected layers of neurons that fire electrical signals between each other. Activation functions are important for neural networks to learn complex patterns by introducing non-linearity. Without activation functions, neural networks would be limited to linear regression. Common activation functions include sigmoid, tanh, ReLU, and LeakyReLU, with ReLU and LeakyReLU helping to address issues like vanishing gradients that can occur with sigmoid and tanh functions.
Testing is the process of identifying bugs and ensuring software meets requirements. It involves executing programs under different conditions to check specification, functionality, and performance. The objectives of testing are to uncover errors, demonstrate requirements are met, and validate quality with minimal cost. Testing follows a life cycle including planning, design, execution, and reporting. Different methodologies like black box and white box testing are used at various levels from unit to system. The overall goal is to perform effective testing to deliver high quality software.
The document discusses modelling and evaluation in machine learning. It defines what models are and how they are selected and trained for predictive and descriptive tasks. Specifically, it covers:
1) Models represent raw data in meaningful patterns and are selected based on the problem and data type, like regression for continuous numeric prediction.
2) Models are trained by assigning parameters to optimize an objective function and evaluate quality. Cross-validation is used to evaluate models.
3) Predictive models predict target values like classification to categorize data or regression for continuous targets. Descriptive models find patterns without targets for tasks like clustering.
4) Model performance can be affected by underfitting if too simple or overfitting if too complex,
Decision tree is a type of supervised learning algorithm (having a pre-defined target variable) that is mostly used in classification problems. It is a tree in which each branch node represents a choice between a number of alternatives, and each leaf node represents a decision.
The document discusses artificial intelligence and pattern recognition. It introduces various pattern recognition concepts including defining a pattern, examples of patterns in different domains, and approaches to pattern recognition. It also provides an example of using discriminative methods to classify fish into salmon and sea bass using optical sensing and extracted features.
Machine Learning based Hybrid Recommendation System
• Developed a Hybrid Movie Recommendation System using both Collaborative and Content-based methods
• Used linear regression framework for determining optimal feature weights from collaborative data
• Recommends movie with maximum similarity score of content-based data
Recurrent Neural Networks have shown to be very powerful models as they can propagate context over several time steps. Due to this they can be applied effectively for addressing several problems in Natural Language Processing, such as Language Modelling, Tagging problems, Speech Recognition etc. In this presentation we introduce the basic RNN model and discuss the vanishing gradient problem. We describe LSTM (Long Short Term Memory) and Gated Recurrent Units (GRU). We also discuss Bidirectional RNN with an example. RNN architectures can be considered as deep learning systems where the number of time steps can be considered as the depth of the network. It is also possible to build the RNN with multiple hidden layers, each having recurrent connections from the previous time steps that represent the abstraction both in time and space.
Here are the key calculations:
1) Probability that persons p and q will be at the same hotel on a given day d is 1/100 × 1/100 × 10-5 = 10-9, since there are 100 hotels and each person stays in a hotel with probability 10-5 on any given day.
2) Probability that p and q will be at the same hotel on given days d1 and d2 is (10-9) × (10-9) = 10-18, since the events are independent.
The document provides an overview of various machine learning algorithms and methods. It begins with an introduction to predictive modeling and supervised vs. unsupervised learning. It then describes several supervised learning algorithms in detail including linear regression, K-nearest neighbors (KNN), decision trees, random forest, logistic regression, support vector machines (SVM), and naive Bayes. It also briefly discusses unsupervised learning techniques like clustering and dimensionality reduction methods.
This document presents a new approach called mixed S-D slicing that combines static and dynamic program slicing using object-oriented concepts in C++. Static slicing analyzes the entire program code but produces larger slices, while dynamic slicing produces smaller slices based on a specific execution but is more difficult to compute. The mixed S-D slicing aims to generate dynamic slices faster by leveraging object-oriented features like classes. An example C++ program is provided to demonstrate the S-D slicing approach using concepts like classes, inheritance, and polymorphism. The approach is intended to reduce complexity and aid in debugging object-oriented programs by combining static and dynamic slicing techniques.
The document outlines an exercise to simulate a Scrum project using timeboxed events like sprints, daily standups, and retrospectives. It describes dividing participants into a team to go through pre-game planning, then three short sprints with daily standups and sprint reviews and retrospectives, before a post-game debrief. Questions are provided to gather feedback on how it felt to use Scrum, how the short iterations went, how accurate estimations were, and how communication and reworking items went.
Machine learning models involve a bias-variance tradeoff, where increased model complexity can lead to overfitting training data (high variance) or underfitting (high bias). Bias measures how far model predictions are from the correct values on average, while variance captures differences between predictions on different training data. The ideal model has low bias and low variance, accurately fitting training data while generalizing to new examples.
This document provides an overview of key concepts in software and software engineering from Pressman's Software Engineering: A Practitioner's Approach textbook. It discusses the dual role of software as both a product and vehicle, common questions about software development that have not changed, differences between software and hardware, the changing nature of software types, challenges with legacy software, and common software myths among management, customers, and practitioners.
Activation functions and Training Algorithms for Deep Neural networkGayatri Khanvilkar
Training of Deep neural network is difficult task. Deep neural network train with the help of training algorithms and activation function This is an overview of Activation Function and Training Algorithms used for Deep Neural Network. It underlines a brief comparative study of activation function and training algorithms.
The Unified Process (UP) is a popular iterative software development framework that uses use cases, architecture-centric design, and the Unified Modeling Language. It originated from Jacobson's Objectory process in the 1980s and was further developed by Rational Software into the Rational Unified Process. The UP consists of four phases - inception, elaboration, construction, and transition - and emphasizes iterative development, architectural drivers, and risk-managed delivery.
SDLC is the acronym of Software Development Life Cycle. It is also called as Software development process. The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process.
This document discusses algorithms and their analysis. It defines an algorithm as a step-by-step procedure to solve a problem or calculate a quantity. Algorithm analysis involves evaluating memory usage and time complexity. Asymptotics, such as Big-O notation, are used to formalize the growth rates of algorithms. Common sorting algorithms like insertion sort and quicksort are analyzed using recurrence relations to determine their time complexities as O(n^2) and O(nlogn), respectively.
The document describes an online railway reservation system project submitted by students. It discusses software engineering principles and methods used to develop the system. It includes UML diagrams like use case, class, sequence, and activity diagrams that were created as part of the analysis and design of the system. It also describes testing done on the project in the form of alpha testing.
Artificial neural networks mimic the human brain by using interconnected layers of neurons that fire electrical signals between each other. Activation functions are important for neural networks to learn complex patterns by introducing non-linearity. Without activation functions, neural networks would be limited to linear regression. Common activation functions include sigmoid, tanh, ReLU, and LeakyReLU, with ReLU and LeakyReLU helping to address issues like vanishing gradients that can occur with sigmoid and tanh functions.
Testing is the process of identifying bugs and ensuring software meets requirements. It involves executing programs under different conditions to check specification, functionality, and performance. The objectives of testing are to uncover errors, demonstrate requirements are met, and validate quality with minimal cost. Testing follows a life cycle including planning, design, execution, and reporting. Different methodologies like black box and white box testing are used at various levels from unit to system. The overall goal is to perform effective testing to deliver high quality software.
The document discusses modelling and evaluation in machine learning. It defines what models are and how they are selected and trained for predictive and descriptive tasks. Specifically, it covers:
1) Models represent raw data in meaningful patterns and are selected based on the problem and data type, like regression for continuous numeric prediction.
2) Models are trained by assigning parameters to optimize an objective function and evaluate quality. Cross-validation is used to evaluate models.
3) Predictive models predict target values like classification to categorize data or regression for continuous targets. Descriptive models find patterns without targets for tasks like clustering.
4) Model performance can be affected by underfitting if too simple or overfitting if too complex,
Decision tree is a type of supervised learning algorithm (having a pre-defined target variable) that is mostly used in classification problems. It is a tree in which each branch node represents a choice between a number of alternatives, and each leaf node represents a decision.
The document discusses artificial intelligence and pattern recognition. It introduces various pattern recognition concepts including defining a pattern, examples of patterns in different domains, and approaches to pattern recognition. It also provides an example of using discriminative methods to classify fish into salmon and sea bass using optical sensing and extracted features.
Machine Learning based Hybrid Recommendation System
• Developed a Hybrid Movie Recommendation System using both Collaborative and Content-based methods
• Used linear regression framework for determining optimal feature weights from collaborative data
• Recommends movie with maximum similarity score of content-based data
Recurrent Neural Networks have shown to be very powerful models as they can propagate context over several time steps. Due to this they can be applied effectively for addressing several problems in Natural Language Processing, such as Language Modelling, Tagging problems, Speech Recognition etc. In this presentation we introduce the basic RNN model and discuss the vanishing gradient problem. We describe LSTM (Long Short Term Memory) and Gated Recurrent Units (GRU). We also discuss Bidirectional RNN with an example. RNN architectures can be considered as deep learning systems where the number of time steps can be considered as the depth of the network. It is also possible to build the RNN with multiple hidden layers, each having recurrent connections from the previous time steps that represent the abstraction both in time and space.
Here are the key calculations:
1) Probability that persons p and q will be at the same hotel on a given day d is 1/100 × 1/100 × 10-5 = 10-9, since there are 100 hotels and each person stays in a hotel with probability 10-5 on any given day.
2) Probability that p and q will be at the same hotel on given days d1 and d2 is (10-9) × (10-9) = 10-18, since the events are independent.
The document provides an overview of various machine learning algorithms and methods. It begins with an introduction to predictive modeling and supervised vs. unsupervised learning. It then describes several supervised learning algorithms in detail including linear regression, K-nearest neighbors (KNN), decision trees, random forest, logistic regression, support vector machines (SVM), and naive Bayes. It also briefly discusses unsupervised learning techniques like clustering and dimensionality reduction methods.
This document presents a new approach called mixed S-D slicing that combines static and dynamic program slicing using object-oriented concepts in C++. Static slicing analyzes the entire program code but produces larger slices, while dynamic slicing produces smaller slices based on a specific execution but is more difficult to compute. The mixed S-D slicing aims to generate dynamic slices faster by leveraging object-oriented features like classes. An example C++ program is provided to demonstrate the S-D slicing approach using concepts like classes, inheritance, and polymorphism. The approach is intended to reduce complexity and aid in debugging object-oriented programs by combining static and dynamic slicing techniques.
The document outlines an exercise to simulate a Scrum project using timeboxed events like sprints, daily standups, and retrospectives. It describes dividing participants into a team to go through pre-game planning, then three short sprints with daily standups and sprint reviews and retrospectives, before a post-game debrief. Questions are provided to gather feedback on how it felt to use Scrum, how the short iterations went, how accurate estimations were, and how communication and reworking items went.
This is an updated version of the opening talk I gave on February 4, 2013 at the Dagstuhl Seminar on Fault Prediction, Localization, and Repair (http://goo.gl/vc6Cl).
Abstract: Software debugging, which involves localizing, understanding, and removing the cause of a failure, is a notoriously difficult, extremely time consuming, and human-intensive activity. For this reason, researchers have invested a great deal of effort in developing automated techniques and tools for supporting various debugging tasks. Although potentially useful, most of these techniques have yet to fully demonstrate their practical effectiveness. Moreover, many current debugging approaches suffer from some common limitations and rely on several strong assumptions on both the characteristics of the code being debugged and how developers behave when debugging such code. This talk provides an overview of the state of the art in the broader area of software debugging, discuss strengths and weaknesses of the main existing debugging techniques, present a set of open challenges in this area, and sketch future research directions that may help address these challenges.
The second part of the talk discusses joint work with Chris Parnin presented at ISSTA 2011: C. Parnin and A. Orso, "Are Automated Debugging Techniques Actually Helping Programmers?", in Proceedings of the International Symposium on Software Testing and Analysis (ISSTA 2011), pp 199-209, http://doi.acm.org/10.1145/2001420.2001445
The document describes the HercuLeS HLS environment, a new high-level synthesis tool marketed by Ajax Compilers. It provides the following key details:
- HercuLeS is an extensible, high-level synthesis environment that allows whole-program hardware compilation from C code through pluggable analyses and optimizations.
- It features an automatic flow from an algorithmic C description to customized digital hardware using an intermediate representation called N-Address Code and construction of control/data flow graphs.
- The generated VHDL code and self-checking testbenches aim to be human-readable, vendor- and technology-independent.
The document discusses program dependence graphs (PDGs) and system dependence graphs (SDGs). A PDG represents a single program as a graph of nodes for statements connected by edges showing data and control dependencies. An SDG extends a PDG to represent relationships between procedures/processes in a program by adding nodes for calls, arguments, and results and edges connecting them. SDGs allow modeling interdependencies across multiple processes in a program.
The document presents a general framework for slicing programs and models. It defines a slicing framework with syntax, semantics, projections, and slicing criteria. It applies the framework to program slicing examples and proposes adapting it for model slicing. The framework is then demonstrated on a class model case study, showing how slicing can reduce models for comprehension and debugging.
The document lists various agricultural degree programs offered at the University of Nairobi including Veterinary Medicine, Food Science and Technology, Food Nutrition and Dietetics, Horticulture, Agribusiness Management, Agricultural Education and Extension, and Wildlife Management. It promotes these programs by stating that graduates can become entrepreneurs, create jobs, kick out malnutrition in Kenya, and still be cool while working in agriculture. It also mentions that learned agriculturalists can add value to products before market, produce high quality seeds and products for international markets, and earn more money than those without the knowledge.
The heterogeneous and dynamic nature of components making up a Web Application, the lack of effective programming mechanisms for implementing basic software engineering principles in it, and undisciplined development processes induced by the high pressure of a very short time-to-market, make Web Application maintenance a challenging problem. A relevant issue consists of reusing the methodological and technological experience in the sector of traditional software maintenance, and exploring the opportunity of using Reverse Engineering to support effective Web Application maintenance.
The Ph.D. Thesis presents an approach for Reverse Engineering Web Applications. The approach include the definition of Reverse Engineering methods and supporting software tools, that help to understand existing undocumented Web Applications to be maintained or evolved, through the reconstruction of UML diagrams. Some validation experiments have been carried out and they showed the usefulness of the proposed approach and highlighted possible areas for improvement of its effectiveness.
- The document summarizes techniques for slicing object-oriented programs. It discusses static and dynamic slicing, and limitations of previous approaches.
- It proposes a new intermediate representation called the Object-Oriented System Dependence Graph (OSDG) to more precisely capture dependencies in object-oriented programs. The OSDG explicitly represents data members of objects.
- An edge-marking algorithm is presented for efficiently performing dynamic slicing of object-oriented programs using the OSDG. This avoids recomputing the entire slice after each statement.
The document provides an introduction to computer programming. It discusses what a computer is and its basic parts including hardware and software. It describes the internal and external hardware components. It also explains different types of programming languages from low-level to high-level languages. The document then discusses programming paradigms like procedural, structured, and object-oriented programming. It introduces concepts like algorithms, flowcharts, and the system development life cycle which involves phases from feasibility study to implementation and maintenance.
Graal is a dynamic meta-circular research compiler for Java that is designed for extensibility and modularity. One of its main distinguishing elements is the handling of optimistic assumptions obtained via profiling feedback and the representation of deoptimization guards in the compiled code. Truffle is a self-optimizing runtime system on top of Graal that uses partial evaluation to derive compiled code from interpreters. Truffle is suitable for creating high-performance implementations for dynamic languages with only moderate effort. The presentation includes a description of the Truffle multi-language API and performance comparisons within the industry of current prototype Truffle language implementations (JavaScript, Ruby, and R). Both Graal and Truffle are open source and form themselves research platforms in the area of virtual machine and programming language implementation (http://openjdk.java.net/projects/graal/).
The document provides documentation for an online examination system. It discusses the need for the system to automate the exam process for educational institutions and reduce paperwork. It outlines the functional requirements including features for administrators to create exams and monitor results and features for students to register and take exams. Diagrams are provided that illustrate the entity relationship model and data flow between system components at different levels of abstraction.
The document describes an online examination system project created by 4th year computer science students. The proposed system aims to automate the exam process for a college and reduce costs and issues with the current manual system. It would allow instructors to create and upload exam questions online, and students to take timed exams via computer and immediately receive results. The system is intended to save time and resources compared to printing, distributing and grading physical exam papers. It also aims to increase security and reduce cheating opportunities during exams.
Unit 3 Control Flow Testing contains Concept of CFT, Generate Test Input Data, Activities of Generating Test Input Data, Control Flow Graph, Path Selection Criteria, Techniques for Path Selection statement wise, branch wise, predicate wise etc. and Generating Test Input.
Control flow testing is a white box testing technique that uses the program's control flow graph to design test cases that execute different paths through the code. It involves creating a control flow graph from the source code, defining a coverage target like branches or paths, generating test cases to cover the target, and executing the test cases to analyze results. It is useful for finding bugs in program logic but does not test for missing or extra requirements.
The document describes the design and implementation of an online examination system using PHP and MySQL. It includes sections on requirements analysis, database design, implementation, and problems encountered. The system has three modules - one for administrators, one for students, and one for a super administrator. Entity relationship diagrams and data flow diagrams are provided to illustrate the database and system design. The goal is to allow students to take exams online and obtain results immediately in a more efficient manner than traditional paper-based exams.
The document discusses intermediate code generation in compilers. It describes how compilers generate intermediate code representations after parsing source code. Intermediate representations allow separating the front-end and back-end of compilers, facilitating code optimization and retargeting compilers to different architectures. Common intermediate representations discussed include abstract syntax trees, postfix notation, static single assignment form, and three-address instructions. The document also provides examples of generating three-address code using syntax-directed translation.
The document describes a mini project report for an Online Examination System submitted by Vikram Singh Slathia and Rajesh Sahu under the supervision of Mehul Mahrishi. It includes a candidate declaration signed by the students, a certificate signed by the supervisor, and acknowledgements. The abstract provides a brief overview of the Online Examination System as a web-based application for technical evaluation that replaces paperwork and reduces faculty workload.
Water Quality Index Calculation of River Ganga using Decision Tree AlgorithmIRJET Journal
This document discusses using machine learning algorithms to calculate the water quality index of the Ganga River in India. Specifically, it aims to analyze water quality data collected from various cities along the Ganga Riverbed in different seasons (summer, monsoon, winter) and assess whether the river water is potable or not. The researchers designed a machine learning model using the decision tree algorithm that calculates the water quality index based on 9 physicochemical parameters. It will be implemented as a Python-based web application using the Flask framework. The model is trained on collected datasets to predict water quality and determine if it is safe for drinking.
This document provides an overview of several software estimation techniques: lines of code estimation, function point estimation, three point estimation, work breakdown structure based estimation, use case based estimation, and estimation in agile projects. It discusses the basics of each technique, including counting lines of code, function points types, the three point estimation formula, how to create a work breakdown structure, and use case point estimation. Examples are provided to illustrate various techniques.
Static analysis works for mission-critical systems, why not yours? Rogue Wave Software
Take a deep dive into the world of static code analysis (SCA) by immersing yourself into different analysis techniques, examples of the problems they find, and learning how SCA fits into various types of environments, from the developer desktop to the QA team. The goal is to provide a solid foundation for you to make the best decision for testing technology and process selection, including: Types of defects found by SCA;
Typical myths and barriers to adoption; and How SCA aligns to different testing maturity levels.
Real Estate Investment Advising Using Machine LearningIRJET Journal
This document presents a comparative study of machine learning algorithms for real estate investment advising using property price prediction. It analyzes Linear Regression using gradient descent, K-Nearest Neighbors regression, and Random Forest regression on quarterly Mumbai real estate data from 2005-2016. Features like area, rooms, distance to landmarks, amenities are used to predict prices. Random Forest regression achieved the lowest errors in predicting testing data, making it the most feasible algorithm according to the study. The authors conclude it is a promising approach for real estate trend forecasting and developing an investment advising tool.
IRJET - Automated Fraud Detection Framework in Examination HallsIRJET Journal
This document proposes an automated fraud detection framework to detect impersonation of candidates and possession of electronic gadgets in examination halls. It uses image processing techniques like face detection and recognition along with machine learning algorithms like Random Forest and Histogram of Oriented Gradients (HoG) for detection, classification and training. The framework is trained on datasets of images collected and labeled for anomalies. It detects impersonation and presence of gadgets during examinations by processing images using HoG and recognizing faces using a pre-trained Random Forest model for high accuracy classification.
IRJET- Deep Learning Model to Predict Hardware PerformanceIRJET Journal
This document discusses using deep learning models to predict hardware performance. Specifically, it aims to predict benchmark scores from hardware configurations, or predict configurations from scores. It explores various machine learning algorithms like linear regression, logistic regression, and multi-linear regression on hardware performance data. The best results were from backward elimination and linear regression, achieving over 80% accuracy. Data preprocessing like encoding was important. The model can help analyze hardware performance more quickly than manual methods.
IRJET- Analysis of PV Fed Vector Controlled Induction Motor DriveIRJET Journal
The document describes a project to develop a deep learning model to predict hardware performance. The model takes hardware configuration parameters like CPU, memory, etc. as input and predicts benchmark scores. The authors preprocessed data, tested various regression models like linear regression and lasso regression, and techniques like backward elimination and cross-validation. Their best model used backward elimination and linear regression, achieving 80.82% accuracy. The project aims to automate hardware performance analysis and prediction to save time compared to manual methods.
Static Slicing Technique with Algorithmic ApproachIOSR Journals
This document discusses static slicing techniques for programs. It begins with an introduction to program slicing and the differences between static and dynamic slicing. It then presents an example program and shows how to perform static slicing on it to remove different variables. An algorithm for static slicing is presented that works by removing variables from the program text. The document concludes by discussing applications of static slicing and directions for future work, such as integrating forward and backward slicing algorithms.
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...ijsrd.com
This document describes research using an artificial neural network (ANN) and graphical user interface (GUI) to estimate fabrication time for rig construction projects. The ANN was trained on data from 960 completed fabrication jobs. It used 3 input parameters (height, plate thickness, inspection criteria) to predict fabrication time in days. Eleven different ANN architectures were tested, with a 3-50-1 network achieving the best results. A GUI was developed to allow users to simulate the best ANN model without ANN expertise and obtain fabrication time estimates. The research demonstrated the potential of ANNs for construction time forecasting when extensive historical data is available.
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...ijsrd.com
This document describes the development of an artificial neural network (ANN) and graphical user interface (GUI) to estimate fabrication time in rig construction projects. The ANN was trained on data from 960 completed fabrication jobs. It uses height, plate thickness, and inspection criteria as inputs to predict fabrication time in days as the output. Eleven different ANN architectures were tested and the model with 3 input nodes, 50 hidden nodes, and 1 output node performed best with a mean squared error of 1.35337e-2. A GUI was created allowing users to input job parameters and receive a fabrication time prediction without ANN expertise. The developed ANN and GUI provide a data-driven method for fabrication time estimation in rig construction project
A Firefly based improved clustering algorithmIRJET Journal
This document presents a new clustering algorithm that combines k-means clustering with the firefly optimization algorithm to improve clustering performance.
The proposed algorithm first cleans the data by removing missing values and identical columns. It then uses an enhanced firefly algorithm to select optimal cluster centroids. Finally, k-means clustering is applied to assign data points to the nearest centroids.
The algorithm is tested on various sized datasets and shows improved accuracy of 78-89% and lower error rates compared to the traditional firefly algorithm alone. This demonstrates the proposed approach can perform clustering more efficiently and accurately.
[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...Jihoo Kim
This document summarizes a research paper on personalized top-N sequential recommendation using convolutional sequence embedding. The paper proposes a model called Caser that uses horizontal and vertical convolutional filters to capture sequential patterns at different levels from user behavior data. Caser outperforms previous methods by modeling both general user preferences and sequential patterns in a unified framework. The document provides details on Caser's network architecture, training approach, and evaluation on real-world datasets showing it achieves better performance than baseline methods.
From sensor readings to prediction: on the process of developing practical so...Manuel Martín
Automatic data acquisition systems provide large amounts of streaming data generated by physical sensors. This data forms an input to computational models (soft sensors) routinely used for monitoring and control of industrial processes, traffic patterns, environment and natural hazards, and many more. The majority of these models assume that the data comes in a cleaned and pre-processed form, ready to be fed directly into a predictive model. In practice, to ensure appropriate data quality, most of the modelling efforts concentrate on preparing data from raw sensor readings to be used as model inputs. This study analyzes the process of data preparation for predictive models with streaming sensor data. We present the challenges of data preparation as a four-step process, identify the key challenges in each step, and provide recommendations for handling these issues. The discussion is focused on the approaches that are less commonly used, while, based on our experience, may contribute particularly well to solving practical soft sensor tasks. Our arguments are illustrated with a case study in the chemical production industry.
This document summarizes a research project that aims to develop an application to predict airline ticket prices using machine learning techniques. The researchers collected over 10,000 records of flight data including features like source, destination, date, time, number of stops, and price. They preprocessed the data, selected important features, and applied machine learning algorithms like linear regression, decision trees, and random forests to build predictive models. The random forest model provided the most accurate predictions according to performance metrics like MAE, MSE, and RMSE. The researchers propose deploying the best model in a web application using Flask for the backend and Bootstrap for the frontend so users can input flight details and receive predicted price outputs.
Financial time series forecasting has received
tremendous interest by both the individual and institutional
investors and hence by the researchers. But the high noise and
complexity residing in the financial data makes this job extremely
challenging. Over the years many researchers have used support
vector regression (SVR) quite successfully to conquer this
challenge. As the latent high noise in the data impairs the
performance, reducing the noise could be effective while
constructing the forecasting model. To accomplish this task,
integration of principal component analysis (PCA) and SVR is
proposed in this research work. In the first step, a set of technical
indicators are calculated from the daily transaction data of the
target stock and then PCA is applied to these values aiming to
extract the principle components. After filtering the principal
components, a model is finally constructed to forecast the future
price of the target stocks. The performance of the proposed
approach is evaluated with 16 years’ daily transactional data of
three leading stocks from different sectors listed in Dhaka Stock
Exchange (DSE), Bangladesh. Empirical results show that the
proposed model enhances the performance of the prediction
model and also the short-term prediction gains more accuracy
than long-term prediction.
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...IRJET Journal
This document provides an unabridged review of supervised machine learning regression and classification techniques. It begins with an introduction to machine learning and artificial intelligence. It then describes regression and classification techniques for supervised learning problems, including linear regression, logistic regression, k-nearest neighbors, naive bayes, decision trees, support vector machines, and random forests. Practical examples are provided using Python code for applying these techniques to housing price prediction and iris species classification problems. The document concludes that the primary goal was to provide an extensive review of supervised machine learning methods.
This document summarizes a study that analyzed programming behaviors and problem solving paths of students in an introductory Java programming course. The study tracked programming snapshots over time to identify common patterns and concepts used. At a global level, it found that students progressed incrementally on easy exercises but struggled more on harder ones. At an individual level, it classified patterns like "builder", "massager", and "reducer" based on conceptual changes between snapshots. The most common patterns were forms of incremental building. Future work could look at generalizing the patterns to other datasets and relating behaviors to individual traits.
Machine Learning, K-means Algorithm Implementation with RIRJET Journal
This document discusses the implementation of the K-means clustering algorithm using R programming. It begins with an introduction to machine learning and the different types of machine learning algorithms. It then focuses on the K-means algorithm, describing the steps of the algorithm and how it is used for cluster analysis in unsupervised learning. The document then demonstrates implementing K-means clustering in R by generating sample data, initializing random centroids, calculating distances between data points and centroids, assigning data points to clusters based on closest centroid, recalculating centroids, and plotting the results. It concludes that K-means clustering is useful for gaining insights into dataset structure and was successfully implemented in R.
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe Illustrator is a powerful, professional-grade vector graphics software used for creating a wide range of designs, including logos, icons, illustrations, and more. Unlike raster graphics (like photos), which are made of pixels, vector graphics in Illustrator are defined by mathematical equations, allowing them to be scaled up or down infinitely without losing quality.
Here's a more detailed explanation:
Key Features and Capabilities:
Vector-Based Design:
Illustrator's foundation is its use of vector graphics, meaning designs are created using paths, lines, shapes, and curves defined mathematically.
Scalability:
This vector-based approach allows for designs to be resized without any loss of resolution or quality, making it suitable for various print and digital applications.
Design Creation:
Illustrator is used for a wide variety of design purposes, including:
Logos and Brand Identity: Creating logos, icons, and other brand assets.
Illustrations: Designing detailed illustrations for books, magazines, web pages, and more.
Marketing Materials: Creating posters, flyers, banners, and other marketing visuals.
Web Design: Designing web graphics, including icons, buttons, and layouts.
Text Handling:
Illustrator offers sophisticated typography tools for manipulating and designing text within your graphics.
Brushes and Effects:
It provides a range of brushes and effects for adding artistic touches and visual styles to your designs.
Integration with Other Adobe Software:
Illustrator integrates seamlessly with other Adobe Creative Cloud apps like Photoshop, InDesign, and Dreamweaver, facilitating a smooth workflow.
Why Use Illustrator?
Professional-Grade Features:
Illustrator offers a comprehensive set of tools and features for professional design work.
Versatility:
It can be used for a wide range of design tasks and applications, making it a versatile tool for designers.
Industry Standard:
Illustrator is a widely used and recognized software in the graphic design industry.
Creative Freedom:
It empowers designers to create detailed, high-quality graphics with a high degree of control and precision.
Adobe Lightroom Classic Crack FREE Latest link 2025kashifyounis067
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe Lightroom Classic is a desktop-based software application for editing and managing digital photos. It focuses on providing users with a powerful and comprehensive set of tools for organizing, editing, and processing their images on their computer. Unlike the newer Lightroom, which is cloud-based, Lightroom Classic stores photos locally on your computer and offers a more traditional workflow for professional photographers.
Here's a more detailed breakdown:
Key Features and Functions:
Organization:
Lightroom Classic provides robust tools for organizing your photos, including creating collections, using keywords, flags, and color labels.
Editing:
It offers a wide range of editing tools for making adjustments to color, tone, and more.
Processing:
Lightroom Classic can process RAW files, allowing for significant adjustments and fine-tuning of images.
Desktop-Focused:
The application is designed to be used on a computer, with the original photos stored locally on the hard drive.
Non-Destructive Editing:
Edits are applied to the original photos in a non-destructive way, meaning the original files remain untouched.
Key Differences from Lightroom (Cloud-Based):
Storage Location:
Lightroom Classic stores photos locally on your computer, while Lightroom stores them in the cloud.
Workflow:
Lightroom Classic is designed for a desktop workflow, while Lightroom is designed for a cloud-based workflow.
Connectivity:
Lightroom Classic can be used offline, while Lightroom requires an internet connection to sync and access photos.
Organization:
Lightroom Classic offers more advanced organization features like Collections and Keywords.
Who is it for?
Professional Photographers:
PCMag notes that Lightroom Classic is a popular choice among professional photographers who need the flexibility and control of a desktop-based application.
Users with Large Collections:
Those with extensive photo collections may prefer Lightroom Classic's local storage and robust organization features.
Users who prefer a traditional workflow:
Users who prefer a more traditional desktop workflow, with their original photos stored on their computer, will find Lightroom Classic a good fit.
How can one start with crypto wallet development.pptxlaravinson24
This presentation is a beginner-friendly guide to developing a crypto wallet from scratch. It covers essential concepts such as wallet types, blockchain integration, key management, and security best practices. Ideal for developers and tech enthusiasts looking to enter the world of Web3 and decentralized finance.
Join Ajay Sarpal and Miray Vu to learn about key Marketo Engage enhancements. Discover improved in-app Salesforce CRM connector statistics for easy monitoring of sync health and throughput. Explore new Salesforce CRM Synch Dashboards providing up-to-date insights into weekly activity usage, thresholds, and limits with drill-down capabilities. Learn about proactive notifications for both Salesforce CRM sync and product usage overages. Get an update on improved Salesforce CRM synch scale and reliability coming in Q2 2025.
Key Takeaways:
Improved Salesforce CRM User Experience: Learn how self-service visibility enhances satisfaction.
Utilize Salesforce CRM Synch Dashboards: Explore real-time weekly activity data.
Monitor Performance Against Limits: See threshold limits for each product level.
Get Usage Over-Limit Alerts: Receive notifications for exceeding thresholds.
Learn About Improved Salesforce CRM Scale: Understand upcoming cloud-based incremental sync.
Not So Common Memory Leaks in Java WebinarTier1 app
This SlideShare presentation is from our May webinar, “Not So Common Memory Leaks & How to Fix Them?”, where we explored lesser-known memory leak patterns in Java applications. Unlike typical leaks, subtle issues such as thread local misuse, inner class references, uncached collections, and misbehaving frameworks often go undetected and gradually degrade performance. This deck provides in-depth insights into identifying these hidden leaks using advanced heap analysis and profiling techniques, along with real-world case studies and practical solutions. Ideal for developers and performance engineers aiming to deepen their understanding of Java memory management and improve application stability.
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AIdanshalev
If we were building a GenAI stack today, we'd start with one question: Can your retrieval system handle multi-hop logic?
Trick question, b/c most can’t. They treat retrieval as nearest-neighbor search.
Today, we discussed scaling #GraphRAG at AWS DevOps Day, and the takeaway is clear: VectorRAG is naive, lacks domain awareness, and can’t handle full dataset retrieval.
GraphRAG builds a knowledge graph from source documents, allowing for a deeper understanding of the data + higher accuracy.
WinRAR Crack for Windows (100% Working 2025)sh607827
copy and past on google ➤ ➤➤ https://hdlicense.org/ddl/
WinRAR Crack Free Download is a powerful archive manager that provides full support for RAR and ZIP archives and decompresses CAB, ARJ, LZH, TAR, GZ, ACE, UUE, .
Who Watches the Watchmen (SciFiDevCon 2025)Allon Mureinik
Tests, especially unit tests, are the developers’ superheroes. They allow us to mess around with our code and keep us safe.
We often trust them with the safety of our codebase, but how do we know that we should? How do we know that this trust is well-deserved?
Enter mutation testing – by intentionally injecting harmful mutations into our code and seeing if they are caught by the tests, we can evaluate the quality of the safety net they provide. By watching the watchmen, we can make sure our tests really protect us, and we aren’t just green-washing our IDEs to a false sense of security.
Talk from SciFiDevCon 2025
https://www.scifidevcon.com/courses/2025-scifidevcon/contents/680efa43ae4f5
Download Wondershare Filmora Crack [2025] With Latesttahirabibi60507
Copy & Past Link 👉👉
http://drfiles.net/
Wondershare Filmora is a video editing software and app designed for both beginners and experienced users. It's known for its user-friendly interface, drag-and-drop functionality, and a wide range of tools and features for creating and editing videos. Filmora is available on Windows, macOS, iOS (iPhone/iPad), and Android platforms.
Douwan Crack 2025 new verson+ License codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
Douwan Preactivated Crack Douwan Crack Free Download. Douwan is a comprehensive software solution designed for data management and analysis.
⭕️➡️ FOR DOWNLOAD LINK : http://drfiles.net/ ⬅️⭕️
Maxon Cinema 4D 2025 is the latest version of the Maxon's 3D software, released in September 2024, and it builds upon previous versions with new tools for procedural modeling and animation, as well as enhancements to particle, Pyro, and rigid body simulations. CG Channel also mentions that Cinema 4D 2025.2, released in April 2025, focuses on spline tools and unified simulation enhancements.
Key improvements and features of Cinema 4D 2025 include:
Procedural Modeling: New tools and workflows for creating models procedurally, including fabric weave and constellation generators.
Procedural Animation: Field Driver tag for procedural animation.
Simulation Enhancements: Improved particle, Pyro, and rigid body simulations.
Spline Tools: Enhanced spline tools for motion graphics and animation, including spline modifiers from Rocket Lasso now included for all subscribers.
Unified Simulation & Particles: Refined physics-based effects and improved particle systems.
Boolean System: Modernized boolean system for precise 3D modeling.
Particle Node Modifier: New particle node modifier for creating particle scenes.
Learning Panel: Intuitive learning panel for new users.
Redshift Integration: Maxon now includes access to the full power of Redshift rendering for all new subscriptions.
In essence, Cinema 4D 2025 is a major update that provides artists with more powerful tools and workflows for creating 3D content, particularly in the fields of motion graphics, VFX, and visualization.
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)Andre Hora
Software testing plays a crucial role in the contribution process of open-source projects. For example, contributions introducing new features are expected to include tests, and contributions with tests are more likely to be accepted. Although most real-world projects require contributors to write tests, the specific testing practices communicated to contributors remain unclear. In this paper, we present an empirical study to understand better how software testing is approached in contribution guidelines. We analyze the guidelines of 200 Python and JavaScript open-source software projects. We find that 78% of the projects include some form of test documentation for contributors. Test documentation is located in multiple sources, including CONTRIBUTING files (58%), external documentation (24%), and README files (8%). Furthermore, test documentation commonly explains how to run tests (83.5%), but less often provides guidance on how to write tests (37%). It frequently covers unit tests (71%), but rarely addresses integration (20.5%) and end-to-end tests (15.5%). Other key testing aspects are also less frequently discussed: test coverage (25.5%) and mocking (9.5%). We conclude by discussing implications and future research.
Societal challenges of AI: biases, multilinguism and sustainabilityJordi Cabot
Towards a fairer, inclusive and sustainable AI that works for everybody.
Reviewing the state of the art on these challenges and what we're doing at LIST to test current LLMs and help you select the one that works best for you
Adobe Master Collection CC Crack Advance Version 2025kashifyounis067
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe Master Collection CC (Creative Cloud) is a comprehensive subscription-based package that bundles virtually all of Adobe's creative software applications. It provides access to a wide range of tools for graphic design, video editing, web development, photography, and more. Essentially, it's a one-stop-shop for creatives needing a broad set of professional tools.
Key Features and Benefits:
All-in-one access:
The Master Collection includes apps like Photoshop, Illustrator, InDesign, Premiere Pro, After Effects, Audition, and many others.
Subscription-based:
You pay a recurring fee for access to the latest versions of all the software, including new features and updates.
Comprehensive suite:
It offers tools for a wide variety of creative tasks, from photo editing and illustration to video editing and web development.
Cloud integration:
Creative Cloud provides cloud storage, asset sharing, and collaboration features.
Comparison to CS6:
While Adobe Creative Suite 6 (CS6) was a one-time purchase version of the software, Adobe Creative Cloud (CC) is a subscription service. CC offers access to the latest versions, regular updates, and cloud integration, while CS6 is no longer updated.
Examples of included software:
Adobe Photoshop: For image editing and manipulation.
Adobe Illustrator: For vector graphics and illustration.
Adobe InDesign: For page layout and desktop publishing.
Adobe Premiere Pro: For video editing and post-production.
Adobe After Effects: For visual effects and motion graphics.
Adobe Audition: For audio editing and mixing.
FL Studio Producer Edition Crack 2025 Full Versiontahirabibi60507
Copy & Past Link 👉👉
http://drfiles.net/
FL Studio is a Digital Audio Workstation (DAW) software used for music production. It's developed by the Belgian company Image-Line. FL Studio allows users to create and edit music using a graphical user interface with a pattern-based music sequencer.
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentShubham Joshi
A secure test infrastructure ensures that the testing process doesn’t become a gateway for vulnerabilities. By protecting test environments, data, and access points, organizations can confidently develop and deploy software without compromising user privacy or system integrity.
Avast Premium Security Crack FREE Latest Version 2025mu394968
🌍📱👉COPY LINK & PASTE ON GOOGLE https://dr-kain-geera.info/👈🌍
Avast Premium Security is a paid subscription service that provides comprehensive online security and privacy protection for multiple devices. It includes features like antivirus, firewall, ransomware protection, and website scanning, all designed to safeguard against a wide range of online threats, according to Avast.
Key features of Avast Premium Security:
Antivirus: Protects against viruses, malware, and other malicious software, according to Avast.
Firewall: Controls network traffic and blocks unauthorized access to your devices, as noted by All About Cookies.
Ransomware protection: Helps prevent ransomware attacks, which can encrypt your files and hold them hostage.
Website scanning: Checks websites for malicious content before you visit them, according to Avast.
Email Guardian: Scans your emails for suspicious attachments and phishing attempts.
Multi-device protection: Covers up to 10 devices, including Windows, Mac, Android, and iOS, as stated by 2GO Software.
Privacy features: Helps protect your personal data and online privacy.
In essence, Avast Premium Security provides a robust suite of tools to keep your devices and online activity safe and secure, according to Avast.
Avast Premium Security Crack FREE Latest Version 2025mu394968
Programing Slicing and Its applications
1. Indian Institute of Technology, Kharagpur
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Presented By-
Ankur Jain (13CS60D02)
2. Programmer’s Nightmare…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
If I change this statement in program:
What other statements would be affected?
(Impact analysis)
What other statement needs to be tested?
(Regression test)
The values live at this statement:
Defined where?
Modified Where?
(Manual Checking)
How can I abstract code?
3. Studies show….
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Software testing contributes more then
50% of cost and time of SDLC
Maintainers spend nearly 50% of their
time trying to understand the program
Source: http://www.ece.cmu.edu/~koopman/des_s99/sw_testing/
4. Try...
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Program Slicing!
5. Outline
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Introduction
Types of Slicing
Program Models
Flow based
Dependency based
Slicing Algorithms
Challenges
Directions of research
6. Proposed by…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Proposed by Mark Weiser in 1981
Chief scientist at Xerox PARC
As his PhD thesis
Father of ubiquitous computing
Mark D. Weiser
(July 23, 1952 - April 27, 1999)
7. Basic Concepts…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
“For statement S and variable V, the slice of program P
includes only those statements of P needed to capture the
behavior of V at S.”
Slicing Criterion (SC):
<S, V>
S = Point of interest in the program (statement)
V = Subset of variables used in the program
A program slice is a subset of a program
8. Example…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
1 begin
2 read(x, y)
3 total := 0.0
4 sum := 0.0
5 if x <= 1
6 then sum := y
7 else begin
8 read(z)
9 total := x*y*z
10 end
11 write(total, sum)
12 end
SC = <11, sum>
2 read(x, y)
4 sum := 0.0
5 if x <= 1
6 then sum := y
Slicing Criterion
9. Why is Program Slicing Useful?
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
• Program slices are more manageable for
testing and debugging
• During testing, debugging, or understanding a program,
most of the code in the program is irrelevant to what you
are interested in.
• Program slicing provides a convenient way of filtering out
“irrelevant” code.
10. Slice Variants…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Types of slices:
Static
Dynamic
Direction of slice:
Forward
Backward
Executability of slice:
Executable
Non-executable
Amorphous, etc.
11. Froward Slices Vs Backward Slices
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Statements which might affect
the value of variables in V
Statements which might be
affected by the values of
variables in V
int i, sum, prd;
1. read(i);
2. prd = 1;
3. sum = 0;
4. while (i<10)
5. sum = sum + i;
6. prd = prd * i;
7. i = i + 1;
8. write(sum);
9. write(prd);For SC = <9, prd>
Slice: {1, 2, 4, 6, 7}
For SC = <2, prd>
Slice: {6, 9}
Backward Slices:
Froward Slices
12. Static Slice | Dynamic Slice
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Using dynamic information
(an execution trace)
Debugging
Set of all statements that actually
affect the value of a variable at a
program point
Using static information
(a source program)
Regression Testing
Set of all statements that may
affect the value of a variable at a
program point
13. Example…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
int i, sum, prd;
1. read(i);
2. prd = 1;
3. sum = 0;
4. while (i<10)
5. sum = sum + i;
6. prd = prd * i;
7. i = i + 1;
8. write(sum);
9. write(prd);
Static Slice
{1, 2, 4, 6, 7}
Dynamic Slice
For Input ‘i’ = 15
{2}
For Slicing Criteria [SC] = <9, prd>
Flow based model:
Control flow
Data flow
Dependency based model:
Data Dependency
Control Dependency
Slicing Criterion
14. Dependency Based Model
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Program Code
Control Flow
Graph
(CFG)
Data
Dependency
Graph (DDG)
Program
Dependency
Graph (PDG)
Forward
Dominance Tree
Control
Dependency
Graph (CDG)
15. Data Dependency Graph (DDG)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
int a, b, sum;
1. read(a);
2. read(b);
3. sum = 0;
4. while(a<8)
5. sum = sum + b;
6. a = a + 1;
7. write(sum);
8. sum = b;
9. write(sum);
4 5
6
7
8
9
21 3
Data Dependency Graph
16. Control Flow Graph (CFG)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
int a, b, sum;
1. read(a);
2. read(b);
3. sum = 0;
4. while(a<8)
5. sum = sum + b;
6. a = a + 1;
7. write(sum);
8. sum = b;
9. write(sum);
Start
1
Stop
4
5
3
6
2
8
7
9
True
False
True
True
True
True
True
True
True
True
True
17. Dominance
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Let X and Y be two nodes in a Control flow graph
X dominates Y
If and only if
Every path from Start to Y passes through X
Y forward dominates X
The forward Dominance Tree (FDT)
1. Vertices represent statement
2. Root node of tree is exit node of the CFG
3. Arcs represent immediate forward dominance
19. Control Dependency Graph: Using CFG & FDT
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
4
5 6
7
8
9
2
1
3
S
1. Y is control dependent on X
2. Path in the CFG from X to Y
3. Doesn’t contain the
immediate forward
dominator of X
Y
X
X
Ifdom(4)=7
X
Y
20. Control Dependency Graph (CDG)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
int a, b, sum;
1. read(a);
2. read(b);
3. sum = 0;
4. while(a<8)
5. sum = sum + b;
6. a = a + 1;
7. write(sum);
8. sum = b;
9. write(sum);
4
5 6
7
8
9
2
1
3
S
21. Program Dependency Graph (PDG)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
int a, b, sum;
1. read(a);
2. read(b);
3. sum = 0;
4. while(a<8)
5. sum = sum + b;
6. a = a + 1;
7. write(sum);
8. sum = b;
9. write(sum);
Union of CDG and DDG
1
4
6
5
8
29
3
7
Data dependence
Control dependence
Limitation: A PDG can model programs with a single
function Not suitable for inter-procedural slicing
22. System Dependency Graph Model: by- Horwitz
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Basic Idea:
Connect PDGs with auxiliary dependence edges
• Parse source code - one procedure at a time.
– Construct the CDG for each procedure including main.
• Add actual and formal parameter nodes:
– Connect using parameter-in, parameter-out edges
• Represent function calls
– Using call edges
• Find data dependencies:
– Perform data flow analysis of the CDGs
– Connect data dependence edges
• Add summary edges
Steps in SDG Construction
23. System Dependency Graph (SDG)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Control Dependence
Data Dependence
Call, Parameter−in,
Parameter−out
Summary Edge
bin = b
ain = a
entry add
Entry main
a = 0
b = 1
add(a, b)
a =ain
b = bin
a = a+b
c = aout
aout = a
main(){
int a, b;
a = 0;
b = 1;
c=add(a, b);
}
void add(int a, int b)
{
a = a + b;
return a;
}
24. Slicing an SDG: Two phase algorithm
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Proposed by Horwitz et al
• Pass1: From the slice point:
• Traverse backward along all edges except
parameter-out edges
• Mark the reached vertices
• Pass 2: From vertices marked in Pass 1
• Traverse backwards along all edges:
• Except call and parameter-in edges
25. Slicing an SDG: Pass-1
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Control Dependence
Data Dependence
Call, Parameter−in,
Parameter−out
Summary Edge
main(){
int a, b;
a = 0;
b = 1;
c=add(a, b);
}
void add(int a, int b)
{
a = a + b;
return a;
}
entry main
a = 0
b = 1
add(a, b)
entry add
a =ain
b = bin
a = a+b
aout = a
c = aout
bin = b
ain = a
Slice Point
Except parameter-out edges
26. Slicing an SDG: Pass-2
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Control Dependence
Data Dependence
Call, Parameter−in,
Parameter−out
Summary Edge
main(){
int a, b;
a = 0;
b = 1;
c=add(a, b);
}
void add(int a, int b)
{
a = a + b;
return a;
}
entry
main
a = 0
b = 1 add(a, b)
entry add
a =ain
b = bin
a = a+b
aout = a
c = aout
bin = b
ain = a
Slice Point
Except call and parameter-in edges
27. Dynamic Slicing: Example cont…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Consider the following program:
Computing:
product of odd (p), sum of even (s)
Execution Trace, N=3
1,2,3,4 //intial
5,6,8,9 //i=1
5,6,7,9 //i=2
5,10 //i=3, end
Which part of the
program is responsible
for computing sum?
28. Dynamic Slicing: Example cont…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
We need to compute a backward slice with slicing criterion
<(10, s)>
Dependencies:
Dynamic Data Dependence:
which variable assignment was propagated to the value of `s' ?
Dynamic Control Dependence:
which are the conditional branches that executed till line 10
and in what order?
29. Dynamic Slicing: Example cont…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
For N=3
30. The Dynamic Slice w.r.t. (10,s)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
31. Slicing Tools
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
• Unravel : Static slicing tool for ANSI C
• WET : Whole Execution Traces, dynamic slicing
• CodeSurfer : Commercial static slicing tool for C
• Performs data flow and control dependence analysis
• Indus : Static slicer for Java
• Available for Eclipse via Kaveri plugin
• JSlice : Dynamic slicing tool for Java
• SPYDER: Debugging tool
• Performs both static and dynamic slice
32. Further Reduction in Size of Slice…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Amorphous Slice:
No Syntax Preservation
Retaining the semantic property
Applications:
Re-engineering
Component Re-use
Program Comprehension
Testing & Maintenance
Program Integration
33. Amorphous Slice: Example
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
for(i = 0,sum = a[0], biggest = sum; i<19; sum = a[++i])
if (a[i+1] > biggest)
{
biggest = a[i+1];
average = sum/20;
}
Amorphous slice
for(i = 1, biggest = a[0]; i<20; ++i)
{
if (a[i]>biggest)
biggest = a[i];
}
Traditional slice
for(i = 0,sum = a[0], biggest = sum; i<19;
sum = a[++i])
if (a[i+1] > biggest)
{
biggest = a[i+1];
}
Slicing Criterion
Loop unrolling
34. Challenges: For further reading…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Slicing Object-Oriented Programs
Effect of Exceptions on Control Flow
Slicing UML Models
Slicing of threaded programs
Slicing Concurrent and Distributed Programs
35. Directions of Research
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
A Novel Fault Localization Technique
36. References
[1] M Weiser. 1984. “Program slicing”
IEEE Transactions on Software Engineering 10(4):352–57
[2] F. Tip. 1995. A survey of program slicing techniques. Journal of
Programming Languages 3(3): 121–89
[3] D. P.Mohapatra, R.Mall, and R. Kumar. 2006.
“ An overview of slicing techniques for object-oriented
programs” Informatica 30(2):253–77
[4] G. B.Mund, R.Mall, and S. Sarkar. 2003. “Computation of intra-procedural
dynamic program slices. Information and Software Technology 45(8):499–512.
Indian Institute of Technology, Kharagpur
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
37. Questions
Indian Institute of Technology, Kharagpur
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
38. Indian Institute of Technology, Kharagpur
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp