24 February, 2013

Random Oracle Model ~~ Life

For those who are new to this term "Random Oracle Model" let me give a gist.

Given a query this model returns a result for the query. But how does it return ?
If it has already seen the query it just returns the result in O(1) else it does a lookup operation in evaluating and returning the result.

It can be interpreted as some way of permanent caching and is used in almost all cryptographic algorithms.For more info check this http://en.wikipedia.org/wiki/Random_oracle.

Then I thought about the way we live our life. It sounded similar to me. May be these models were invented by those who were able to model these data structures based on their personal life or i'm  a douche :)

Anyways, this is the thing. Everyone should be having a similar example in their life. We come across many persons in our life. We do maintain a cache for those people with whom we want to always move or respond or whatever. For others its just a random response or no response.

Consider you are attending an interview. The interviewer asks a question which you had already come across. Now what would you do? Would you behave like a random oracle model ? :)
i.e would you answer the question instantly as you know the solution already or  drag the time doing fake thinking, returning some false positives similar to bloom filter ......and finally give the solution.

I would suggest to notify the interviewer that you had already come across this question and use ROM in your head to spit out the answer. But many people don't do that. They act like they have seen it for the first time and what not..

To be frank, i was educated by my undergrad college seniors not to respond quickly though you know the answer..

 In another example, lets consider your friend introduces you to his friend. So are we considering the new guy as friend. I guess not. Most of us just remembers him and when you see him in another occasion we greet him and that's it. We do maintain a cache for this guy but we are responding to him with answers which may/may not satisfy him.
 
Recently one of my friend came across this guy. Lets use notations for privacy :).

Let A, B, C are three persons defined as follows.

A - My friend
B - A's friend
C - B's friend who is not A

The following events take place.

1) C had gone to his home country for vacation.
2) A had asked B to get some stuffs from persons who are returning from that country.
3) B informs C.
4) C brought those items as it was told by B.
5) Now C brings those items back.
6) A queries B reaches C's house.

Now whenever some person visits your house its common we greet them with drinks, sweets etc, learn about them, rejoice with them if there any common moments. In this case A was taken aback by C.

C : Oh . It was you. Good. Good.. Okay..Here is your item which was told by B. Have it.
A : Thanks for bringing. blah blah

// C and A stares at each other for some time. A expects C to welcome him and take a seat.

C : Make yourselves comfortable. "Take sweets pointing to some room".
     C leaves the scene.
A : Perplexed on what to do and leaves. 

Why did C behave like that?

1) Probably C had already known about A that he is an asshole through some other D.
2) He was so busy that he didn't have the courtesy to tell that to A.
3) He himself noticed A and determined A's character.
  or whatever.

May be you can justify that I'm an asshole, so is A and that's the reason C behaved like that.

If any of the above cases were true, C should not have brought those items for A when he/she was informed by B. Its better to avoid getting committed rather taking such tasks & making it awkward.

This could be compared with stories a programmer takes for implementation. i.e either take a requirement and implement it correctly or don't take.

Random Reader : I'm already having lots of friends. I don't want any one new into my group.
My answer  :  Yeah buddy. Sure. But one should have the courtesy to decently inform NO to the new guy.

Is that the reason Facebook also thought about coming with lists and groups(secret,closed etc) and blocking updates to persons who are still in your friend's list :).

Coming back to original theory "ROM", Are we violating random oracle model in our life?

Now may be you can ask why do we need to follow random oracle model. I'm not advising anyone to follow this model. I came across this and found our life design patterns are akin to this.

I guess all of us are selfish in one way or other.

We use the model only when it benefits us or we behave in a way which is similar to existing models :)

It can be business, personal or anything.

So one more question arises. Is life deterministic enough to be accommodated into some model?

What do you guys think on this ?


 [For readers who are reading this crap, thank you very much for visiting my profile. Please post comments on what you feel as well as suggestions so that i can improve my writing.]





No comments:

Post a Comment