Skip to content

Commit

Permalink
added nips submission
Browse files Browse the repository at this point in the history
  • Loading branch information
jovo committed Jun 1, 2013
1 parent fb14204 commit f04e84c
Show file tree
Hide file tree
Showing 45 changed files with 11,232 additions and 0 deletions.
Binary file added PAMI3/FastApproximateQAP.ps
Binary file not shown.
1 change: 1 addition & 0 deletions PAMI3/abstract.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Graph matching (GM)-the process of finding an optimal permutation of the vertices of one graph to minimize adjacency disagreements with the vertices of another-is rapidly becoming an increasingly important computational problem, arising in fields ranging from machine vision to neuroscience. Because GM is NP-hard, exact algorithms are unsuitable for today's large graphs (with > 1000 vertices). Approximate algorithms necessarily employ a accuracy/efficiency trade-off. We developed a fast approximate quadratic assignment algorithm (FAQ). FAQ scales cubicly with the number of vertices, similar to other approximate GM algorithms. Our formulation, however, achieves a lower objective function value than all previously proposed algorithms on over 93% of the QAPLIB benchmark problems. Moreover, our algorithm runs faster than the second best algorithm on over $80\%$ of the benchmarks. We therefore implement our algorithm on a dataset of increasing interest to the neurobiology community: the brain-graph (connectome) of the C. elegans. FAQ solves this problem perfectly, and no other algorithm we tried was successful. Future work will hopefully improve upon the cubic complexity of FAQ to be able to match mammalian brain-graphs, with millions or billions of vertices.
18 changes: 18 additions & 0 deletions PAMI3/cover-letter.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Dear Colleagues:

We are please to submit our novel manuscript entitled, "Large (Brain) Graph Matching via Fast Approximate Quadratic Programming," largely inspired by our previously submitted and rejected manuscript entitled, "Fast Inexact Graph Matching with Applications in Statistical Connectomics." We are optimistic that this novel manuscript is sufficiently distinct from the previously submitted manuscript to warrant consideration for review as a new manuscript, preferably with the same editors and reviewers. Below, we highlight several of the key differences. We let 'FAQ' refer to new manuscript.

(1) In FAQ, we highlight that in approximately solving any computationally challenging problem, we necessarily face an efficiency/efficacy trade-off. In particular, we can make an algorithm go faster by solving an easier and more approximate problem. We believe that this is a key aspect to dealing with graph matching problems for big data, which was unmentioned in our original manuscript. In FAQ, we explicitly compare the performance of our algorithm and several state-of-the-art algorithms in terms of both computational time and objective value function. Our algorithm outperforms the others on both metrics.

(2) In FAQ, we compare the performance of our algorithm to several other state-of-the-art algorithms on all of the benchmarks from the QAPLIB library (as suggested by the reviewers). This is in contrast to our previous manuscript, as well as the other manuscripts on this problem recently published in TPAMI, all of which used only 16 problems from the >100 total. Moreover, we have significantly extended the number of competitor algorithms to which we compare (also as suggested by the reviewers). Figure 3 of the submitted manuscript is in color to ease the visual comparisons.

(3) The algorithm proposed in the previous submission utilized any number of restarts. In contrast, in FAQ proposes an algorithm with a deterministic starting point: the barycenter of the feasible region (as suggested by the reviewers). Even with this deterministic starting point, our algorithm was both faster and better than PATH, the previously best algorithm in the field, published in TPAMI in 2009.

(4) We highlight the performance of our algorithm on both directed and undirected benchmarks, whereas our previous submission only considered the undirected case. Our algorithm was shown to dominate the previous state-of-the-art algorithms on the directed, as well as the undirected, benchmarks, in terms of both speed and accuracy.

We have attached the related manuscript that was previously reviewed and rejected for comparison purposes. We look forward to reading your reviews.

All best,


Dr. Joshua Vogelstein, on behalf of my fellow co-authors
Binary file added PAMI3/prevision-rejected-submission.pdf
Binary file not shown.
Binary file added PAMI3/prevision-rejected-submission.ps
Binary file not shown.
903 changes: 903 additions & 0 deletions PAMI3/review.html

Large diffs are not rendered by default.

