By Parth Verma, Mandar Kakade, Anshuman Chakravarty, Sourav Khemka and Rahul Das.
ADLAS is an Autonomous Dynamic Learning Apprentice System, which is designed to assist the user in his daily activities. It observes the user’s behaviour, and extracts patterns that the user follows. ADLAS predicts what the user intends to do in the near future, and helps him by autonomously opening applications that he most likely to execute in that particular situation. The system also features functionality such as tracking user’s actions. The system can also be overwritten such that given a group of applications if one of them is executed, ADLAS will autonomously execute the other applications.
ADLAS has been written in the following languages :
- C++
- Python
- MATLAB
- Powershell
Hence, the compilers for the same are required to be present in the system.
The extra python dependencies to be installed are:
- Tkinter
- Pygubu
- Glob
- Pandas
- Win32com.client
- Subprocess
ADLAS has been trained and tested on WIndows 8.1/10.
Training Phase
Enter the
Training
folder.
- Run
Testing.cpp
: This will track the user behaviour for a specified amount of time , and generateout.csv
containing the user activity log for that time session. This time is set to 60 minutes by default, but can be changed by the user. - Run
RunMatlab.py
to generateClusters.txt
which contains the group of applications (clusters) as learned by ADLAS.
Running ADLAS
Enter the
ADLAS
folder.
- The
Clusters.txt
file will be present here as well. - Run
ADLAS.py
: This open up a GUI with a “start” button. Click on the button to start ADLAS. Once activated, ADLAS assists the user by autonomously executing applications which the user is likely to open.
The training phase contains the following files:
-
Testing.cpp
is the main file which executes the sub-processes, along with the following functionalities :- Generating event files to “Event Files” folder.
- Creates a
LogFile
of start and end time for each application and saves the activity log toout.csv
-
FindNum.py
: identifies the number ofEventFiles
generated. -
CleanData.py
: cleans theEventFiles
created with using a pre-defined array of applications (since not all applications are of use). -
RunMatlab.py
: Runs MATLAB to create the clusters using NCToolBox (Self-organising maps) toClusters.txt
andcluster_img.jpeg
usingget_cluster.m
andcreate_text.m
.
-
ADLAS.py
is the main file which has to be executed. It contains a GUI containing a “start” button. When the button is pressed,main.cpp
is compiled and executed.gui.ui
has been used to create the GUI. -
main.cpp
:- Parses Clusters.txt to make it usable.
- Detects what new applications have been opened at this instant and matches
with the previous clusters from
Clusters.txt
.
If a match is found, it autonomously runs all the applications from that cluster using
RunAnApp.py
.
CleanData.py
: cleans theEventFiles
generated with using a pre-defined array of applications (since not all applications are of use).RunAnApp.py
: Given an application, it runs this application using command line.
The following applications are currently supported by ADLAS :
- "chrome",
- "sublime_text",
- "AcroRd32",
- "DCPlusPlus",
- "cmd",
- "devcpp",
- "OneDrive",
- "powershell",
- "explorer",
- “vlc”
- "IDMan",
- "mspaint",
- "POWERPNT",
- "SkyDrive",
- "WinRAR",
- "TeamViewer_Service",
- "wordpad",
- "wmplayer",
- "vmware",
- "notepad",
- "WINWORD",
- "MicrosoftEdge",
- "StikyNot",
- "MusicBee",
- "EXCEL",
- "steam",
- "Photoshop"
- "firefox",