## Thursday, November 28, 2013

### The Sultan's Wine Bottles

Q: A Sultan has a 1000 bottles of wine. He needs to use them in 30 days time for a royal banquet. He knows that his enemies have poisoned exactly one bottle with a type of poison that takes effect in 29 days. He decides to use his soldiers to test which bottle is poisoned. Is there a strategy that minimizes the number of soldiers needed for the task?

Probability Theory: The Logic of Science

A: The naive approach is to have one soldier per bottle. Every soldier gets a drop from each bottle and they wait for 29 days. The number of the soldier who gets affected on the 29th day shows which bottle is poisoned. However, this strategy is quite expensive in terms of the number of soldiers needed for the Sultan. A far more efficient strategy is the following.
1. Label each bottle with a number.
2. Maintain a ledger which maps a number to each of the patterns 0000000000 -> 1, 0000000001 -> 2, 0000000010 -> 3, 0000000100 -> 4 and so on till you reach 1111111111 -> 1000. Note there are 10 places that can hold either 0s or 1s.
3. Assign each soldier to each of the 10 places.
4. For each bottle number, give a drop of the wine to each soldier with a number 1.
What happens? On the 29th day, a certain combination of soldiers will be affected by the poison. Knowing that combination, the Sultan can trace back and find the exact bottle that contained the poison by looking up the ledger. This way the number of soldiers needed is minimized. Note, the problem solution can be extended to any number of bottles. By using the binary number encoding method the number of combinations needed can be ascertained by simply doing $$log_{2}{N}$$ where $$N$$ is the number of bottles.
If you are looking to buy some books in probability here are some of the best books to learn the art of Probability

Fifty Challenging Problems in Probability with Solutions (Dover Books on Mathematics)
This book is a great compilation that covers quite a bit of puzzles. What I like about these puzzles are that they are all tractable and don't require too much advanced mathematics to solve.

Introduction to Algorithms
This is a book on algorithms, some of them are probabilistic. But the book is a must have for students, job candidates even full time engineers & data scientists

Introduction to Probability Theory
Overall an excellent book to learn probability, well recommended for undergrads and graduate students

An Introduction to Probability Theory and Its Applications, Vol. 1, 3rd Edition
This is a two volume book and the first volume is what will likely interest a beginner because it covers discrete probability. The book tends to treat probability as a theory on its own

The Probability Tutoring Book: An Intuitive Course for Engineers and Scientists (and Everyone Else!)
A good book for graduate level classes: has some practice problems in them which is a good thing. But that doesn't make this book any less of buy for the beginner.

Introduction to Probability, 2nd Edition
A good book to own. Does not require prior knowledge of other areas, but the book is a bit low on worked out examples.

Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms (3rd Edition) (Pts. 1-5)
An excellent resource (students, engineers and even entrepreneurs) if you are looking for some code that you can take and implement directly on the job

Understanding Probability: Chance Rules in Everyday Life
This is a great book to own. The second half of the book may require some knowledge of calculus. It appears to be the right mix for someone who wants to learn but doesn't want to be scared with the "lemmas"

Data Mining: Practical Machine Learning Tools and Techniques, Third Edition (The Morgan Kaufmann Series in Data Management Systems)
This one is a must have if you want to learn machine learning. The book is beautifully written and ideal for the engineer/student who doesn't want to get too much into the details of a machine learned approach but wants a working knowledge of it. There are some great examples and test data in the text book too.

This is a good book if you are new to statistics & probability while simultaneously getting started with a programming language. The book supports R and is written in a casual humorous way making it an easy read. Great for beginners. Some of the data on the companion website could be missing.

Covered in this book are the central limit theorem and other graduate topics in probability. You will need to brush up on some mathematics before you dive in but most of that can be done online

This book has been yellow-flagged with some issues: including sequencing of content that could be an issue. But otherwise its good