Binary file added PAMI3/review_files/close_message.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added PAMI3/review_files/close_window.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added PAMI3/review_files/details_header_left.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added PAMI3/review_files/details_header_right.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 36 additions & 0 deletions PAMI3/review_files/helptip.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
Notice that IE has a display problem if the help link is on
the last line of a container with no padding. If this is the
case increase the padding bottom to at least 1px
*/

a.helpLink {
color: Green;
text-decoration: none;
cursor: help;
}

a.helpLink:hover {
color: Red;
text-decoration: none;
}

.help-tooltip {
position: absolute;
width: 250px;
border: 1px Solid WindowFrame;
background: #FFFFDD;
color: black;
font-family: Verdana;
font-size: 11px;
padding: 3px;
filter: progid:DXImageTransform.Microsoft.Shadow(color="#777777", Direction=135, Strength=3);
z-index: 10000;
}


.help-tooltip a,
.help-tooltip a:hover {
color: blue !important;
background: none;
}
238 changes: 238 additions & 0 deletions PAMI3/review_files/helptip.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
/*----------------------------------------------------------------------------\
| Help Tip 1.12 |
|-----------------------------------------------------------------------------|
| Created by Erik Arvidsson |
| (http://webfx.eae.net/contact.html#erik) |
| For WebFX (http://webfx.eae.net/) |
|-----------------------------------------------------------------------------|
| A tool tip like script that can be used for context help |
|-----------------------------------------------------------------------------|
| Copyright (c) 1999 - 2002 Erik Arvidsson |
|-----------------------------------------------------------------------------|
| This software is provided "as is", without warranty of any kind, express or |
| implied, including but not limited to the warranties of merchantability, |
| fitness for a particular purpose and noninfringement. In no event shall the |
| authors or copyright holders be liable for any claim, damages or other |
| liability, whether in an action of contract, tort or otherwise, arising |
| from, out of or in connection with the software or the use or other |
| dealings in the software. |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| This software is available under the three different licenses mentioned |
| below. To use this software you must chose, and qualify, for one of those. |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| The WebFX Non-Commercial License http://webfx.eae.net/license.html |
| Permits anyone the right to use the software in a non-commercial context |
| free of charge. |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| The WebFX Commercial license http://webfx.eae.net/commercial.html |
| Permits the license holder the right to use the software in a commercial |
| context. Such license must be specifically obtained, however it's valid for |
| any number of implementations of the licensed software. |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt |
| Permits anyone the right to use and modify the software without limitations |
| as long as proper credits are given and the original and modified source |
| code are included. Requires that the final product, software derivate from |
| the original source or any software utilizing a GPL component, such as |
| this, is also licensed under the GPL license. |
|-----------------------------------------------------------------------------|
| 2002-09-27 | |
| 2001-11-25 | Added a resize to the tooltip if the document width is too |
| | small. |
| 2002-05-19 | IE50 did not recognise the JS keyword undefined so the test |
| | for scroll support was updated to be IE50 friendly. |
| 2002-07-06 | Added flag to hide selects for IE |
| 2002-10-04 | (1.1) Restructured and made code more IE garbage collector |
| | friendly. This solved the most nasty memory leaks. Also added |
| | support for hiding the tooltip if ESC is pressed. |
| 2002-10-18 | Fixed verrical position in case of scrolled document. |
| 2002-12-02 | Mozilla bug workaround related to mousedown and move. |
|-----------------------------------------------------------------------------|
| Dependencies: helptip.css (To set up the CSS of the help-tooltip class) |
|-----------------------------------------------------------------------------|
| Usage: |
| |
| <script type="text/javascript" src="helptip.js">< /script> |
| <link type="text/css" rel="StyleSheet" href="helptip.css" /> |
| |
| <a class="helpLink" href="?" onclick="showHelp(event, 'String to show'); |
| return false">Help</a> |
|-----------------------------------------------------------------------------|
| Created 2001-09-27 | All changes are in the log above. | Updated 2002-12-02 |
\----------------------------------------------------------------------------*/

function showHelpTip(e, sHtml, bHideSelects) {

// find anchor element
var el = e.target || e.srcElement;
while (el.tagName != "A")
el = el.parentNode;

// is there already a tooltip? If so, remove it
if (el._helpTip) {
helpTipHandler.hideHelpTip(el);
}

helpTipHandler.hideSelects = Boolean(bHideSelects);

// create element and insert last into the body
helpTipHandler.createHelpTip(el, sHtml);

// position tooltip
helpTipHandler.positionToolTip(e);

// add a listener to the blur event.
// When blurred remove tooltip and restore anchor
el.onblur = helpTipHandler.anchorBlur;
el.onkeydown = helpTipHandler.anchorKeyDown;
}

