 So, actually we will go ahead with the class network now further and we will now formally proves that in what cases it will be rearrangement non-blocking and how you will actually do the rearrangement that also the answer will come, we will also prove now formally when a switch will be strictly non-blocking in a three stage class network. Intuitively we do have an idea that number of middle stage switches has to be equal to twice the number of inputs per switch minus 1 ok, if it is equal to that or greater than then it will be strictly non-blocking. But before doing that we have to understand the formulism of Paul's matrix that is where I think I left in the previous class ok. So, the Paul's matrix is nothing but it is a matrix it is going to have rows and columns obviously and the number of rows is equal to number of input stage switches not the ports remember it is equal to number of switches in the first stage ok. So, if I am going to have say for example, a switch like this which has four things there might be many number of incoming ports per switch. So, I will only write a, b, c, d and there will be only four rows in this case. So, I will have only row a, row b, row c and row d. Similarly on the output side on the third stage basically I will have number of switches and they need not be same I am not the whatever I am now going to do the formulism is for any kind of class configuration this need not be symmetric number of input ports need not be equal to outgoing ports ok. It has it can be anything arbitrary so I may even end up in having five switches nobody stops me I may end up in having five switches the number of ports here can be different then number of ports per switch there that is also permitted. So, far it is a class network I will be able to deal with it earlier case was I took everything symmetric and then through some rational or logic I was able to derive when the switch will be strictly non blocking. So, it is a general case now. So, if you have for example, now a prime, b prime, c prime, d prime and e prime. So, in this case correspondingly I will have five columns and I call it a prime, b prime, c prime, d prime and e prime. In the middle stage again there will be many switches. So, fundamental rule is if the outgoing ports one thing which is very obvious is these outgoing ports in the first stage has to be more than the incoming ports. So, at the switch itself will not create any blocking is very important so should not create any blocking. So, because if somebody is trying to come in output port is free, but these ports are less you cannot do it. So, blocking happens because of the this n, n 1 is a smaller than m 1 so that condition should not happen. So, n 1 should always be greater than m 1 if that is there and m 2, m 3 is again greater than n 3 then also the blocking will not happen because of the switch it will only happen because of interconnection. Now, what I can do is only thing which I need to manipulate now here is number of switches in the middle stage. If I only keep it one unfortunately there will be only one line coming from that it will be a blocking switch because these ports are less than the input. So, one thing which is sure is if I have this as a input and this as an output and for example, if this number of outputs n 3 I am just going from certain fundamentals now. So, m 1 and n 3 if they are equal it is ok then we know that if the number of outgoing ports is less than m 1 number of incoming ports is less than n 3 it is blocking which actually means when r 2 is going to be less than m 1 or n 3 whichever is the minimum of the two it is going to be blocking in fact, that is what the result which you will get. Now, if I want to set up a connection from here I want to set up a connection from here ok. So, one thing which is sure that r 2 should be greater than or equal to maximum of m 1 sorry not minimum, but maximum this is this has to be ensured so that the blocking does not happen because of the switches it happens because of the interconnection so that is the first condition. So, if you are below this your switch is a blocking switch it cannot be reasonably blocked non blocking it also cannot be in fact, it has to be yeah if r 2 is less than maximum of m 1 n n 3 then switch is blocking 100 percent blocking ok. So, for certain combinations you will find switch cannot get through and blocking is not because of interconnection, but because of switches itself ok because the number of ports will become smaller than the outgoing ports on this side or the incoming ports on this side the first condition. So, this is one of this thing is clear it means now when I am making interconnection going to be in this way there is r 2. So, when you make r 2 is going to be greater than equal to this condition in the beginning r 2 will satisfy something as I keep on increasing r 2 there must be an r 2 after which I should be able to set up all connections all possible connections because r 2 is infinity switch has to be strictly non blocking number of IO ports are limited ok number of IO ports are limited. So, at certain value of r 2 it will become strictly non blocking at certain value of r 2 it should be rearrangeably non blocking and below this it should be blocking, but still I am not sure whether it is going to be rearrangeably non blocking if this condition is satisfied this I am not sure as of now. So, this I do not know about that thing, but at certain value of r 2 it will become rearrangeably non blocking and after certain threshold it has to be strictly non blocking strictly non blocking you are not rearranging any connections you should be able to in every state should be able to set up the connection. In rearrangeably non blocking you have to make the rearrangement of existing connections IO map or IO pairs still are maintained as same and then you can set up the connection intuitively we actually can reduce that rearrangeably non blocking switches will require lesser amount of resources compared to strictly non blocking which is going to be true actually ok. So, that is the case now let us look at how the pulse matrix actually helps us. So, we will now put some number or whatever it is on some symbols actually on this middle list is switches and when a connection is set up. So, when I take for example, this particular port I set up a connection I set up to this particular port between these two ports A prime and D prime I use a switch 9. So, I am going to route the call through 9 I can now put in the cell that I am now set up a call I am not worried about which particular port here because there can be exactly one call which can be set up from there can be multiple, but through 9 only one can be set up. So, if there is another port which is free which also wants to go to D prime I will have to use some other switch it cannot be through 9 because there is only one line here there is only one line here. Now, it is not one by one there are other switches also so, everybody is connecting. So, the number of switches here is R 1 R 3 so, this is R 1 by R 3 switches all middle list switches are R 1 by R 3 they have to be because you cannot leave any port open here every port is connected in the middle list stage all inputs are coming at this port all outgoing ports are on this stage all middle stages have to be connected to somewhere that is as per the clause interconnection thing. So, the next one for example, this same guy wants to set up a call from here through 5 that is the next one this guy A wants to set up a call to say B it can use something like 3 so, I will can put 3 here some other switch wants to set up a call to D prime this can be through this cannot be through this route because this is occupied. So, D can be connected to D prime through 8 that is what the pulse matrix is now what are the validity conditions now one of the very simple thing if I would have like to set up this particular connection this line was free, but could have used this I could not have used this line because this link is already occupied because a connection from A to D prime has been set up. So, which actually means 9 cannot come in the column corresponding to D prime because it is already been occupied because if D to D prime I would have connected through 9 I would have put a 9 here, but 9 cannot repeat in the same column, but if I am in a multicast configuration multicasting is a one input is being connected to multiple outputs I am trying to make copies of the signal to multiple outputs I am not estimating any probability just find out which ever is free and make the connection D to exactly right from here to 9 and from here to you can certainly use whose stops now there is no multicasting because this is setting up one connection this way and one connection this way this is permitted by this cross bar this permitted. So, I can actually put D to B if I want to put it I can put 9 here. So, conditions actually are coming on columns and rows what elements can come whether elements can be duplicated in a row whether they can be duplicated in column or not. So, those are the validity conditions ok. So, I am now coming to a case where this port whatever M was giving to B also wants to send it to somebody else for example, B you forget this part of a connection. So, same input is coming here this is a cross bar I am able to put a copy on this side also that is a multicast case. In that case a to D prime has 9 a to D prime also can have a 9 which actually means I can have duplication of elements in the rows that is possible because is the multicasting. But duplication within column was not permitted I cannot combine this and this signal and send it over single link to D prime that is not possible it will create interference. So, I am trying to emphasize get whether elements can be repeated again in rows or columns or not they can be repeated in rows within rows they can be, but within columns they cannot be and this repetition will only happen if it is a multicast scenario not in unicast case unicast it will be only coming exactly once. Why it is going to come exactly once if you look at a 9 5 has already come there is no multicasting if 9 has already come I cannot use this link to set up any other connection. So, this 9 cannot repeat anywhere in the column in the row similarly in the column I cannot repeat 9 if this link is already being used to set up some path from D prime to some input port if this 9 is already used I cannot also repeat if it is a unicast case. So, now let us write down what will be the legitimate pulse matrix conditions I am formally writing them now I have explained it by example each row will have how many elements tell me that at most number of elements are r 2 r 2 can be larger than I is usually going to be larger or equal to a greater or equal to the number of incoming ports m 1, but how many entries you can make here can you put r 2 entries you cannot set up r 2 connections only m 1 connections at most you can set up. So, m 1 entries from those r 2 possible symbols any m 1 you can use and they can be put in the row. So, that gives a maximum size of elements in the row except if it is a multicast then it will be duplicated, but that actually means there can be exactly only m 1 symbols which will be there the symbols can be repeated in a row if it is a multicast out of r 2 only m 1 symbols will be used and they can be any combination there is no restriction on that it all depends on you are setting up the connection. So, first case is each row can have at most m 1 symbols this actually means m 1 symbols this actually means number of the paths number of paths which can be set up from a switch from a input stage switch can at most be m 1 that is what it means. So, I can write that number of paths can be equal to inputs to the switch input stage switch and which is the stage 1 I write it simply input stage switch actually means only this switch not the whole switch only this switch which is m 1. So, that is the first condition next I have already told you what about column give me the equivalent statement for a column n 3 right exactly it has to be only n 3. So, what I will do is the whole statement is going to be same. So, wherever there is going to be a let me write it down because each column can have at most n 3 symbols and this actually implies that number of paths at the most equal to number of outputs in output stage switch. So, you agree with these two conditions now third condition is the symbols in each row. So, I am not worried about which symbols there will be only m 3 symbol m 1 symbols or n 3 symbols, but they all symbols have to be distinct if it is a unicast case. So, this actually means one edge from each first stage switch to each middle stage switch and no multicasting is allowed in this case. So, this actually means at the most r 2 symbols can be there. So, whatever is the minimum of m 1 and r 2 that has to be here. So, if you do not bother about that condition at most r 2 can be there because only r 2 symbols are there and you are not having distinct thing because there is no multicasting. So, but usually it will be because I have already told you that m 1 is going to be smaller than r 2 only m 1 symbols will be m 1 distinct symbols will be there and they will be chosen from r 2 possible symbols and they will all be distinct. They will not be repeated actually that what it means because there is no multicasting, there is no relation they can be independent they can be independent and you can generally you can make a general proof on that. Usually in most of the actual implementation they will all be equal m 1 and n 3 will always be equal r 1 will always equal to r 3 usually symmetricity will be always maintained in actual implementation because this is, but there may be cases where you do not want asymmetry asymmetric cases are possible. So, now let us come to the fourth condition symbols in each column should be distinct only one edge from each second stage switch to each third stage switch and an edge cannot carry signals from two sources and that also implies that at most r 2 symbols if you do not bother about the other statement when you combine you get min max all kind of combination independently at most r 2 symbols can be there distinctness only if the multicast is there condition number 1 and 3 will not be valid, but 2 and 4 will be strictly valid that is a final thing for multicasting 1 and 3 not valid, but 2 and 4 are valid that is only change you can have more than m 1 symbols in the row once it is multicasting and they may not be distinct you can repeat them. So, they will not they will be more than r 2 that actually what it means they can become more than r 2. So, as a consequence if I put everything in a figure I can simply write this thing as. So, in a row you will have minimum of m 1 r 2 symbols at most minimum of m 3 and r 2 symbols that is what it means actually. Now formally writing down the definition for a strictly non-blocking switch and really non-blocking switch I have to define the sets of the ports. So, let me give the definition and then state the statement. So, let t prime be subset of where t is nothing, but set of all transmitting terminals or input ports and there will be r prime this can be any subset where many possible values of t prime and r prime. So, r prime be subset of r where r is set of all receiving terminals and there is a state of the switch. Now state of the switch is nothing, but this that each element of t prime this basically t prime is all ports which are busy r prime set of all ports which are also busy. So, what will do is each element of t prime is connected to. So, connection how we write we write a legitimate multicast tree is there from each element of t prime to elements in r prime that is the way it is being written actually. So, that is only a formal language, but whatever I am saying otherwise is actually means the same thing r prime by a. Now this is legitimate all pulse material conditions are satisfied. So, if it is multicast even those conditions are satisfied. So, multicast, unicast everything is taken care of by this and usually number of members in r prime most of people will think the cardinality of r prime and t prime is going to be same the number of members in that set because one port is connected to one outgoing port, but in multicast this may not be true. So, cardinality may not be equal actually. So, that is why multicast tree actually which has been mentioned that is one important tree that each element in t prime is connected to r prime through a legitimate multicast tree. So, but r prime can be more. So, there should not be any element in r prime we should be left out. So, for that there is another thing that each element in r prime connected to n element in t prime. So, an element in t prime can be connected to multiple elements in r prime, but an element in r prime is always going to connected to only one element in t prime. So, you can only split in the forward direction while doing the you cannot combine actually combination is not permitted, but splitting of signal is permitted that is what it means and that is what the multicasting essentially actually also implies. Now, with this set definitions now let us define what is a strict sense non-blocking network then we will go to the proof of that. So, a strict sense non-blocking and element t which belongs to t minus t prime every incoming port that is what it means. So, symbols and everything looks very dangerous, but it is only means a free incoming ports any free incoming port is what it is implied by this t. t prime is a set of all busy ports t is set of all ports you remove these all busy ports this set of all free ports t is a member of that. t can establish now that is very important it cannot not only establish one to one connection the way I defined is earlier I have told you there was one input port there is one outgoing port both are free I should be able to set up the connection no that is not the only condition if this is a free input port there are many outgoing free ports for in this free ports for any set any subset of the free ports I should be able to set up a multicast tree that is the condition for strictly non-blocking not point to point connection. So, I am now deviating from whatever I have said earlier. So, this is more this will be a much more proper definition of strictly non-blocking network. So, I should be able to set establish a legitimate multicast tree any subset of r minus r prime that is more appropriate definition, but this is still not defined what is a strict sense strict sense now I am defining without changing previously established for and this should be true for all possible t prime, because t prime also can be all various different possibilities which exist for all we have to now qualify it t prime r prime all connection patterns between t prime and r prime this is the I think a complete definition this is a very much complete definition and instead of without changing if you say by rearranging all the existing connections from t prime to r prime. So, that all legitimate existing multicast trees are still maintained, but the connection patterns may be rearranged or may be redone again and then if you are able to do this establish a new legitimate multicast tree all the time then that is a rearrangeable non-blocking switch. And there is something called wide sense non-blocking I do not have a formal definition, but you can try writing it out I will give an example of wide sense non-blocking switch I think later sometime and that is the only example which I am aware of as of now. So, the clause theorem I can now state the clause theorem once I have given this definition. So, the clause theorem a clause network strict sense non-blocking necessary and sufficient only if means it is sufficient if means it is necessary condition. So, both we have to prove necessity as well as sufficiency both this I have not stated earlier I only told this happened this will be there, but is it sufficient condition I have not mentioned that. If number of second stage switches r 2 is greater than or equal to I think you will should be able to appreciate this new expression it is for S C matrix switch remember it is a symmetric is a generalized formulation and I can write in particular that is what I have told you earlier for symmetric network m 1 is equal to n 3 is equal to n if n only if r 2 is greater than or equal to 2 n minus 1. So, that is the definition now formally I can just prove it because I have now pulse matrix I have pulse validity conditions everything there with me. So, let us use that and quickly prove it. So, at least we should be able to close with the clause theorem today. So, proof I am going to write it down I could have only spoken it out, but that is fine. So, let there be an input from switch a who wants to get connected to an output of switch b. So, how you will set up the connection you take the pulse matrix I think I can remove this particular stuff and the figure that will be required. So, there is something which is common here where I have to put the entry right b does not matter or you can put b dash also it is ok I am just putting a b. So, how you will set up the connection is by you take any middle stage switch and that entry has to be put here any middle stage switch I have to put an entry without violating the pulse matrix conditions ok. So, if I am able to find out an element a free element of free symbol from the middle stage switch which can be put without violating the thing I can always set up the connection ok. Now, you have to only figure out that in all possible scenarios you should be able to build up this and you will actually figure out that what I am doing. So, let me just you can actually note it down I think it is better to write because this text is not there anywhere else. So, for the people who are will be looking at the video recording this will be important you have the text other people do not have. So, connection is made by putting a middle stage switch entry in a b cell of pulse matrix that is what has to be done. I am not worried about now duplicated entries because if there is a multicasting entries will be repeated in a row. So, now when I am going to write this statement I will use a word distinct before the entries. So, if they are duplication one is being repeated three times I will still call only one distinct entry. So, that becomes very important ok. So, the previous statements when I have written that distinct word you have to always figure out whenever I write distinct what it means because you are going to even handle for the multicast. So, precision is very important here there can be at most because there is one input in switch A which is free which you are trying to connect. So, worst case scenario m 1 input ports must be busy m 1 minus 1 input ports must be busy. So, that actually means there can be at most m 1 minus 1 I am going to now put a word distinct to take care of multicast scenario now. Earlier I would have said m 1 minus 1 symbols would have been there at most m minus 1 distinct symbols can be there at most because in multicasting the symbols will repeat. So, number of symbols is not important number of distinct symbols is what is important ok. So, I am going to put a word distinct already in row A. So, this is equal to number m 1 inputs minus 1 input which wants to get connected m 1 inputs minus 1 input which wants to get connected using the same logic I can say that column B can have at most m 3 minus 1 symbols and worst to worst case. What can happen is this m minus m 1 minus 1 and this m 3 minus 1 distinct symbols they will always be distinct actually does not matter because there will not be any repetition in the column 2 and 4 conditions for the pulse matrix are always valid irrespective of whether it is unicast or multicast ok. So, total number of symbols in worst case scenario no symbol in m 1 minus 1 in this set and in this set there is no symbol which is common. So, there is a distinctness they are all distinct. So, total number of symbols which are occupied are m 1 minus 1 plus m 3 minus 1. I think you can understand what I am doing because I am just writing whatever I have said earlier in the previous earlier lectures. So, these many total symbols are already occupied or busy if number of available symbols is going to be more than this you will be able to find one symbol one those the symbols which are not consumed here because if the number of available symbols are more than this there will be has to be some symbol which is available now and that symbol can be put in this cell and I can set up the connection and this can always be done this can always be done. Now, as far as the multicastry is concerned what actually probably instead of this I can further say that a has to connected to b and d somewhere. So, I have to put entries here same entry also should repeat here same entry should also repeat here. That is most important and then I can create a multicastry is for to catering for the multicast entries and symbols are same any symbol which is entered there that is what I am talking about otherwise a distinct entered symbol or distinct symbols is also fine not an issue this true even for multicastry closed theorem is true even for multicastry. So, this actually means R 2 has to be greater than m 1 plus n 3 minus 2 first wish to be strictly non-blocking which actually implies that R 2 has to be greater than equal to m 1 plus m 3 minus 1 I have put the equal to condition that is why I did one there and if it is symmetric case it becomes 2 m minus 1 because I am using m not n. So, it is 2 m minus 1. So, this is the same condition which I had told you earlier. So, you find out the worst case offset and then maximum overlap and based on that you find out and since this entry this new entry has not been used by neither in this column or in this column if you look at for D similarly you will be able to find out because D is also free in worst case offset you can find out always some entry which also can be put here. I need not put the same entry here and here remember if I am trying to set up a connection with D. So, whatever number of symbols which are used here and number of symbols which are used here worst case scenario will be m 1 minus 1 and n 3 minus 1 and whatever is missing that actually can be used here. I can even repeat the same symbol if it is available otherwise I will use some other symbol multicasting is enabled repetition is permit repetition actually means that. So, now let us that finishes with the clause theorem only thing the multicasting I will try to elaborate on that in the next lecture slightly more. I have only told about this as for unicast connection. So, let me also look into more into the multicast scenario specifically because that sufficiency and condition has not been still proven for multicast and then we will go for slip and do it theorem rearrange will be non block switch condition. If this condition currently is for unicast I have not told about anything about multicast, but this will be true even for multicast, but I have to formally prove it. So, I have to at least give an argument how it will be because you should actually ask a question m 1 minus 1 are occupied here there is exactly one extra entry which is free which you have used here already. These entries are there now question is it is possible that this particular entry which have been put here have already been used somewhere here, but then in that case the condition of distinctness between this and this will not be maintained there is something which is already common. So, that entry cannot be I have to just actually articulate that that articulation so far has not been done for multicast scenario. So, so far proof this strength only for unicast. So, we have to figure out whether this condition is going to be true for multicast or not. So, I also leave it to you because this is as of now till now whatever we have discussed it is only showing it for unicast multicast I have to give the case that it is always going to be possible. So, we will go further in the next class from here on.