You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

529 lines
173 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{
"cells": [
{
"cell_type": "markdown",
"id": "346a1232",
"metadata": {},
"source": [
"L = [1,4,\"toto\"] #création dune liste avec 3 éléments\n",
"L.append(2) #ajout de 2 en fin de L\n",
"L.insert(3,\"x\") #insère \"x\" en 4e position de L\n",
"print(len(L)) #affichage de la longueur de L\n",
"print(L[1]) #affichage du deuxième élément de L\n",
"print(L[-11]) #affichage du dernier élément de L\n",
"if 3 in L: #test si 3 est dans L\n",
" for a in L: #boucle sur les éléments de L\n",
" L.remove(\"y\") #supprime toutes les occurences de \"y\" dans L\n",
" L.pop(2) #supprime L[2]\n",
" L.clear() #supprime tous les éléments de L"
]
},
{
"cell_type": "markdown",
"id": "23195475",
"metadata": {},
"source": [
"dico = {2 : \"toto\", 5: \"titi\", \"x\": \"tata\"} #création dun dictionnaire\n",
"dico = {} #création dun dictionnaire vide\n",
"dico[5] = \"tutu\" #mise à jour de lélément de clé 5\n",
"dico[1] = \"tete\" #ajout dun élément de clé 1\n",
"dico.keys() #liste des clés\n",
"dico.values() #liste des valeurs\n",
"dico.pop(2) #suppresion du couple clé/valeur de clé 2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "cce2bff4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Maximization:\n",
" x_0 + x_1 + 3.0 x_2 \n",
"\n",
"Constraints:\n",
" x_0 + 2.0 x_1 <= 4.0\n",
" 8.0 <= - x_1 + 5.0 x_2 <= 8.0\n",
"Variables:\n",
" x_0 is a continuous variable (min=0.0, max=+oo)\n",
" x_1 is a continuous variable (min=0.0, max=+oo)\n",
" x_2 is a continuous variable (min=0.0, max=+oo)\n",
"8.8 {'x': 4.000000000000001, 'y': 0.0, 'z': 1.6}\n"
]
}
],
"source": [
"p = MixedIntegerLinearProgram(maximization=True)#on initialise un PL de maximisation.\n",
"V = p.new_variable(real=True, nonnegative=True) #V est un dictionnaire qui contiendra les variables (ici positives ou nulles) du PL\n",
"\n",
"x, y, z = V[\"x\"], V[\"y\"], V[\"z\"] #on initialise des variables dans le dictionnaire. Cest optionnel, on peut aussi manipuler directement V[0], V[\"toto\"] etc.\n",
"\n",
"p.set_objective( x + y + 3*z ) #fonction objectif\n",
"#p.set_objective( V[\"x\"] + V[\"y\"] + 3*V[\"z\"] ) #version équivalente\n",
"p.add_constraint( x + 2*y <= 4 ) #contrainte 1\n",
"p.add_constraint( 5*z - y == 8 ) #contrainte 2\n",
"p.show() #affiche toutes les variables et contraintes du PL\n",
"\n",
"opt = p.solve() #résoudre le PL\n",
"print(opt, p.get_values(V)) #afficher la valeur optimale du PL et les valeurs des variables"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "4eafba80",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Minimization:\n",
" 3.1 x_0 + 2.1 x_1 + 1.6 x_2 + 8.7 x_3 + 3.8 x_4 \n",
"\n",
"Constraints:\n",
" -5.0 x_0 - 10.0 x_1 - 7.8 x_2 - 25.0 x_3 - 13.0 x_4 <= -56.0\n",
" -478.0 x_0 - 70.0 x_1 - 20.0 x_2 - 4.0 x_3 - 65.0 x_4 <= -110.0\n",
" -3.0 x_0 - 12.0 x_1 - 2.4 x_2 - 10.0 x_3 - 8.0 x_4 <= -2.0\n",
" - x_0 <= 0.0\n",
" - x_1 <= 0.0\n",
" - x_2 <= 0.0\n",
" - x_3 <= 0.0\n",
" - x_4 <= 0.0\n",
"Variables:\n",
" x_0 is a continuous variable (min=0.0, max=+oo)\n",
" x_1 is a continuous variable (min=0.0, max=+oo)\n",
" x_2 is a continuous variable (min=0.0, max=+oo)\n",
" x_3 is a continuous variable (min=0.0, max=+oo)\n",
" x_4 is a continuous variable (min=0.0, max=+oo)\n",
"11.487179487179489 {'a': 0.0, 'b': 0.0, 'c': 7.179487179487181, 'd': 0.0, 'e': 0.0}\n"
]
}
],
"source": [
"p = MixedIntegerLinearProgram(maximization=False)#on initialise un PL de maximisation.\n",
"V = p.new_variable(real=True, nonnegative=True) #V est un dictionnaire qui contiendra les variables (ici positives ou nulles) du PL\n",
"\n",
"a, b, c, d, e = V[\"a\"], V[\"b\"], V[\"c\"], V[\"d\"], V[\"e\"] #on initialise des variables dans le dictionnaire. Cest optionnel, on peut aussi manipuler directement V[0], V[\"toto\"] etc.\n",
"\n",
"p.set_objective( 3.1*a + 2.1*b + 1.6*c + 8.7*d + 3.8*e ) #fonction objectif\n",
"#p.set_objective( V[\"x\"] + V[\"y\"] + 3*V[\"z\"] ) #version équivalente\n",
"p.add_constraint( 5*a + 10*b + 7.8*c + 25*d + 13*e >= 56 ) \n",
"p.add_constraint( 478*a + 70*b + 20*c + 4*d + 65*e >= 110 ) \n",
"p.add_constraint( 3*a + 12*b + 2.4*c + 10*d + 8*e >= 2 ) \n",
"p.add_constraint( a >= 0 ) # pas obligé mets ces contraintes par defaut dans nonnegative=True\n",
"p.add_constraint( b >= 0 )\n",
"p.add_constraint( c >= 0 )\n",
"p.add_constraint( d >= 0 )\n",
"p.add_constraint( e >= 0 )\n",
"p.show() #affiche toutes les variables et contraintes du PL\n",
"\n",
"opt = p.solve() #résoudre le PL\n",
"print(opt, p.get_values(V)) #afficher la valeur optimale du PL et les valeurs des variables"
]
},
{
"cell_type": "markdown",
"id": "db8a5b66",
"metadata": {},
"source": [
"## Exercice 2\n",
"∑ de ce qui rentre = ∑ de ce qui sort \n",
"mettre aussi des contraintes /3 par exemple pour limiter le flot"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "f7d3f397",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a b 6\n",
"[]\n",
"[]\n",
"[]\n",
"[]\n",
"[]\n",
"['b']\n",
"[]\n",
"['b']\n",
"[]\n",
"[('a', 'b', 6)]\n",
"[]\n",
"['a']\n",
"['a']\n",
"[('a', 'b', 6)]\n",
"[]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 6 graphics primitives"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G = DiGraph() #Crée un graphe orienté vide\n",
"G.add_vertex(name=\"toto\") #ajoute un sommet nommé \"toto\"\n",
"G.add_vertex(name=\"a\")\n",
"G.add_vertex(name=\"b\")\n",
"G.add_edge(\"a\",\"b\",6) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"for e in G.edges(): #boucle sur la liste des arcs de G\n",
" print(e[0],e[1],e[2]) #affiche lorigine, la destination, et létiquette de larc e\n",
"for v in G.vertices(): #boucle sur la liste des sommets de G\n",
" print(G.neighbors_out(v)) #affiche la liste des voisins sortants de v\n",
" print(G.neighbors_in(v)) #affiche la liste des voisins entrants de v\n",
" print(G.neighbors(v)) #affiche la liste de tous les voisins de v\n",
" print(G.incoming_edges(v)) #affiche la liste des arcs entrant dans v\n",
" print(G.outgoing_edges(v)) #affiche la liste des arcs sortant de v\n",
"G.show(edge_labels=True) #dessine le graphe en affichant les étiquettes"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "def377a5",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 15 graphics primitives"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G = DiGraph() #Crée un graphe orienté vide\n",
"G.add_vertex(name=\"s\") #ajoute un sommet nommé \"toto\"\n",
"G.add_vertex(name=\"x\")\n",
"G.add_vertex(name=\"y\")\n",
"G.add_vertex(name=\"d\")\n",
"G.add_edge(\"s\",\"x\",3) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"G.add_edge(\"s\",\"y\",2) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"G.add_edge(\"x\",\"d\",1) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"G.add_edge(\"x\",\"y\",1) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"G.add_edge(\"y\",\"d\",3) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"\n",
"G.show(edge_labels=True) #dessine le graphe en affichant les étiquettes"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "2375c351",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Maximization:\n",
" x_0 + x_1 \n",
"\n",
"Constraints:\n",
" 0.0 <= x_0 - x_2 - x_3 <= 0.0\n",
" 0.0 <= x_1 + x_2 - x_4 <= 0.0\n",
" x_0 <= 3.0\n",
" x_1 <= 2.0\n",
" x_2 <= 1.0\n",
" x_3 <= 1.0\n",
" x_4 <= 3.0\n",
"Variables:\n",
" x_0 is a continuous variable (min=0.0, max=+oo)\n",
" x_1 is a continuous variable (min=0.0, max=+oo)\n",
" x_2 is a continuous variable (min=0.0, max=+oo)\n",
" x_3 is a continuous variable (min=0.0, max=+oo)\n",
" x_4 is a continuous variable (min=0.0, max=+oo)\n",
"4.0 {'sx': 2.0, 'sy': 2.0, 'xy': 1.0, 'xd': 1.0, 'yd': 3.0}\n"
]
}
],
"source": [
"p = MixedIntegerLinearProgram(maximization=True)#on initialise un PL de maximisation.\n",
"V = p.new_variable(real=True, nonnegative=True) #V est un dictionnaire qui contiendra les variables (ici positives ou nulles) du PL\n",
"\n",
"sx, sy, xy, xd, yd = V[\"sx\"], V[\"sy\"], V[\"xy\"], V[\"xd\"], V[\"yd\"] #on initialise des variables dans le dictionnaire. Cest optionnel, on peut aussi manipuler directement V[0], V[\"toto\"] etc.\n",
"\n",
"p.set_objective( sx + sy ) #fonction objectif\n",
"p.add_constraint( sx - xy - xd == 0 ) \n",
"p.add_constraint( sy + xy - yd == 0 )\n",
"p.add_constraint( sx <= 3 ) \n",
"p.add_constraint( sy <= 2 )\n",
"p.add_constraint( xy <= 1 )\n",
"p.add_constraint( xd <= 1 )\n",
"p.add_constraint( yd <= 3 )\n",
"\n",
"p.show() #affiche toutes les variables et contraintes du PL\n",
"\n",
"opt = p.solve() #résoudre le PL\n",
"print(opt, p.get_values(V)) #afficher la valeur optimale du PL et les valeurs des variables"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "99b39409",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 42 graphics primitives"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G = DiGraph()\n",
"G.add_vertex(name=\"Elphy\")\n",
"G.add_vertex(name=\"Arriba\")\n",
"G.add_vertex(name=\"Carla\")\n",
"G.add_vertex(name=\"Benvenuto\")\n",
"G.add_vertex(name=\"Diamond\")\n",
"G.add_vertex(name=\"Estoril\")\n",
"G.add_vertex(name=\"Fluente\")\n",
"G.add_vertex(name=\"Gigolino\")\n",
"G.add_vertex(name=\"Santenago\")\n",
"G.add_edge(\"Elphy\",\"Arriba\",5)\n",
"G.add_edge(\"Elphy\",\"Carla\",10)\n",
"G.add_edge(\"Elphy\",\"Benvenuto\",8)\n",
"G.add_edge(\"Carla\",\"Estoril\",8)\n",
"G.add_edge(\"Carla\",\"Diamond\",2)\n",
"G.add_edge(\"Carla\",\"Benvenuto\",1)\n",
"G.add_edge(\"Arriba\",\"Estoril\",7)\n",
"G.add_edge(\"Arriba\",\"Diamond\",10)\n",
"G.add_edge(\"Benvenuto\",\"Diamond\",2)\n",
"G.add_edge(\"Benvenuto\",\"Fluente\",4)\n",
"G.add_edge(\"Estoril\",\"Gigolino\",7)\n",
"G.add_edge(\"Diamond\",\"Gigolino\",4)\n",
"G.add_edge(\"Diamond\",\"Santenago\",6)\n",
"G.add_edge(\"Diamond\",\"Fluente\",2)\n",
"G.add_edge(\"Gigolino\",\"Santenago\",10)\n",
"G.add_edge(\"Fluente\",\"Santenago\",6)\n",
"G.show(edge_labels=True) #affichage"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "51fca3af",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 15 graphics primitives"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimal Flow Value: 4.0\n"
]
}
],
"source": [
"from sage.numerical.mip import MixedIntegerLinearProgram\n",
"\n",
"def flot(G, s, t):\n",
" # Create a linear program\n",
" p = MixedIntegerLinearProgram(maximization=True)\n",
"\n",
" # Create variables for each edge\n",
" V = p.new_variable(real=True, nonnegative=True)\n",
"\n",
" # Set the objective function (maximize flow from s to t)\n",
" p.set_objective(sum(V[e] for e in G.outgoing_edges(s)))\n",
"\n",
" # Add flow conservation constraints\n",
" for v in G.vertices():\n",
" if v != s and v != t:\n",
" p.add_constraint(sum(V[e] for e in G.incoming_edges(v)) == sum(V[e] for e in G.outgoing_edges(v)))\n",
"\n",
" # Add capacity constraints\n",
" for edge in G.edges():\n",
" capacity = G.edge_label(edge[0], edge[1])\n",
" p.add_constraint(V[edge] <= capacity)\n",
"\n",
" # Solve the linear program\n",
" optimal_value = p.solve()\n",
"\n",
" # Create a new graph with flow values as labels\n",
" labeled_graph = G.copy()\n",
" for edge in G.edges():\n",
" labeled_graph.set_edge_label(edge[0], edge[1], p.get_values(V)[edge])\n",
"\n",
" return labeled_graph, optimal_value\n",
"\n",
"# Example usage:\n",
"G = DiGraph()\n",
"G.add_vertices([\"s\", \"x\", \"y\", \"d\"])\n",
"G.add_edges([(\"s\", \"x\", 3), (\"s\", \"y\", 2), (\"x\", \"d\", 1), (\"x\", \"y\", 1), (\"y\", \"d\", 3)])\n",
"\n",
"s = \"s\"\n",
"t = \"d\"\n",
"\n",
"result_graph, optimal_flow = flot(G, s, t)\n",
"\n",
"# Display the labeled graph and optimal flow value\n",
"result_graph.show(edge_labels=True)\n",
"print(\"Optimal Flow Value:\", optimal_flow)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "98537013",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 15 graphics primitives"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Valeur d'entré sortie : 4.0\n"
]
}
],
"source": [
"G = DiGraph() #Crée un graphe orienté vide\n",
"G.add_vertex(name=\"s\") #ajoute un sommet nommé \"toto\"\n",
"G.add_vertex(name=\"x\")\n",
"G.add_vertex(name=\"y\")\n",
"G.add_vertex(name=\"d\")\n",
"G.add_edge(\"s\",\"x\",3) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"G.add_edge(\"s\",\"y\",2) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"G.add_edge(\"x\",\"d\",1) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"G.add_edge(\"x\",\"y\",1) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"G.add_edge(\"y\",\"d\",3) #Ajoute larc \"a\"->\"b\" avec létiquette (label) 6\n",
"\n",
"s = \"s\"\n",
"t = \"d\"\n",
"\n",
"result_graph, optimal_flow = flot(G, s, t)\n",
"\n",
"# Display the labeled graph and optimal flow value\n",
"result_graph.show(edge_labels=True)\n",
"print(\"Valeur d'entré sortie :\", optimal_flow)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "361134ba",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 42 graphics primitives"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Valeur d'entré sortie : 20.0\n"
]
}
],
"source": [
"G = DiGraph()\n",
"G.add_vertex(name=\"Elphy\")\n",
"G.add_vertex(name=\"Arriba\")\n",
"G.add_vertex(name=\"Carla\")\n",
"G.add_vertex(name=\"Benvenuto\")\n",
"G.add_vertex(name=\"Diamond\")\n",
"G.add_vertex(name=\"Estoril\")\n",
"G.add_vertex(name=\"Fluente\")\n",
"G.add_vertex(name=\"Gigolino\")\n",
"G.add_vertex(name=\"Santenago\")\n",
"G.add_edge(\"Elphy\",\"Arriba\",5)\n",
"G.add_edge(\"Elphy\",\"Carla\",10)\n",
"G.add_edge(\"Elphy\",\"Benvenuto\",8)\n",
"G.add_edge(\"Carla\",\"Estoril\",8)\n",
"G.add_edge(\"Carla\",\"Diamond\",2)\n",
"G.add_edge(\"Carla\",\"Benvenuto\",1)\n",
"G.add_edge(\"Arriba\",\"Estoril\",7)\n",
"G.add_edge(\"Arriba\",\"Diamond\",10)\n",
"G.add_edge(\"Benvenuto\",\"Diamond\",2)\n",
"G.add_edge(\"Benvenuto\",\"Fluente\",4)\n",
"G.add_edge(\"Estoril\",\"Gigolino\",7)\n",
"G.add_edge(\"Diamond\",\"Gigolino\",4)\n",
"G.add_edge(\"Diamond\",\"Santenago\",6)\n",
"G.add_edge(\"Diamond\",\"Fluente\",2)\n",
"G.add_edge(\"Gigolino\",\"Santenago\",10)\n",
"G.add_edge(\"Fluente\",\"Santenago\",6)\n",
"\n",
"s = \"Elphy\"\n",
"t = \"Santenago\"\n",
"\n",
"result_graph, optimal_flow = flot(G, s, t)\n",
"\n",
"# Display the labeled graph and optimal flow value\n",
"result_graph.show(edge_labels=True)\n",
"print(\"Valeur d'entré sortie :\", optimal_flow)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 10.1",
"language": "sage",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}