Is there anyway create relationship for filter criteria which has vocabularies( state, city and location)?
The Relationship option in Views tracks entity references, so to use that option, you have to create Entity References among your terms.  In taxonomy terms, the parent and grandparent are entity references.
Generally speaking, Views can only use a data structure that already exists in the database, or can be built from other structures in the database; it can't create a structure &quot;out of thin air.&quot;
One approach: Using parents and grandparents
To use parents and grandparents, you would have to delete your current terms and re-structure them like this:

Grandparent: Country
Parent: State
Child: City

You can do this by setting the parent when you create each term:

Countries have no parent
States have a country as parent
Cities have a state as parent

Since there are no rules that enforce this structure unless you code the rules yourself, you have to be careful to make sure you set things correctly.
If you take this approach, you can add relationships to get the parent / grandparent under Relationships in Views, but making the filters by country / state / city will be a pain.
Alternative approach that will make it easier to add the filters but that is harder to maintain
Keep the vocabularies independent.  Add an entity reference field (term reference) to the State term type called Country and let users select a country.
Add two more entity reference fields (term reference) to the City term type called State and Country.
Then you have to set the correct country for each state, and state and country for each city.
Then, in your View, you can simply show a list of cities, and the filters for Country, State, and City will work for cities as you expect.
Note, however, that if a country or state has no cities, no entries will appear.  This is because we set this View to only show the list of cities to make setting up the filters easier.