var helpTipHandler = {
hideSelects: false,

helpTip: null,

showSelects: function (bVisible) {
if (!this.hideSelects) return;
// only IE actually do something in here
var selects = [];
if (document.all)
selects = document.all.tags("SELECT");
var l = selects.length;
for (var i = 0; i < l; i++)
selects[i].runtimeStyle.visibility = bVisible ? "" : "hidden";
},

create: function () {
var d = document.createElement("DIV");
d.className = "help-tooltip";
d.onmousedown = this.helpTipMouseDown;
d.onmouseup = this.helpTipMouseUp;
document.body.appendChild(d);
this.helpTip = d;
},

createHelpTip: function (el, sHtml) {
if (this.helpTip == null) {
this.create();
}

var d = this.helpTip;
d.innerHTML = sHtml;
d._boundAnchor = el;
el._helpTip = d;
return d;
},

// Allow clicks on A elements inside tooltip
helpTipMouseDown: function (e) {
var d = this;
var el = d._boundAnchor;
if (!e) e = event;
var t = e.target || e.srcElement;
while (t.tagName != "A" && t != d)
t = t.parentNode;
if (t == d) return;

el._onblur = el.onblur;
el.onblur = null;
},

helpTipMouseUp: function () {
var d = this;
var el = d._boundAnchor;
el.onblur = el._onblur;
el._onblur = null;
el.focus();
},

anchorBlur: function (e) {
var el = this;
helpTipHandler.hideHelpTip(el);
},

anchorKeyDown: function (e) { if (!e) e = window.event
if (e.keyCode == 27) { // ESC
helpTipHandler.hideHelpTip(this);
}
},

removeHelpTip: function (d) {
d._boundAnchor = null;
d.style.filter = "none";
d.innerHTML = "";
d.onmousedown = null;
d.onmouseup = null;
d.parentNode.removeChild(d);
//d.style.display = "none";
},

hideHelpTip: function (el) {
var d = el._helpTip;
/* Mozilla (1.2+) starts a selection session when moved
and this destroys the mouse events until reloaded
d.style.top = -el.offsetHeight - 100 + "px";
*/

d.style.visibility = "hidden";
//d._boundAnchor = null;

el.onblur = null;
el._onblur = null;
el._helpTip = null;
el.onkeydown = null;

this.showSelects(true);
},

positionToolTip: function (e) {
this.showSelects(false);
var scroll = this.getScroll();
var d = this.helpTip;

// width
if (d.offsetWidth >= scroll.width)
d.style.width = scroll.width - 10 + "px";
else
d.style.width = "";

// left
if (e.clientX > scroll.width - d.offsetWidth)
d.style.left = scroll.width - d.offsetWidth + scroll.left + "px";
else
d.style.left = e.clientX - 2 + scroll.left + "px";

// top if (e.pageX || e.pageY) { posx = e.pageX; posy = e.pageY; d.style.top = posy + "px" } else if (e.clientX || e.clientY) {
if (e.clientY + d.offsetHeight + 18 < scroll.height) {
d.style.top = e.clientY + 18 + scroll.top + "px"; }
else if (e.clientY - d.offsetHeight > 0) {
d.style.top = e.clientY + scroll.top - d.offsetHeight + "px"; }
else {
d.style.top = scroll.top + 5 + "px"; } }
d.style.visibility = "visible";
},

// returns the scroll left and top for the browser viewport.
getScroll: function () {
if (document.all && typeof document.body.scrollTop != "undefined") { // IE model
var ieBox = document.compatMode != "CSS1Compat";
var cont = ieBox ? document.body : document.documentElement;
return {
left: cont.scrollLeft,
top: cont.scrollTop,
width: cont.clientWidth,
height: cont.clientHeight
};
}
else {
return {
left: window.pageXOffset,
top: window.pageYOffset,
width: window.innerWidth,
height: window.innerHeight
};
}

}

};
Expand Down
Loading

0 comments on commit f04e84c

Please sign in to comment.