<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Jacques_Laskar</id>
	<title>Jacques Laskar - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Jacques_Laskar"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Jacques_Laskar&amp;action=history"/>
	<updated>2026-05-26T17:54:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0-wmf.28</generator>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Jacques_Laskar&amp;diff=28096&amp;oldid=prev</id>
		<title>en&gt;Timflutre: improve description of his 1989 Nature paper and add ref</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Jacques_Laskar&amp;diff=28096&amp;oldid=prev"/>
		<updated>2013-09-03T06:00:50Z</updated>

		<summary type="html">&lt;p&gt;improve description of his 1989 Nature paper and add ref&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;matroid partitioning&amp;#039;&amp;#039;&amp;#039; problem is a problem arising in the mathematical study of [[matroid]]s and in the design and analysis of [[algorithm]]s, in which the goal is to partition the elements of a matroid into as few independent sets as possible. An example is the problem of computing the [[arboricity]] of an [[undirected graph]], the minimum number of [[tree (graph theory)|forests]] needed to cover all of its edges. Matroid partitioning may be solved in [[polynomial time]], given an [[matroid oracle|independence oracle]] for the matroid. It may be generalized to show that a [[matroid sum]] is itself a matroid, to provide an algorithm for computing [[Matroid rank|ranks]] and independent sets in matroid sums, and to compute the largest common independent set in the [[matroid intersection|intersection]] of two given matroids.&amp;lt;ref name=&amp;quot;fgt&amp;quot;&amp;gt;{{citation&lt;br /&gt;
 | last1 = Scheinerman | first1 = Edward R. | author1-link = Ed Scheinerman&lt;br /&gt;
 | last2 = Ullman | first2 = Daniel H.&lt;br /&gt;
 | contribution = 5. Fractional arboricity and matroid methods&lt;br /&gt;
 | isbn = 0-471-17864-0&lt;br /&gt;
 | location = New York&lt;br /&gt;
 | mr = 1481157&lt;br /&gt;
 | pages = 99–126&lt;br /&gt;
 | publisher = John Wiley &amp;amp; Sons Inc.&lt;br /&gt;
 | series = Wiley-Interscience Series in Discrete Mathematics and Optimization&lt;br /&gt;
 | title = Fractional graph theory&lt;br /&gt;
 | year = 1997}}.&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
[[File:K44 arboricity.svg|thumb|A partition of the edges of the [[complete bipartite graph]] &amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;4,4&amp;lt;/sub&amp;gt; into three forests, showing that it has arboricity at most three]]&lt;br /&gt;
The [[arboricity]] of an [[undirected graph]] is the minimum number of [[tree (graph theory)|forests]] into which its edges can be partitioned, or equivalently (by adding overlapping edges to each forest as necessary) the minimum number of [[spanning tree|spanning forests]] whose union is the whole graph. A formula proved by [[Crispin Nash-Williams]] characterizes the arboricity exactly: it is the maximum, over all subgraphs &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; of the given graph &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt;, of the quantity &amp;lt;math&amp;gt;\left\lceil\frac{|E(H)|}{|V(H)|-1}\right\rceil&amp;lt;/math&amp;gt;.&amp;lt;ref&amp;gt;{{citation&lt;br /&gt;
 | last = Nash-Williams | first = C. St. J. A. | author-link = Crispin St. J. A. Nash-Williams&lt;br /&gt;
 | doi = 10.1112/jlms/s1-39.1.12&lt;br /&gt;
 | issue = 1&lt;br /&gt;
 | journal = [[Journal of the London Mathematical Society]]&lt;br /&gt;
 | mr = 0161333&lt;br /&gt;
 | page = 12&lt;br /&gt;
 | title = Decomposition of finite graphs into forests&lt;br /&gt;
 | volume = 39&lt;br /&gt;
 | year = 1964}}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The forests of a graph form the independent sets of the associated [[graphic matroid]], and the quantity &amp;lt;math&amp;gt;|V(H)|-1&amp;lt;/math&amp;gt; appearing in Nash-Williams&amp;#039; formula is the rank of the graphic matroid of &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt;, the maximum size of one of its independent sets. Thus, the problem of determining the arboricity of a graph is exactly the matroid partitioning problem for the graphic matroid. The fact that the &amp;lt;math&amp;gt;|E(H)|&amp;lt;/math&amp;gt; elements of this matroid cannot be partitioned into fewer than &amp;lt;math&amp;gt;\frac{|E(H)|}{|V(H)|-1}&amp;lt;/math&amp;gt; independent subsets is then just an application of the [[pigeonhole principle]] saying that, if &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; items are partitioned into sets of size at most &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, then at least &amp;lt;math&amp;gt;x/y&amp;lt;/math&amp;gt; sets are needed. The harder direction of Nash-Williams&amp;#039; formula, which can be generalized to all matroids, is the proof that a partition of this size always exists.&amp;lt;ref name=&amp;quot;fgt&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Formula for partition size==&lt;br /&gt;
