Electronic Nose: Algorithmic Challenges