abhishekatuw
BAN USERI am expecting to finish my master by Aug 2012.
ABHISHEK KUMAR
Research Interest:
--Computer Vision, Machine Learning, Artificial Intelligence, Robotics
Education:
--University of Waterloo, Waterloo, ON, Canada [Sept. 2010 - Aug. 2012(expected)]
----MASc (masters), Vision and Image Processing Lab, Systems Design Engineering
--Indian Institute of Technology (IIT), India [May 2000 - April 2004]
----B.Tech., Aerospace Engineering (Major) and Electronics and Electrical Communication Engineering (Minor).
Current Research:
--Detection and classification of chaos in human crowd using dynamic motion vector modeling.
Industrial Experience: (Six year)
--Read-Ink Technologies Pvt. Ltd. [Jul. 2008 - Jun. 2010]
----designation: Research Engineer
----Product: Online Handwriting Recognition System
----Programming Language: C++, Matlab
----Work done:
------Developed an improved handwriting baseline estimation method using Hidden Markov Model based forward-backward optimization.
------Worked on feedback based writer adaptation.
------Worked on Empirical PDF based scale estimation.
------Developed a preprocessing method to generate optimal character box for each possible characters in the sample.
--Oracle India Pvt. Ltd. [Aug. 2007 - Jul. 2008]
----designation: Senior Application Engineer
----Product: Sieble CRM tool
----Programming Language: C++
----Work done:
------Worked on design and integration of an improved library in the scheduling module of Siebel application.
--Read-Ink Technologies Pvt. Ltd. [Apr. 2005 - Aug. 2007]
----designation: Research Engineer
----Product: Online Handwriting Recognition System
----Programming Language: C++, Matlab
----Work done:
------Developed a pre-processing method using the Hidden Markov Model based Viterbi algorithm, to estimate scale and relative position of different segments hand-written data. The module was designed with a self feedback system to handle continuous variation of handwriting and adapt statistics.
------Developed an algorithm using computational geometry, to estimate user invariant, shape specific major axes. These approximate Axes were critical for Area based feature extractions.
------Worked on effective parameter selection using PCA to classify character models.
------Worked on hierarchical discriminatory probability estimation to simplify character classification based on common features.
--Avisere India Pvt. Ltd. [Jun. 2004 - Mar. 2005]
----designation: Research Engineer
----Product: Object Detection and Tracking System
----Programming Language: C++
----Work done:
------Developed image processing morphological tools like dilation, erosion, connected component labeling for segmenting moving object.
------Developed a car tracking module using an ellipse fitting method. The module was capable of handling erroneous segmentation, occlusion while keeping track and count of cars in a region of interest.
------Developed a human detector using geometric parameters, where back propagation neural network based skin detection method was used to help segmenting and verifying human from non-human.
Publications:
--Kumar, A. Wong, A. Mishra, P. Fieguth, and D. Clausi, “Tensor vector field based active contours”, in the proceeding of IEEE International Conference on Image Processing (IEEE ICIP), 2011.
--Kumar, F. Tung, A. Wong, and D. Clausi, “A decoupled approach to illumination-robust optical flow estimation”, in IEEE Transaction on Image Processing (IEEE TIP) Under Review.
Teaching:
--University of Waterloo, Waterloo, ON, Canada
----SYDE 575 - Introduction to Image Processing, Teaching Assistant.
----MTE 140 - Algorithms and Data Structures, Teaching Assistant.
----SYDE 372 - Introduction to Pattern Recognition, Teaching Assistant
Software Skills:
--Programming: C, C++, Python, XML
--Applications: TEX, LATEX, BibTEX, Microsoft Office, CVS
--Operating Systems: Microsoft Windows XP/2000
--Engineering Software/Languages: MATLAB, Octave
Courses Taken:
--Digital Image Processing
--Digital Signal Processing
--Computer Vision
--Digital Electronic Circuit
--Neural Network
--Advanced Image Processing
--Humanoid Robotics
--Discrete Optimization
--Programming and Data Structure
Achievements and Scholarships:
--University of Waterloo Graduate Student Scholarship for securing grade above 80%.
--Secured top 1 percentile out of 143000 students in IIT Joint Entrance Exam 2000.
--Won 3rd prize in programming contest conducted by IIT Kharagpur (2002).
--MCM Scholarship, IIT Kharagpur (2000-2004).
--Won two 1st prizes in national level Autonomous Robotics competitions in Kshitij 2004, at IIT Kharagpur and in Teckriti 2004 at IIT Kanpur
Extra-Curricular Activities:
--Social Chair (Fall 2011), Judicial Chair (Spring 2011), Inter-division Council Secretary (Fall 2010) in the student co-operative society (WCRI), Canada.
--President (2004) and Editor (2003) of Aerospace Engineering, IIT Kharagpur.
--Second Senate member (2004), best secretary award winner (2002) in R.K. Hall of residence, IIT Kharagpur.
--Many other prizes in fine-arts competitions in IIT Kharagpur.
Contact:
--200, University Ave. West, Waterloo, N2L 3G1, ON, Canada
--Mobile Number: 5194972005
--E Mail:abhishekatuw@gmail.com (preferred)
--URL: http://vip.uwaterloo.ca/people/abhishek-kumar
θ(n(k^2))
θ(2n + 3n + 4n + .. + kn ) = θ(n(k^2))
it will be nlog(n), only base of log will change from 2 to 3.
- abhishekatuw March 15, 2012compute distance for each point from origin i.e sqrt(x^2 + y^2), you can ignore sqrt to reduce complexity burden if you want. that would not affect.
then we can use max-heap if k is small enough.
else we can do partition based method similar to quick sort, to separate out k smallest distance from the rest.
Nice solution...
- abhishekatuw February 07, 2012A
- abhishekatuw January 30, 2012Was interview specific about 2. If yes then,
2^13 = 2^(1101b) = 2^8 * 2^4 * 2 = (2 << 8) * (2 << 4) * 2
Though not sure if the interview was expecting this answer...
Can we use a binary tree, with each node has one pointer to first child and second to the sibling. This will make deletion and addition in the hierarchy very fast.
And we can have a trie to keep name or id of employee to keep pointer of those employee node in the tree, a hash table will also work.
11
- abhishekatuw January 29, 2012you can do factorial of n in log2(n) time.
say for 6, you shall do like this.
((1 * 2) * 3) * ((4 * 5) * 6).. its a balanced binary tree.
nice question, just came to know that on comparison of unsigned and signed, signed is converted to unsigned. so answer will be "Y is greater"
- abhishekatuw January 29, 2012use heap to extend..
- abhishekatuw January 29, 2012correct solution,
with minor correction, it should have been
8*sizeof(int)
As told by sanjay, suppose we are looking for 11,
based on diagonal search we find that 11 lies in between 8 and 12, so 11 can lie in either
[3 11
4 14]
or
[6 7
9 10]
follow same procedure for these blocks and continue.
complexity,
N + N/2 + N/2^2 .. = 0(log2(N))
BAD;
26^2 * (B-A) + 26^1 * (A-A) + 26^0 * (D - A)
What does anagram of a sting implies?
1. The string is made of many words and the anagram is shuffled in terms of words.
Or
2. The string is shuffled in terms of characters.
For first case a trie can be used along with a small supporting array type of ds to keep count.
For second case a character based hash can be used with the count of occurance.
to compute height and width together,
Assuming , Tree is made of Node.
float density(Node* t){
if (!t)
return Nan;
Queue<Node*> Q[2];
bool qid = 0;
Q[qid].push(t);
uint w = 1;
uint h = 0;
float den = 0;
while (!Q[qid].empty)
{
++h;
uint wt = 0;
while(!Q[qid].empty)
{
Node* L = Q[qid].pop();
if (L -> left)
{
Q[!qid].push(L->left); ++wt;
}
if (L -> right)
{
Q[!qid].push(L->right); ++wt;
}
}
if (w < wt)
w = wt;
qid = !qid;
}
den = w / h;
return den;
}
It was a bit difficult to write algorithm, so I wrote code, it should be quite straight forward to read it. The code has not been tested, It is more a representative of my idea of computing height and width together.
- abhishekatuw January 22, 2012In vs2008 both works,
second set gives
(null)
(null)
search Maximum_subarray_problem in wikipedia
- abhishekatuw January 17, 2012nice solution, with the only constraint that the algorithm will give wrong answer if p or q do not exist in the tree.
- abhishekatuw January 17, 2012Given method can work only if all the numbers are positive, if the array contains mixture of positive and negative number, it wont work.
- abhishekatuw January 09, 2012As we know that the consecutive difference is abs(1), for a given number 't', and array of n element arr,
start from i = 0, of arr
for any position, i, the abs(t - arr[i]), will give information at what minimum distance t = abs(t - arr[i]) can lie from current position. i = i +t; continue till you reach end of the array or find your element. worst case complexity can be n, but on average it should be very fast.
count number of element in the list, O(n).
break list at n/2 and invert the second part of the list. O(n)
compare node by node to verify.
Once cone, invert the second list and link its head to the tail for first list.
Overall complexity O(n), space complexity const.
abstraction
- abhishekatuw January 05, 2012Thanks atul, the question id of another discussion on same question is 4285682
- abhishekatuw January 04, 2012There is another post for same question, however even their I think they could not reach to a concrete solution. Tried to put the link, but careercup is not allowing.
- abhishekatuw January 03, 2012@naga, yes you are right the complexity my method can be much higher then I thought.. no other idea as if now..
- abhishekatuw January 03, 2012sorry, the complexity will be O(max(row, col))
- abhishekatuw January 01, 2012Yes the example given above is incorrect, the example can be given as:
1 3 4 8 9
2 5 18 25 50
6 7 22 45 55
take the middle element, here 18, all element before that in the left and above will be smaller than 18, and all element on the right, and bottom will be larger than 18. Thus we need to find median of the remaining elements i.e. {6, 7}, 18, {8, 9}, We can sort these sorted array sub arrays to get median. This will work if we have odd number of row and columns, in case of even rows and/or columns, we shall have modify logic a little, but idea will remain same. The complexity of this approach will be log(max(row, col)), where matrix is of dimension row X column.
- abhishekatuw January 01, 2012The answer suggested before,
F(n) = F(n-1) + F(n-2)
F(1) = 1
F(2) = 2
looks to work fine, but I am not getting why this is working? I mean how did you come to this answer, was it just by analyzing numbers or based on some other logic?
another error is that,
you should just return buf (not &buf), as buf is a pointer to the begin of array buf.
Answer to your question is to allocate memory rather than defining an array. as mentioned above.
function: TreeNode findClosest(TreeNode root,int x){
Do binary search.
keep following variables:
gtNode: will keep node information, from which x was found greater.
ltNode: will keep node information, from which x was found smaller.
As we proceed, we shall keep updating these variables with condition that,
1. gtNode will be updated only if candidate gtNode has smaller difference then existing one.
2. ltNode will be updated only if the candidate ltNode has smaller difference then existing one.
The search will stop as soon as 1 or 2 gets violated or you reach end of tree.
compare gtNode and ltNode for closest match and that will be the result.
Reprizzafilher, Java Developer at Achieve Internet
Sorter with 3+ years of experience , performs duties in a safe manner in compliance with all local, state, and federal ...
Replushililly, Area Sales Manager at ASAPInfosystemsPvtLtd
I am Graphic designer from Watertown. a professional within the graphic design and graphic arts industry assembles together images, typography ...
If you assume that all characters will be caps then your solution will work else you shall have to consider 3 chars too in case of small characters that too... It is not a big problem but just wanted to point out.
- abhishekatuw March 15, 2012