To generalize Nash-Williams&amp;#039; formula, one may replace &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; by a matroid &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, and the subgraph &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; of &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; with a [[matroid minor|restriction]] &amp;lt;math&amp;gt;M|S&amp;lt;/math&amp;gt; of &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; to a subset &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; of its elements. The number of edges of the subgraph &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; becomes, in this generalization, the cardinality &amp;lt;math&amp;gt;|S|&amp;lt;/math&amp;gt; of the selected subset, and the formula &amp;lt;math&amp;gt;|V(H)|-1&amp;lt;/math&amp;gt; for the maximum size of a forest in &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; becomes the rank &amp;lt;math&amp;gt;r(S)&amp;lt;/math&amp;gt;. Thus, the minimum number of independent sets in a partition of the given matroid &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; should be given by the formula&lt;br /&gt;
:&amp;lt;math&amp;gt;k(M)=\max_S \left\lceil\frac{|S|}{r(S)}\right\rceil,&amp;lt;/math&amp;gt;&lt;br /&gt;
which is valid for all matroids and was given an algorithmic proof by {{harvtxt|Edmonds|1965}}.&amp;lt;ref name=&amp;quot;fgt&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;e65&amp;quot;&amp;gt;{{citation&lt;br /&gt;
 | last = Edmonds | first = Jack | author-link = Jack Edmonds&lt;br /&gt;
 | journal = Journal of Research of the National Bureau of Standards&lt;br /&gt;
 | mr = 0190025&lt;br /&gt;
 | pages = 67–72&lt;br /&gt;
 | title = Minimum partition of a matroid into independent subsets&lt;br /&gt;
 | url = http://cdm16009.contentdm.oclc.org/cdm/ref/collection/p13011coll6/id/66398&lt;br /&gt;
 | volume = 69B&lt;br /&gt;
 | year = 1965}}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Algorithms==&lt;br /&gt;
The first algorithm for matroid partitioning was given by {{harvtxt|Edmonds|1965}}.&amp;lt;ref name=&amp;quot;e65&amp;quot;/&amp;gt; It is an incremental augmenting-path algorithm that considers the elements of the matroid one by one, in an arbitrary order, maintaining at each step of the algorithm an optimal partition for the elements that have been considered so far. At each step, when considering an element &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; that has not yet been placed into a partition, the algorithm constructs a [[directed graph]] that has as its nodes the elements that have already been partitioned, the new element &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, and a special element &amp;lt;math&amp;gt;\bot_i&amp;lt;/math&amp;gt; for each of the &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; independent sets in the current partition. It then forms a directed graph &amp;lt;math&amp;gt;G_x&amp;lt;/math&amp;gt; on this node set, with a directed arc &amp;lt;math&amp;gt;\bot_i\rightarrow y&amp;lt;/math&amp;gt; for each matroid element &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; that can be added to partition set &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; without causing it to become dependent, and with a directed arc &amp;lt;math&amp;gt;z\rightarrow y&amp;lt;/math&amp;gt; for each pair of matroid elements &amp;lt;math&amp;gt;(y,z)&amp;lt;/math&amp;gt; such that removing &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; from its partition and replacing it with &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; forms another independent set.&amp;lt;ref name=&amp;quot;fgt&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;e65&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this graph contains a [[directed path]] from an element &amp;lt;math&amp;gt;\bot_i&amp;lt;/math&amp;gt; to the newly considered element &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, then the shortest such path (or more generally any path that does not have any shortcutting edges) describes a sequence of changes that can be made simultaneously to the partition sets in order to form a new partition, with the same number of sets, that also includes &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;. In this case, the algorithm performs these changes and continues. If, on the other hand, no such path exists, then let &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; consist of the matroid elements from which &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; is [[reachability|reachable]] in &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;. Each set in the current partition must be a maximal independent set in &amp;lt;math&amp;gt;M|S&amp;lt;/math&amp;gt;, for if some element &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; of &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; could be added to partition set &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; in the restriction, then either there would exist an arc &amp;lt;math&amp;gt;\bot_i\rightarrow y&amp;lt;/math&amp;gt; (if partition set &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; is non-maximal in the full matroid &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;) or an arc &amp;lt;math&amp;gt;z\rightarrow y&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;z\notin S&amp;lt;/math&amp;gt; (if the partition set is non-maximal in &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; but maximal in the full matroid). In either case the existence of this arc contradicts the assumed construction of the set &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;, and the contradiction proves that each partition set is maximal. Thus, by the easy direction of the matroid partitioning formula, the number of sets needed to partition &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; is at least&lt;br /&gt;
:&amp;lt;math&amp;gt;\left\lceil\frac{|S|}{r(S)}\right\rceil=\left\lceil\frac{kr(S)+1}{r(S)}\right\rceil=k+1&amp;lt;/math&amp;gt;,&lt;br /&gt;
so in this case the algorithm may find an optimal partition by placing &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; into its own new independent set and leaving the other independent sets unchanged.&amp;lt;ref name=&amp;quot;fgt&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;e65&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The overall algorithm, then, considers  each element &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; of the given matroid in turn, constructs the graph &amp;lt;math&amp;gt;G_x&amp;lt;/math&amp;gt;, tests which nodes can reach &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, and uses this information to update the current partition so that it includes &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;. At each step, the partition of the elements considered so far is optimal, so when the algorithm terminates it will have found an optimal partition for the whole matroid.&lt;br /&gt;
Proving that this algorithm is correct requires showing that a shorcut-free path in the auxiliary graph always describes a sequence of operations that, when performed simultaneously, correctly preserves the independence of the sets in the partition; a proof of this fact was given by Edmonds.&lt;br /&gt;
Because the algorithm only increases the number of sets in the partition when the matroid partitioning formula shows that a larger number is needed, the correctness of this algorithm also shows the correctness of the formula.&amp;lt;ref name=&amp;quot;fgt&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;e65&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this algorithm depends only on the existence of an [[matroid oracle|independence oracle]] for its correctness, faster algorithms can be found in many cases by taking advantage of the more specialized structure of specific types of matroids (such as [[graphic matroid]]s) from which a particular partitioning problem has been defined.&amp;lt;ref name=&amp;quot;gw92&amp;quot;&amp;gt;{{citation&lt;br /&gt;
 | last1 = Gabow | first1 = Harold N.&lt;br /&gt;
 | last2 = Westermann | first2 = Herbert H.&lt;br /&gt;
 | doi = 10.1007/BF01758774&lt;br /&gt;
 | issue = 5-6&lt;br /&gt;
 | journal = Algorithmica&lt;br /&gt;
 | mr = 1154585&lt;br /&gt;
 | pages = 465–497&lt;br /&gt;
 | title = Forests, frames, and games: algorithms for matroid sums and applications&lt;br /&gt;
 | volume = 7&lt;br /&gt;
 | year = 1992}}.&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Related problems==&lt;br /&gt;
