it depend on the type of IDS that you want to design. if you want to design off-line ids, you will face the ANN and G algorithms. you have to be skilled in this field. if you want to design on line ids, it will be more complicated because you need to handle real packet on real network. and if this on-line ids is real time or not. you have to choose the suitable tools for the designing and implementing. also, there another kinds of classification of ids: if the look from the work environment so it will be based host and based network, if it from the detection so it will be misuse and nominal. and so on.