 Now next I would like to invite the 4C group to start with the Presentation under the mentorship of Kiran ma'am. The first topic is the optimization toolbox in Sylab Using symphony library. So friends give a huge round of applause for them. Good evening everybody Our project is titled Sylab Optimization Toolbox using symphony I'm Keur Joshi and my team mates are Aishwarya and Sai Kiran So this is the roadmap for our presentation. First we'll be talking about our aim Then we'll talk about the two major softwares that we use Sylab and symphony and then we'll talk about how we made the interface So the aim of a so linear programming is basically We have to maximize or minimize an objective function under several constraints which are of a linear nature So this is a basic equation of a linear constraint. We'll be giving a demo in which we will have two such problems that we'll solve using our toolbox and The so there is basic linear programming and then you can also add the additional constraint that some variables have to be how to take integer values if if you do this then the problem becomes much more difficult and The aim of our toolbox was to provide this functionality for solving such problems in Sylab Sylab is an open-source alternative to MATLAB which is its huge advantage and Sylab has some basic functionality which you can extend through various toolboxes that that you can download from the Sylab website and if you want you can create your own toolboxes using cc plus plus Java or Fortran and They can be interfaced with Sylab using the Sylab API now I sure I will talk about symphony library Good evening everyone. I'm Aishwarya. So why did we go for symphony symphony is an open source Callable library for solving mixed integer linear programming problems symphony is actually written in C So we interface Through we interface through C to connect. I mean to interface with Sylab So that we can execute functions in symphony from Sylab It's a it's a command line interactive solver just like your python and python so where you can Execute functions from the command line It supports multiple objectives and warm starts warm starts are your Part apart where when you want to execute problems you can Resume at a different point. So symphony has can store your Particular state of your problems and you can resume it from another from another time I mean from another phase and Symphony solver is highly customizable So you can you can fix time limits for your problems if for a for example if your problem takes 10 hours to solve Then you can fix it for five hours and get the optimum solution local optimum solution for that five hours and You can use open mp to speed up your solver using parallel processing This is generally used in situations where you will encounter shared environments using parallel virtual machines so you can use open mp at that time and Now we'll come to the interface part what our project we have done We have interface Sylab with symphony and the basic procedure is you are going to call symphony functions from Sylab The data that is received from for Sylab is converted into the form that symphony needs and And it is given to symphony to solve the problem and the data returned from symphony is converted again to the form that Can be visible from Sylab and it is then printed on the Sylab console and Psychon will elaborate on the parts of the interface Good evening everyone so in Sylab we can find Sylab API and in interface we have created There are two major files that we that are very important one is builder.se which is a Sylab script and we will give whatever the C programs that contain To this build up script and it will Compile and build a shared library. So which has a contact with symphony So we will load that share library into Sylab while when we want to solve a problem So as I have mentioned it contains the names of the functions and list of the source file to be compiled and another one is globals.cpp actually symphony provides a set of functions which has Which has to work on a set of a problem only one problem and it should be done in a single environment So to preserve that environment over many functions We need to maintain some global pointer that points to a particular environment Environment and all those functions will use that environment to work on a single problem and Next symphony callable library. So actually as I mentioned symphony has So many functions to solve mixed integer linear programming problems so to use Them very clearly and to understand them. They are categorized under different headings and they are primary interface functions In which we can have functions like Create an environment in symphony and to close the same environment and to give a problem to symphony and Ask it to solve. So these kind of problems will come under primary interface functions and and And parameter query and modification function actually you can have so many parameters that will restrict the solver status so Like time state time limit to solve the problem and node limits how many nodes has to be created so these kind of parameters and Using these functions this primary parameter query and modification function You can get the value inside those parameters and you can set those parameters to put your values and Solver status query functions So when you load the problem into symphony and after solving you might want to know how the problem has been solved and Whether an optimal solution for that has been found or it is it is failed for some reason So you can use these set of functions to know the status of solver after solving a problem and data query functions So when you loaded the problem and after solving it you can retrieve the same data regarding problem So how many constraints it says what are the coefficient matrix and object to? Coefficient matrix so data modification function and using these functions. You can change of problems or data actually the constraint matrix are The coefficients of object to function and you can change them so summary Symphony has been used to solve for LP and MLP problems in this case and this toolbox can be extended to solve nonlinear problems in Sylab using some other library and We can add support for multi-objective problems and warm starts actually these two are available in symphony But we didn't implement at that for now Okay, now care will show the demo Okay, so I'll be showing two problems the first problem Both of them are simple problems The first problem is maximize X plus Y under the constraints that X and Y are positive both of them have to be integers and X plus 2 Y is less than or equal to 7 and 2 X plus Y is less than or equal to 6.5 So this is the input that will be given to Sylab So we are loading the problem now and now we are solving it So it has solved and it is saying that an optimal solution has been found and now we'll get the results and so it is saying that this problem this Optimal value is reached when both the variables have value of 2 and When both of them are set to 2 the optimal value of the objective function is 4 So this was the first problem Second slightly more complex problem is maximize 20 X plus 10 Y plus 15 Z under the constraints All of them are positive all of them are integers and these four linear constraints And this will be the input we are giving to Sylab so we have loaded the problem and The optimal optimal solution is when X is 0 Y is 25 and Z is 1 and When the variables are set to these values the optimal value of the objective is 265 Thank you for do you have any questions? Yes, we would like to thank We would like to thank thank professor DB Patak Yeah, I should a professor Ashutosh Mahajan for their help and we would also like to thank our mentors and Condenser Thank you