A [[matroid sum]] &amp;lt;math&amp;gt;\sum_i M_i&amp;lt;/math&amp;gt; (where each &amp;lt;math&amp;gt;M_i&amp;lt;/math&amp;gt; is a matroid) is itself a matroid, having as its elements the union of the elements of the summands. A set is independent in the sum if it can be partitioned into sets that are independent within each summand. The matroid partitioning algorithm generalizes to the problem of testing whether a set is independent in a matroid sum, and its correctness can be used to prove that a matroid sum is necessarily a matroid.&amp;lt;ref name=&amp;quot;e65&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;gw92&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [[matroid intersection]] problem of finding the largest set that is independent in two matroids &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;M_2&amp;lt;/math&amp;gt; may be solved by turning it into an equivalent matroid sum problem: if &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; is a basis of the sum &amp;lt;math&amp;gt;M_1+M_2^*&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;M_2^*&amp;lt;/math&amp;gt; is the dual of &amp;lt;math&amp;gt;M_2&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; must have full rank in &amp;lt;math&amp;gt;M_2^*&amp;lt;/math&amp;gt; and removing a maximal independent set of &amp;lt;math&amp;gt;M_2^*&amp;lt;/math&amp;gt; from &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; leaves a maximum intersection.&amp;lt;ref&amp;gt;{{citation&lt;br /&gt;
 | last = Edmonds | first = Jack&lt;br /&gt;
 | contribution = Submodular functions, matroids, and certain polyhedra&lt;br /&gt;
 | location = New York&lt;br /&gt;
 | mr = 0270945&lt;br /&gt;
 | pages = 69–87&lt;br /&gt;
 | publisher = Gordon and Breach&lt;br /&gt;
 | title = Combinatorial Structures and their Applications (Proc. Calgary Internat. Conf., Calgary, Alta., 1969)&lt;br /&gt;
 | year = 1970}}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Matroid partitioning is a form of [[set cover]] problem, and the corresponding [[set packing]] problem (find a maximum number of disjoint spanning sets within a given matroid) is also of interest. It can be solved by algorithms similar to those for matroid partitioning.&amp;lt;ref name=&amp;quot;gw92&amp;quot;/&amp;gt; The fractional set packing and set covering problems associated with a matroid (that is, assign a weight to each independent set in such a way that for every element the total weight of the sets containing it is at most one or at least one, maximizing or minimizing the total weight of all the sets, respectively) can also be solved in polynomial time using matroid partitioning methods.&amp;lt;ref name=&amp;quot;fgt&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As well as its use in calculating the arboricity of a graph, matroid partitioning can be used with other matroids to find a subgraph of a given graph whose average [[degree (graph theory)|degree]] is maximum, and to find the edge toughness of a graph (a variant of [[graph toughness]] involving the deletion of edges in place of vertices).&amp;lt;ref name=&amp;quot;fgt&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Matroid theory]]&lt;/div&gt;</summary>
		<author><name>en&gt;Timflutre</name></author>
	</entry>
</feed>