\documentclass[11pt,twoside]{article}\makeatletter
\IfFileExists{xcolor.sty}%
{\RequirePackage{xcolor}}%
{\RequirePackage{color}}
\usepackage{colortbl}
\usepackage{wrapfig}
\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\usepackage{xunicode}
\catcode`⃥=\active \def⃥{\textbackslash}
\catcode`❴=\active \def❴{\{}
\catcode`❵=\active \def❵{\}}
\def\textJapanese{\fontspec{Noto Sans CJK JP}}
\def\textChinese{\fontspec{Noto Sans CJK SC}}
\def\textKorean{\fontspec{Noto Sans CJK KR}}
\setmonofont{DejaVu Sans Mono}
\else
\IfFileExists{utf8x.def}%
{\usepackage[utf8x]{inputenc}
\PrerenderUnicode{–}
}%
{\usepackage[utf8]{inputenc}}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage{float}
\usepackage[]{ucs}
\uc@dclc{8421}{default}{\textbackslash }
\uc@dclc{10100}{default}{\{}
\uc@dclc{10101}{default}{\}}
\uc@dclc{8491}{default}{\AA{}}
\uc@dclc{8239}{default}{\,}
\uc@dclc{20154}{default}{ }
\uc@dclc{10148}{default}{>}
\def\textschwa{\rotatebox{-90}{e}}
\def\textJapanese{}
\def\textChinese{}
\IfFileExists{tipa.sty}{\usepackage{tipa}}{}
\fi
\def\exampleFont{\ttfamily\small}
\DeclareTextSymbol{\textpi}{OML}{25}
\usepackage{relsize}
\RequirePackage{array}
\def\@testpach{\@chclass
\ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
\ifnum \@lastchclass=7 5 \else
\ifnum \@lastchclass=8 \tw@ \else
\ifnum \@lastchclass=9 \thr@@
\else \z@
\ifnum \@lastchclass = 10 \else
\edef\@nextchar{\expandafter\string\@nextchar}%
\@chnum
\if \@nextchar c\z@ \else
\if \@nextchar l\@ne \else
\if \@nextchar r\tw@ \else
\z@ \@chclass
\if\@nextchar |\@ne \else
\if \@nextchar !6 \else
\if \@nextchar @7 \else
\if \@nextchar (8 \else
\if \@nextchar )9 \else
10
\@chnum
\if \@nextchar m\thr@@\else
\if \@nextchar p4 \else
\if \@nextchar b5 \else
\z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi
\fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi}
\gdef\arraybackslash{\let\\=\@arraycr}
\def\@textsubscript#1{{\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
\def\Panel#1#2#3#4{\multicolumn{#3}{){\columncolor{#2}}#4}{#1}}
\def\abbr{}
\def\corr{}
\def\expan{}
\def\gap{}
\def\orig{}
\def\reg{}
\def\ref{}
\def\sic{}
\def\persName{}\def\name{}
\def\placeName{}
\def\orgName{}
\def\textcal#1{{\fontspec{Lucida Calligraphy}#1}}
\def\textgothic#1{{\fontspec{Lucida Blackletter}#1}}
\def\textlarge#1{{\large #1}}
\def\textoverbar#1{\ensuremath{\overline{#1}}}
\def\textquoted#1{‘#1’}
\def\textsmall#1{{\small #1}}
\def\textsubscript#1{\@textsubscript{\selectfont#1}}
\def\textxi{\ensuremath{\xi}}
\def\titlem{\itshape}
\newenvironment{biblfree}{}{\ifvmode\par\fi }
\newenvironment{bibl}{}{}
\newenvironment{byline}{\vskip6pt\itshape\fontsize{16pt}{18pt}\selectfont}{\par }
\newenvironment{citbibl}{}{\ifvmode\par\fi }
\newenvironment{docAuthor}{\ifvmode\vskip4pt\fontsize{16pt}{18pt}\selectfont\fi\itshape}{\ifvmode\par\fi }
\newenvironment{docDate}{}{\ifvmode\par\fi }
\newenvironment{docImprint}{\vskip 6pt}{\ifvmode\par\fi }
\newenvironment{docTitle}{\vskip6pt\bfseries\fontsize{22pt}{25pt}\selectfont}{\par }
\newenvironment{msHead}{\vskip 6pt}{\par}
\newenvironment{msItem}{\vskip 6pt}{\par}
\newenvironment{rubric}{}{}
\newenvironment{titlePart}{}{\par }
\newcolumntype{L}[1]{){\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{){\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{){\raggedleft\arraybackslash}p{#1}}
\newcolumntype{P}[1]{){\arraybackslash}p{#1}}
\newcolumntype{B}[1]{){\arraybackslash}b{#1}}
\newcolumntype{M}[1]{){\arraybackslash}m{#1}}
\definecolor{label}{gray}{0.75}
\def\unusedattribute#1{\sout{\textcolor{label}{#1}}}
\DeclareRobustCommand*{\xref}{\hyper@normalise\xref@}
\def\xref@#1#2{\hyper@linkurl{#2}{#1}}
\begingroup
\catcode`\_=\active
\gdef_#1{\ensuremath{\sb{\mathrm{#1}}}}
\endgroup
\mathcode`\_=\string"8000
\catcode`\_=12\relax
\usepackage[a4paper,twoside,lmargin=1in,rmargin=1in,tmargin=1in,bmargin=1in,marginparwidth=0.75in]{geometry}
\usepackage{framed}
\definecolor{shadecolor}{gray}{0.95}
\usepackage{longtable}
\usepackage[normalem]{ulem}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{marginnote}
\renewcommand{\@cite}[1]{#1}
\renewcommand*{\marginfont}{\itshape\footnotesize}
\def\Gin@extensions{.pdf,.png,.jpg,.mps,.tif}
\pagestyle{fancy}
\usepackage[pdftitle={A Call Graph Reduction based Novel Storage Allocation Scheme for Smart City Applications},
pdfauthor={}]{hyperref}
\hyperbaseurl{}
\paperwidth210mm
\paperheight297mm
\def\@pnumwidth{1.55em}
\def\@tocrmarg {2.55em}
\def\@dotsep{4.5}
\setcounter{tocdepth}{3}
\clubpenalty=8000
\emergencystretch 3em
\hbadness=4000
\hyphenpenalty=400
\pretolerance=750
\tolerance=2000
\vbadness=4000
\widowpenalty=10000
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-1.75ex \@plus -0.5ex \@minus -.2ex}%
{0.5ex \@plus .2ex}%
{\reset@font\Large\bfseries}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-1.75ex\@plus -0.5ex \@minus- .2ex}%
{0.5ex \@plus .2ex}%
{\reset@font\Large}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{-1.5ex\@plus -0.35ex \@minus -.2ex}%
{0.5ex \@plus .2ex}%
{\reset@font\large}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{-1ex \@plus-0.35ex \@minus -0.2ex}%
{0.5ex \@plus .2ex}%
{\reset@font\normalsize}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{1.5ex \@plus1ex \@minus .2ex}%
{-1em}%
{\reset@font\normalsize\bfseries}}
\def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt}
\@tempdima 1.5em \begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\bfseries \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}\par
\endgroup}
\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
\@ifundefined{c@section}{\newcounter{section}}{}
\@ifundefined{c@chapter}{\newcounter{chapter}}{}
\newif\if@mainmatter
\@mainmattertrue
\def\chaptername{Chapter}
\def\frontmatter{%
\pagenumbering{roman}
\def\thechapter{\@roman\c@chapter}
\def\theHchapter{\roman{chapter}}
\def\thesection{\@roman\c@section}
\def\theHsection{\roman{section}}
\def\@chapapp{}%
}
\def\mainmatter{%
\cleardoublepage
\def\thechapter{\@arabic\c@chapter}
\setcounter{chapter}{0}
\setcounter{section}{0}
\pagenumbering{arabic}
\setcounter{secnumdepth}{6}
\def\@chapapp{\chaptername}%
\def\theHchapter{\arabic{chapter}}
\def\thesection{\@arabic\c@section}
\def\theHsection{\arabic{section}}
}
\def\backmatter{%
\cleardoublepage
\setcounter{chapter}{0}
\setcounter{section}{0}
\setcounter{secnumdepth}{2}
\def\@chapapp{\appendixname}%
\def\thechapter{\@Alph\c@chapter}
\def\theHchapter{\Alph{chapter}}
\appendix
}
\newenvironment{bibitemlist}[1]{%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}%
}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}%
{\def\@noitemerr
{\@latex@warning{Empty `bibitemlist' environment}}%
\endlist}
\def\tableofcontents{\section*{\contentsname}\@starttoc{toc}}
\parskip0pt
\parindent1em
\def\Panel#1#2#3#4{\multicolumn{#3}{){\columncolor{#2}}#4}{#1}}
\newenvironment{reflist}{%
\begin{raggedright}\begin{list}{}
{%
\setlength{\topsep}{0pt}%
\setlength{\rightmargin}{0.25in}%
\setlength{\itemsep}{0pt}%
\setlength{\itemindent}{0pt}%
\setlength{\parskip}{0pt}%
\setlength{\parsep}{2pt}%
\def\makelabel##1{\itshape ##1}}%
}
{\end{list}\end{raggedright}}
\newenvironment{sansreflist}{%
\begin{raggedright}\begin{list}{}
{%
\setlength{\topsep}{0pt}%
\setlength{\rightmargin}{0.25in}%
\setlength{\itemindent}{0pt}%
\setlength{\parskip}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\parsep}{2pt}%
\def\makelabel##1{\upshape ##1}}%
}
{\end{list}\end{raggedright}}
\newenvironment{specHead}[2]%
{\vspace{20pt}\hrule\vspace{10pt}%
\phantomsection\label{#1}\markright{#2}%
\pdfbookmark[2]{#2}{#1}%
\hspace{-0.75in}{\bfseries\fontsize{16pt}{18pt}\selectfont#2}%
}{}
\def\TheFullDate{2020-06-17 (revised: 17 June 2020)}
\def\TheID{\makeatother }
\def\TheDate{2020-06-17}
\title{A Call Graph Reduction based Novel Storage Allocation Scheme for Smart City Applications}
\author{}\makeatletter
\makeatletter
\newcommand*{\cleartoleftpage}{%
\clearpage
\if@twoside
\ifodd\c@page
\hbox{}\newpage
\if@twocolumn
\hbox{}\newpage
\fi
\fi
\fi
}
\makeatother
\makeatletter
\thispagestyle{empty}
\markright{\@title}\markboth{\@title}{\@author}
\renewcommand\small{\@setfontsize\small{9pt}{11pt}\abovedisplayskip 8.5\p@ plus3\p@ minus4\p@
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip \z@ plus2\p@
\belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
\def\@listi{\leftmargin\leftmargini
\topsep 2\p@ plus1\p@ minus1\p@
\parsep 2\p@ plus\p@ minus\p@
\itemsep 1pt}
}
\makeatother
\fvset{frame=single,numberblanklines=false,xleftmargin=5mm,xrightmargin=5mm}
\fancyhf{}
\setlength{\headheight}{14pt}
\fancyhead[LE]{\bfseries\leftmark}
\fancyhead[RO]{\bfseries\rightmark}
\fancyfoot[RO]{}
\fancyfoot[CO]{\thepage}
\fancyfoot[LO]{\TheID}
\fancyfoot[LE]{}
\fancyfoot[CE]{\thepage}
\fancyfoot[RE]{\TheID}
\hypersetup{citebordercolor=0.75 0.75 0.75,linkbordercolor=0.75 0.75 0.75,urlbordercolor=0.75 0.75 0.75,bookmarksnumbered=true}
\fancypagestyle{plain}{\fancyhead{}\renewcommand{\headrulewidth}{0pt}}
\date{}
\usepackage{authblk}
\providecommand{\keywords}[1]
{
\footnotesize
\textbf{\textit{Index terms---}} #1
}
\usepackage{graphicx,xcolor}
\definecolor{GJBlue}{HTML}{273B81}
\definecolor{GJLightBlue}{HTML}{0A9DD9}
\definecolor{GJMediumGrey}{HTML}{6D6E70}
\definecolor{GJLightGrey}{HTML}{929497}
\renewenvironment{abstract}{%
\setlength{\parindent}{0pt}\raggedright
\textcolor{GJMediumGrey}{\rule{\textwidth}{2pt}}
\vskip16pt
\textcolor{GJBlue}{\large\bfseries\abstractname\space}
}{%
\vskip8pt
\textcolor{GJMediumGrey}{\rule{\textwidth}{2pt}}
\vskip16pt
}
\usepackage[absolute,overlay]{textpos}
\makeatother
\usepackage{lineno}
\linenumbers
\begin{document}
\author[1]{Diljot Singh}
\author[2]{Prabhdeep Singh}
\author[3]{Rajbir Kaur}
\renewcommand\Authands{ and }
\date{\small \em Received: 14 May 2020 Accepted: 3 June 2020 Published: 17 June 2020}
\maketitle
\begin{abstract}
Today's world is going to be smart even smarter day by day. Smart cities play an important role to make the world smart. Thousands of smart city applications are developing in every day. Every second very huge amount of data is generated. The data need to be managed and stored properly so that information can be extracted using various emerging technologies. The main aim of this paper is to propose a storage scheme for data generated by smart city applications. A matrix is used which store the information of each adjacency node of each level as well as the weight and frequency of call graph. It has been experimentally depicted that the applied algorithm reduces the size of the call graph without changing the basic structure without any loss of information. Once the graph is generated from the source code, it is stored in the matrix and reduced appropriately using the proposed algorithm. The proposed algorithm is also compared to another call graph reduction techniques and it has been experimentally evaluated that the proposed algorithm significantly reduces the graph and store the smart city application data efficiently.
\end{abstract}
\keywords{}
\begin{textblock*}{18cm}(1cm,1cm) % {block width} (coords)
\textcolor{GJBlue}{\LARGE Global Journals \LaTeX\ JournalKaleidoscope\texttrademark}
\end{textblock*}
\begin{textblock*}{18cm}(1.4cm,1.5cm) % {block width} (coords)
\textcolor{GJBlue}{\footnotesize \\ Artificial Intelligence formulated this projection for compatibility purposes from the original article published at Global Journals. However, this technology is currently in beta. \emph{Therefore, kindly ignore odd layouts, missed formulae, text, tables, or figures.}}
\end{textblock*}
\let\tabcellsep&
\section[{I. Introduction}]{I. Introduction}\par
nternet of Things (IoT) is a new technology, which is rapidly gaining momentum in the smart city applications. This concept enables the ubiquitous presence around us of a variety of objects or things such as RFID tags, sensors, actuators, and cell phones. The rise of IoT has affected many areas of smart city applications, such as e-learning, e-health, transportation, waste management, etc. By 2020, more than 5 billion devices will be connected worldwide will become the pioneer to provide information accessible across the globe in milliseconds. Almost all smart city applications are running using the internet and they utilized the services to the cloud \hyperref[b0]{[1]}. The IoT technology is upgrading day by day with the rapid implementation of a smart city \hyperref[b7]{[7]}. Every smart city application requires the processing speed to process data and storage space to store the processed data for further use. The main challenge of the smart city \hyperref[b8]{[8,}\hyperref[b9]{9]} applications are to store the data and analysis it. Data is stored in a memory in the form of the graph. In many applications of graph mining, reduction plays an important role. No doubt, several techniques as total reduction, total reduction with edge weight, etc. are available to reduce the call graph but there are drawbacks in some cases while reducing call graph by these techniques, sometimes information of the program is lost or changed, loosing or changing of information affects the accuracy of program that is unacceptable.
\section[{II. Call Graph}]{II. Call Graph}\par
A call graph is a directed graph whose nodes represent the functions of the program and directed edges symbolize function calls \hyperref[b2]{[2,}\hyperref[b14]{14]}. Nodes can represent either one of the following two types of functions: 1. Local functions, implemented by the program designer. 2. External functions: system and library calls. Call graphs are formally defined as follows:
\section[{Definition}]{Definition}\par
A call graph is a directed graph G with vertex set V=V (G), representing the functions, and edge set E=E(G), where E(G) V(G)×V(G), in correspondence with the function calls.
\section[{Types of Call Graph}]{Types of Call Graph}\par
The call graph can be classified as static and dynamic call graph.\par
A static call graph can be obtained from the source code. It represents all methods of a program as nodes and all possible method invocations as edges. Discovering the static call graph from the source text requires two steps: finding the source text for the program, and scanning and parsing that text \hyperref[b15]{[15,}\hyperref[b19]{19]}.\par
ii.\par
A dynamic call graph is the invocation relation that represents a specific set of run-time executions of a program. Dynamic call graph extraction is a typical application of dynamic analysis to aid compiler optimization, program understanding, performance analysis etc \hyperref[b3]{[3,}\hyperref[b4]{4]}.
\section[{c) Call Graph Reduction}]{c) Call Graph Reduction}\par
The call graph is representations of program executions \hyperref[b11]{[11]}. Raw call graphs typically become much too large. The program might be executed for a long period. Therefore, it is essential to compress the graphs by a process called reduction. It is usually done by a Lossy compression technique \hyperref[b5]{[5]}. This involves the trade-off between keeping as much information as possible and a strong compression. When call graph is being reduced it is essential that no function call is missed \hyperref[b16]{[16]}.\par
The specifications of all the functions/methods must be clear. It is also noticeable that no information is lost when the label is changed \hyperref[b6]{[6]}. Call frequency must be clearly specified. Two approaches are center of the focus to reduce the call graph 1. Total Reduction 2. Zero-one-many reduction In total reduction, a node represents every function. A direct edge is connected with the corresponding nodes when one function has called another function. Total reduction technique shortens the size of the source call graph. In this technique, every method occurs just once within the graph. The major shortcoming of this technique is that it changes the structure of the graph. On the other side, much information about the program execution is lost, e.g., frequencies of the execution of methods and information on different structural patterns within the graphs. So it is very difficult to retrieve the required information from this reduced graph \hyperref[b17]{[17,}\hyperref[b18]{18]}.\par
The other approach is Zero-one-many reduction which covers the drawback of Total Reduction as it does not change the structure but the reduction is not properly done. The improper reduction increases its complexity and it is difficult to find frequent substructure from the graph. The reduced graph can provide near information about call frequency but exact information is not known.
\section[{III. Problem Statement}]{III. Problem Statement}\par
Smart city applications generated the very high amount of data every millisecond, which required a very high amount of storage space \hyperref[b10]{[10]}. Various existing techniques reduce the size of data but the originality and quality of data may also suffer. Surely, the size of data is reduced but the complete information of that data is also changed \hyperref[b13]{[13]}. Researchers have proposed a number of techniques to reduce the graph but most of the techniques suffer from one or more shortcomings. Majority of techniques are not able to store the graph with all information in computer memory \hyperref[b12]{[12]}. So, some new techniques or algorithms are needed to store the information of the graph in computer memory and reduce the graph in such a manner that its information is not lost and the graph is easily mined. Major objectives of this paper are:\par
? To find an efficient method to store the graph in computer memory with information about all the nodes and its parents.\par
? Once the storage is done efficiently, the reduction of the graph is required. The graph must be reduced in such a manner that its information is not lost and it should have minimum edges and nodes. ? Structure of the graph should not be changed after reduction.
\section[{IV. Proposed Approach}]{IV. Proposed Approach}\par
Researchers proposed many approaches for reduction of call graph but they could not propose any approach to saving the call graph in computer memory. The main task is to save the node into computer memory with its parent's information, which is not possible with adjacency list or adjacency matrix. Therefore the parent of each child is stored in the matrix. Once the call graph is saved in memory, it is reduced using the proposed algorithm. In this approach, the reduced call graph shows the call frequency of each node without changing the structure of the source call graph. First, all functions of source code are labeled so that it can easily be interpreted. Then a call graph is made using these labeled functions. To understand the
\section[{print "Enter the label of (x) children" 12. j[i][x].label = Input(label) 13. print "Enter the parent of (x) children" 14. j[i][x].parent = Input(parent) 15. end for 16. end for 17. foreach k?levels down to 0 do 18. foreach l?count[levels-1] down to 0 do 19. foreach m?l-1 down to 0 do 20. if j[k-1] [m-1]. label=j [l-1] [m-1]. label AND j[l-1] [m-1].parent=j[k-1] [m-1]. parent AND j [k-1] [m-1]. label ? '\textbackslash 0' then 21. j[k][l].parent = -1 22. end if 23. end for 24. end for 25. end for}]{print "Enter the label of (x) children" 12. j[i][x].label = Input(label) 13. print "Enter the parent of (x) children" 14. j[i][x].parent = Input(parent) 15. end for 16. end for 17. foreach k?levels down to 0 do 18. foreach l?count[levels-1] down to 0 do 19. foreach m?l-1 down to 0 do 20. if j[k-1] [m-1]. label=j [l-1] [m-1]. label AND j[l-1] [m-1].parent=j[k-1] [m-1]. parent AND j [k-1] [m-1]. label ? '\textbackslash 0' then 21. j[k][l].parent = -1 22. end if 23. end for 24. end for 25. end for}\par
algorithm call graphs is constructed from any code and apply the algorithm step by step. Figure \hyperref[fig_6]{3} shows the call graph which is generated by a code
\section[{V. Implementation and Results}]{V. Implementation and Results}\par
The first part of the algorithm is used for call graph storage. The call graph will be saved in the computer memory by using matrix. There are 5 levels in the call graph and so matrix will have 5 rows. 1st row represent the proposed algorithm the same level nodes with the same parent are merged resulting in a single node with the same label. In the graph same level is level 5, the same label is F and the same parent is D. so after applying the algorithm 3 F's are merged to single F with call frequency. The result is as shown in figure \hyperref[fig_3]{4}.1st level the second row represent 2nd level and so on. Corresponding nodes with parent's information will be saved. 1st-row stores the information about a node which is in 1st level and hasn't any parent as it is root node so store the information as -1.at 2nd level b and c stored in 2nd row with its parent information which is a and so on. According to the algorithm, the next step is to reduce the call graph. This approach is bottom-up approach so the 5th level is considered first and then move to 4th, 3rd, and 4th Fig. \hyperref[fig_6]{3}: Source Call Graph so on.5 level has 6 nodes labeled as f. according to the The same process is applied in level 4 resulting in figure \hyperref[fig_4]{5}. The 3rd level will be worked at C appears 3 times D and E appear singly. Hence, C is concentrated on. 3 Cs will be merged resulting in single C with frequency 3. This will also affect its children. Therefore, they will also be reduced according to the same procedure as shown in figure \hyperref[fig_4]{5}. Finally reduced call graph is shown above is created. In this graph, every node has the information about call frequency. The graph obtained from the same source code is also reduced with both techniques.\par
As shown in the figure the graph generated from the Liu et al technique has reduced the graph with lesser edges and nodes but it could not able to retain the basic structure of the call graph wherein the other hand as shown in figure Zero-one-many reduction could not reduce the same and lost the information of nodes. In contrast to both of them, the call graph generated from the proposed algorithm is able to reduce the graph and retain the information of nodes as well. Both techniques Total Reduction and Zero-onemany reductions lost the information of the nodes and reduce the graph from 22 to 6 and 15 nodes along with edges from 21 to 6 and 14 respectively. The result obtained from the proposed algorithm have positive results with reducing graph without losing information and basic structure i.e. from 22 nodes to 10 nodes and 21 edges to 9 edges
\section[{VI. Conclusion \& Future Scope}]{VI. Conclusion \& Future Scope}\par
Every year the government to their tradition city to update it to the smart city spends a very huge amount. Smart city applications generate the high amount of data at every second. In this paper, the data storage scheme is proposed. The main benefit of this algorithm is to develop a technique to stores the parent information in the matrix and reduced at each level drastically. Information about each node is retained by using the call frequency by annotating each edge with a numerical weight. Similarly, the algorithm used to reduced call graph has various advantages over traditional techniques. It takes various parameters for consideration such as information of nodes, basic structure of graphs and call frequency. Here the detailed study of call graph reduction in graph mining made the study of various other techniques in bug localization very easy. The proposed algorithm works only when there are same types of nodes at a particular level in a call graph. In future this work can be extended to multiple levels of call graph will make the graph mining algorithm efficiently. Secondly the storage of graph can be upgraded with any new storage technique where it would require lesser storage space as well as lesser access time leading to further optimize reduction of call graph.\begin{figure}[htbp]
\noindent\textbf{1}\includegraphics[]{image-2.png}
\caption{\label{fig_0}Figure 1 :A}\end{figure}
\begin{figure}[htbp]
\noindent\textbf{}\includegraphics[]{image-3.png}
\caption{\label{fig_1}A}\end{figure}
\begin{figure}[htbp]
\noindent\textbf{2}\includegraphics[]{image-4.png}
\caption{\label{fig_2}Figure 2 :A}\end{figure}
\begin{figure}[htbp]
\noindent\textbf{4}\includegraphics[]{image-5.png}
\caption{\label{fig_3}Figure 4 :}\end{figure}
\begin{figure}[htbp]
\noindent\textbf{5}\includegraphics[]{image-6.png}
\caption{\label{fig_4}Figure 5 :}\end{figure}
\begin{figure}[htbp]
\noindent\textbf{6}\includegraphics[]{image-7.png}
\caption{\label{fig_5}Figure: 6 :}\end{figure}
\begin{figure}[htbp]
\noindent\textbf{3}\includegraphics[]{image-8.png}
\caption{\label{fig_6}Figure 3 A}\end{figure}
\begin{figure}[htbp]
\noindent\textbf{7}\includegraphics[]{image-9.png}
\caption{\label{fig_7}Figure 7 :}\end{figure}
\begin{figure}[htbp]
\noindent\textbf{8}\includegraphics[]{image-10.png}
\caption{\label{fig_8}Figure 8 :}\end{figure}
\begin{figure}[htbp]
\noindent\textbf{9}\includegraphics[]{image-11.png}
\caption{\label{fig_9}Figure 9 :}\end{figure}
\begin{figure}[htbp]
\noindent\textbf{1} \par
\begin{longtable}{P{0.25409252669039145\textwidth}P{0.11192170818505337\textwidth}P{0.048398576512455514\textwidth}P{0.4295373665480427\textwidth}P{0.006049822064056939\textwidth}}
\tabcellsep \multicolumn{3}{l}{Reduction Techniques}\tabcellsep \\
Reduction\tabcellsep No Of\tabcellsep No of\tabcellsep Effects\tabcellsep on\\
algorithm\tabcellsep Nodes\tabcellsep Edges\tabcellsep Structure\tabcellsep \\
Source code\tabcellsep 22\tabcellsep 21\tabcellsep \tabcellsep \\
Total Reduction\tabcellsep 6\tabcellsep 6\tabcellsep \multicolumn{2}{l}{Lost information structure and Changed}\\
Zero-one-many\tabcellsep 15\tabcellsep 14\tabcellsep \multicolumn{2}{l}{Lost information but remain same}\\
reduction\tabcellsep \tabcellsep \tabcellsep structure\tabcellsep \\
Proposed Algorithm\tabcellsep 10\tabcellsep 9\tabcellsep \multicolumn{2}{l}{No Remain loss information and in Same}\\
\tabcellsep \tabcellsep \tabcellsep structure\tabcellsep \end{longtable} \par
\caption{\label{tab_0}Table 1 :}\end{figure}
\backmatter \begin{bibitemlist}{1}
\bibitem[Zhou et al. ()]{b0}\label{b0} \textit{}, L Zhou , D Wu , J Chen , Z Dong . 2018.
\bibitem[Yousefi and Wassyng (2013)]{b15}\label{b15} ‘A call graph mining and matching based defect localization technique’. A Yousefi , A Wassyng . \textit{2013 IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops}, 2013. March. IEEE. p. .
\bibitem[Darivianakis et al. ()]{b3}\label{b3} ‘A Data-Driven Stochastic Optimization Approach to the Seasonal Storage Energy Management’. G Darivianakis , A Eichler , R S Smith , J Lygeros . \textit{IEEE control systems letters} 2017. 1 (2) p. .
\bibitem[Han et al. ()]{b8}\label{b8} ‘A Lightweight And privacy-preserving public cloud auditing scheme without bilinear pairings in smart cities’. J Han , Y Li , W Chen . \textit{Computer Standards \& Interfaces} 2018.
\bibitem[Osman ()]{b10}\label{b10} ‘A novel big data analytics framework for smart cities’. A M S Osman . \textit{Future Generation Computer Systems} 2019. 91 p. .
\bibitem[Chroni and Nikolopoulos (2012)]{b17}\label{b17} ‘An embedding graph-based model for software watermarking’. M Chroni , S D Nikolopoulos . \textit{Intelligent Information Hiding and Multimedia Signal Processing (IIH-MSP)}, 2012. July. 2012. IEEE. p. . (Eighth International Conference on)
\bibitem[Xue et al. (2009)]{b16}\label{b16} ‘Constructing a Knowledge Base for Software Security Detection Based on Similar Call Graph’. J Xue , C Hu , K Wang , R Ma , B Leng . \textit{Computer and Electrical Engineering, 2009. ICCEE'09. Second International Conference on}, 2009. December. IEEE. 1 p. .
\bibitem[Kato et al. (2012)]{b13}\label{b13} ‘Cutting a method call graph for supporting feature location’. T Kato , S Hayashi , M Saeki . \textit{Fourth International Workshop on Empirical Software Engineering in Practice} 2012. October. 2012. IEEE. p. .
\bibitem[Cebe and Akkaya ()]{b7}\label{b7} \textit{Efficient Certificate Revocation Management Schemes for IoT-based Advanced Metering Infrastructures in Smart Cities}, M Cebe , K Akkaya . 2018. Ad Hoc Networks.
\bibitem[Greening the smart cities: Energy-efficient massive content delivery via D2D communications IEEE Transactions on Industrial Informatics]{b1}\label{b1} ‘Greening the smart cities: Energy-efficient massive content delivery via D2D communications’. \textit{IEEE Transactions on Industrial Informatics} 14 (4) p. .
\bibitem[Blokhin et al. (2013)]{b12}\label{b12} ‘Malware similarity identification using call graph based system call subsequence features’. K Blokhin , J Saxe , D Mentis . \textit{2013 IEEE 33rd International Conference on Distributed Computing Systems Workshops}, 2013. July. IEEE. p. .
\bibitem[Kumar et al. ()]{b9}\label{b9} ‘Moving towards smart cities: Solutions that lead to the Smart City Transformation Framework’. H Kumar , M K Singh , M P Gupta , J Madaan . \textit{Technological Forecasting and Social Change} 2018.
\bibitem[Wang et al. (2015)]{b18}\label{b18} ‘OLAP Visual Analytics on Large Software Call Graphs with Hierarchical ChordMap’. L Wang , J Gong , L Shi . \textit{2015 IEEE International Conference on}, 2015. November. IEEE. p. . (Data Mining Workshop)
\bibitem[Lin et al. ()]{b2}\label{b2} ‘Optimal charging control of energy storage and electric vehicle of an individual in the internet of energy with energy trading’. C C Lin , D J Deng , C C Kuo , Y L Liang . \textit{IEEE Transactions on Industrial Informatics} 2018. 14 (6) p. .
\bibitem[Agrawal ()]{b14}\label{b14} ‘Simultaneous demand-driven data-flow and call graph analysis’. G Agrawal . \textit{Software Maintenance, 1999.(ICSM'99) Proceedings. IEEE International Conference on}, 1999. IEEE. p. .
\bibitem[Tang et al. ()]{b5}\label{b5} ‘Social-Aware Data Collection Scheme Through Opportunistic Communication in Vehicular Mobile Networks’. Z Tang , A Liu , C Huang . \textit{IEEE Access} 2016. 4 p. .
\bibitem[Colmenar-Santos et al. ()]{b6}\label{b6} \textit{Technical approach for the inclusion of superconducting magnetic energy storage in a smart city}, A Colmenar-Santos , E Luis-Molina , E Rosales-Asensio , Á Lopez-Rey . 2018. Energy.
\bibitem[Gurukar and Ravindran (2014)]{b19}\label{b19} ‘Temporal analysis of telecom call graphs’. S Gurukar , B Ravindran . \textit{Communication Systems and Networks (COMSNETS)}, 2014. January. 2014. IEEE. p. . (Sixth International Conference on)
\bibitem[Lee et al. ()]{b4}\label{b4} ‘Three-factor control protocol based on elliptic curve cryptosystem for universal serial bus mass storage devices’. C C Lee , C T Chen , P H Wu , T Y Chen . \textit{IET Computers \& Digital Techniques} 2013. 7 (1) p. .
\bibitem[Wang and Ding (2015)]{b11}\label{b11} ‘Topology characters of the linux call graph’. Y F Wang , D W Ding . \textit{2015 2nd International Conference on Information Science and Control Engineering (ICISCE)}, 2015. April. IEEE. p. .
\end{bibitemlist}
\end{document}