Are You Still Selling Your Father's Postcards, Print Strategist?
But savvy print strategists know better.
Postcards can be performance powerhouses when done right. In fact, they sometimes do remarkably well even when done poorly. One of the reasons they continue to work is that postcards come "pre-opened." There's no decision to make. The offer is right in front of you. Postcards draw immediate attention and give your customers more than a fighting chance to entice prospects even when the sender is unknown.
Attention-demanding Headline. They only get a few seconds to gain attention, so headlines must be big and benefit oriented.
Involving Visual. Draw in the recipient by making the visual and headline work as a team. Visuals should be as large and involving as possible. Showing a product or service in action is always an effective recommendation.
Persuasive Copy. Maintain interest with strong, feature- and benefit-oriented copy. Since the postcard is likely the first in a multi-step approach, copy should entice and qualify.
Call to Action. Be sure your customers are telling recipients exactly what action to take and to assume nothing. They should direct the person to "Call toll free today for a free sample and information kit," or whatever is the appropriate action for the program. Multiple, user-friendly options tend to work best.
Encourage Data Mining. From variable data digital printing to inkjet imaging, print technology provides opportunities to personalize and customize postcard mailings. There's a strong likelihood that your customers have plenty of existing data to elevate the performance of their postcards. Encourage them to start simply, if necessary, and then help them work their way up. But do bring data into the picture. Every personalization step they take will deliver better results. Keep in mind that there's also worthwhile demographic information to append from outside sources while they're building their internal database. Offer to provide data services through an outside partner or, if you have one, your in-house team.
Personalize. Get your clients past the "name thing" quickly. It's not that using someone's name isn't worthwhile—it is—but today's variable technologies allow marketers to do so much more with photos, graphics and copy if they know anything at all about their target. You can help them create postcards that are variable in every respect with digital presses or do something as simple as offline-inkjet imaging a store location map while you're doing the addressing. You can also help them create postcards with personalized URLs (pURLs) that connect recipients to a personal landing page where they typically receive an incentive for their effort. Advise your customers to provide offers at the personal landing page that go beyond the original promise, such as an opt-in newsletter or club membership. Besides the personalization effect, the big benefit of pURLs is that they provide a reliable method for tracking postcard recipients who went online as a result of the promotion, whether or not they took advantage of the offer.
Involve. Postcards can now be more involving than ever. Consider QR Codes, the two-dimensional barcodes that enable smartphone users equipped with the correct reader software to scan the code. This causes the phone's browser to launch and redirect to the programmed URL. A real estate company, for example, could offer a property on the postcard and the QR code might take the recipient to a video tour of the home. But don't dismiss involvement devices such as scratch-offs, repositionable notes and other proven techniques that can boost the effectiveness of postcards.
The bottom line is that postcards not only work, but also are evolving tools that can achieve virtually any level of marketing sophistication your customer requires. They provide a great opportunity for Marketing Service Providers to take customers beyond commodity postcards and into more sophisticated solutions.
While you're at it, why not demonstrate your capabilities through your own postcard campaign?
We once knew a youth soccer coach who was 10-0 in her first season and knew it was the coaching. Then she went 0-10 in her second season and knew it was the players. Consistent success depends upon bringing all the elements together. Here's how to help your clients trounce the competition with their next postcard campaign.
Settle for your office printer.
Images should be unique and compelling IF you have them. Keep in mind that it's not 100% necessary to have an image with your headline; a headline could be the main visual in and of itself. But if you include an image, choose one that's not likely to be overly used in your market or have an image shot custom for you.
Don't even think about clichés. They don't position you as better or unique—just as someone who doesn't have an original thought.
Explore posts in the same categories: Branding, Direct MarketingThis entry was posted on April 13, 2010 at 6:49 pm and is filed under Branding, Direct Marketing. You can subscribe via RSS 2.0 feed to this post's comments.
Lessons for PrintStrategists from the Trenches of Social Media.
My design partner, Julia, had already plunged into social media with her successful SnarkyVegan blog. I, on the other hand, was a rookie and a skeptic at that. But as we strategized about ways to establish thought leadership for our businesses, we decided that enewsletters, which would roll into blogs, would be a good starting point. The results were PrintStrategist and MondoBeat: Ideas to Improve Your Marketing Rhythm.
To say the least, one thing led to another. Strong receptions to the enewsletters/blogs began to pique our interest. Soon we were announcing new posts at our Twitter sites, and I began to wonder if there was any potential in our mostly dormant LinkedIn accounts.
So Julia and I got busy completing our profiles, linking feeds from our blogs, posting slide presentations, connecting with colleagues and participating in groups. Along the way, I was invited to manage my college's alumni group as well as Print 2.0. So I got to see "groups" from both the participant and manger perspectives.
Then recently Julia and I co-founded the PrintStrategist LinkedIn group. The objective was to form a diverse group of professionals from all sides of the table who shared a common goal of effectively using print. Within a few weeks, membership reached nearly 140, and it literally grows each day.
The more options we integrated into our social media goal of raising our thought leadership perceptions, the better we did. More people started to follow us on Twitter, and we connected with more and more professionals on LinkedIn. Both are significant drivers of readers to the blogs, and LinkedIn is now our number one source of hits and page views.
The enewsletters/blogs grew to the point that we are now considering offering sole sponsorship opportunities for each issue (you'll eventually be able to judge that success for yourself).
Finally, remember that social media is for relationship and thought leadership building. It should be part of your marketing plan, but continue to leave the heavy lifting to postal mail, email, print advertising and other marketing media better suited to directly generating sales and ROI.
Bauer Associates helps printers of all sizes develop effective social media programs from strategy development through program deployment. For more information, email Print Strategist Larry Bauer.
Social media participation requires your time, but it needs to be quality time. Otherwise, you can cause more harm than good. Use these tips to create relationships and thought leadership that will help build your printing business.
Help your customers find ways to combine social media with print—maybe you're printing menus for a restaurant and you help them get set up to Tweet daily specials on Twitter.
Many of the ways we used to participate in social business conversations also translate well to social media tools. Discovering existing conversations about your brand or product niche is as easy as eaves dropping by searching for keywords in Twitter or using Google Blog Search. Creating and leading such conversations requires a concerted effort by you and your company.
It's a way of grouping relevant messages into conversations, similar to but much broader than corralling VIPs in an event room or networking on the golf course. Imagine no conventional boundaries, and the fact that you're potentially conversing with 500 or even 5,000 people in a given day, week, month.
Write a great hashtag. Hashtags like #news are not helpful. Be more effective by using tags like #BrandNameNews, #BrandLaunch or #BrandHelp and be considerate of length. Remember that it does get counted in Twitter users' 140-character limit. AND beware of acronyms as there could be multiple unrelated conversations potentially using the same acronym.
This is why it's critical to understand and ensure your brand's integrity and value. Likewise, it's important to have the ability to lead the conversation as a valued participant. If your brand is suffering from poor quality products/service/support, no amount of twittering or tagging will save you. But you can use social media tools as part of your plan to turn your brand around so long as you are taking steps to improve the problems.
Using envelopes as your "get opened" tool.
Postcards get you and your clients more for less.


-The Bat-mobile gets banged up.
-Hitchhikers Guide to the Galaxy looks great!
-Rich men and their flying machines.
-War of the Worlds goes by the book.
-Possessed Toys for your kid.
-Officer bites man in the groin and is suspended.
hi i am wondering if it is possible to listen to this podcast? its moustly the talk about the prince of nothing series i am interested about.


Led by Stefano Boeri, Milan architects, Boeri Studio presented their home city with a world beating concept demanding careful analysis.
Officially opened in October 2014, Bosco Verticale (Vertical Forest) won the International Highrise Award in November 2014. A year later, in November 2015 the Council on Tall Buildings and Urban Habitat (CTBUH) selected Bosco Verticale as the "2015 Best Tall Building Worldwide".
The towers, of 110 metres and 76 metres, host 900 trees (each measuring 3, 6 or 9 metres) and over 2,000 shrubs and floral plants. This Vertical Forest generates its own microclimate. It absorbs CO2 and dust particles and adds oxygen and humidity. Each Vertical Forest is the equivalent of 7000 m2 of forest and, additionally, opens up new public realm green spaces in a previously tightly packed urban environment. Milan residents can enjoy the seasonal colours of urban afforestation.
Quick to spot the potential, China has commissioned two 'vertical forest' towers in the City of Nanjing to be completed in 2018. With approximately 1100 trees and 2500 cascading plants Boeri Studio calculate that these towers will annually absorb 25 tons of carbon dioxide and release 22 tons of oxygen.
Backing a planning application for the construction in Birmingham of two 25 storey towers, Chinese investors have identified the benefits these principles bring to the booming UK regeneration scene. Each of the 500 residents will have access to green, tree-covered terraces in startlingly designed facades that have been likened to the fabled hanging gardens of Babylon.
With the government fretting over the apparent impossibility of meeting the enormous shortfall in the supply of new residential accommodation and the, not unrelated, crisis of air pollution, the day of high-rise gardens offers the combination of biophilic design, pollution reduction, maximisation of site values (including the improved viability of associated commercial/retail/leisure facilities) plus reduced commuting journey times and costs.
Already established as providers of innovative and sustainable solutions to the challenges of contemporary hard landscaping, Kinley recently launched their revolutionary Raaft Joist System. Combining sustainable aluminium with easily assembled, interlocking components, available separately or as comprehensive bespoke packages, to fit any situation and specification.
Highly engineered to ensure total versatility and sustainability plus low whole life maintenance costs this system completely eliminates the snags and costs associated with 'pick–n-mix' component sourcing. Height and slope adjustable to 1mm tolerances, the joist system supports a vast range of surface panels including decking, tiling, and porous planter-support materials.
Kinley Raaft aluminium support joist systems elevate terrace construction from expensive and tricky to cost effective, value adding, standardised simplicity.
On the potentiality of green tower construction, Stefano Boeri commented 'We have been asked to design an entire city (in China) of 100 or 200 buildings, all with trees. …… By 2020 we could imagine having the first forest city, in China'.


The roads are rough, so it takes a long time to cover not much distance each day.
Happily, there is no rush.
The days are sunny and hot, and the nights beautifully cold allowing me to sleep like a baby.
On the wide open plains I spot herds of mountain zebra, gemsbok and other antelope-like animals. When driving through a dry river bed I spot a lone elephant doing his best to hide in the trees, and am absolutely staggered and elected to stumble upon a large heard of giraffe. As a little kid they were my favorite animal, so it's a real treat to finally see them in the wild.
They appear curious and are not very afraid of me, though after fifteen minutes of me sitting quietly they slowly move on further down the river bed. It's shocking they can live out here with so little greenery or shade.
Again, the photos do a much better job of explaining it than I can!
There are not many people out here….
What an incredibly beautiful country. Thanks for going through the trouble of sharing everything with us. We LOVE following your progress…and dreaming about also doing this one day.
I followed other blogs and dreams for YEARS before I made this happen! You can do it too!
Wonderful stuff, Dan. Thanks for sharing your good fortune to travel in this incredible land.
Dan, I have really been enjoying your trip and look forward each day to see were you are. Could you tell me were in Namibia these photos you have posted were taken. We will be in Namibia in about a 2 weeks and I don't yet know exactly were I would like to go this trip. We have driven though the Caprivi strip, Etosha and Skelton coast a few years ago. Last year Botswana was our destination, you have to be looking forward to Botswana. In Chobe we had close encounters with Elephants everyday thousands of elephants amazing! Posting as often as you do must be hard work, I think you are inspiring many to follow in your foot steps. Thank you very much.
Load up all the gas, food and water you can carry and strike out along the Angola border until you get to Epupa Falls. From there angle South and West towards Van Zail's pass, turn south just before it and follow the smallest possible tracks you can… you'll come into a dry riverbed North of Purros… the best stuff was all North and South of Purros in the riverbed.
All these tiny tracks are in Tracks for Africa (the GPS map pack).
All the best! I would love to hear how you make out!


AUUM Mammalian Omega-3s improves nerve fiber length in Type 1 diabetes by 29% an amount greater than expected (Diabetic Neuropathy Study Results University of Toronto).
AUUM Omega-3s are changing the way doctors and healthcare practitioners see other omega-3 sources. To learn more about mammalian omega-3, contact me today for education and product. Buy today to feel the difference.
I will continue one on one personal assessments, nutritional coaching, my wellness seminars, and letting people know how AUUM Omega-3 could change their life. I'm thrilled to announce the Holistic Mentorship Course for all holistic nutritionists/practitioners. There's so much news to share! Let's keep it simple…your path enters here. Thanks to you and the community of like-minded who are driven to change the world and make it a better, healthier place.
Contact me for a complimentary initial consultation. Learn how to heal with a plan and support to succeed.
Auum Omegas outperform Fish and Plant Omegas. It can be the most important action you take.
The Omega3 that changes everything.
Most of today's diseases are related to Omega deficiencies. Auum is one of the best kind of Omega3s on the planet.
Set yourself up for success. Kick start your Wellness Business with the right tools.
You have the practical education and knowledge. You deserve the opportunity to succeed and help others.
Join the like-minded at the Toronto Midtown Chapter of the Holistic Chamber of Commerce.
More resources and networking power!
Fertile ground for holistic professionals. Networking, Partnerships, Mentorships.
You're taking the first step, so let's get to know you and what you want to accomplish with your health – a comprehensive assessment for your individualized protocol. My Research, Experience and Degree in Holistic Nutrition are extensive. My purpose is to help others through re-education and returning to a lifestyle the human body was designed for. Wouldn't anyone like to experience what it was like to feel good again – a healthier body, mind, relationship with self and lifestyle?
I'm often on the road to another engagement to educate and give people the tools and guidance to get better. Corporate Health matters a lot to productivity and when people feel good they're happier, less stressed and more productive. They can even become more creative problem solvers at work! With a Degree in Holistic Nutrition I have become very well versed in lifestyle re-education. I sometimes use other modalities like Iridology and Detox (or Cleansing). Most importantly is the research behind Auum mammalian Omega3s and how it positively impacts overall health. It's a real breakthrough in Bioscience.
This Comprehensive Workshop is dedicated to all Holistic Practitioners and Mentors for their dedication to help others build a healthier world. Our community provides guidance and support with our common thread for a healthier body, mind, relationship with self, and lifestyle.
Welcome! The Holistic Chamber of Commerce is a growing organization representing holistic and holistic-minded professionals, practitioners, businesses and people. We encourage and promote healthy living, and support the professionals and businesses that make it possible – Healthier People on a Healthier Planet! The Toronto Midtown Chapter is vibrant and growing.
Thank you so much for coming out to the Group on Tuesday. They loved your presentation and thought it was very informative.
When it comes to healthy Omegas, Cheryl knows her stuff and knows how to make it relevant to her audience. A fascinating and enlightening evening. Thank you, Cheryl.
I highly recommend Cheryl as a consultant for your health, particularly regarding Omega3. She has done her homework and is happy to share her results with you.
Cheryl has a passion for helping people achieve their full health potential. She has a wonderful ability to connect with people, with her warm, open personality. A real gem.


text:
Lake Wedowee, or R. L. Harris Reservoir, is a reservoir, located in Randolph County, Alabama on the upper part of the Tallapoosa River 90 miles from Atlanta, Georgia. The lake has an area of 9,870 acres. This lake was built at one of the last hydro sites in Alabama.

Construction
The lake was created by the flooding of the plains behind the R.L. Harris Dam, which began construction on November 1, 1974. The dam was completed on April 20, 1983. There are two generating units that produce up to 67,500 kilowatts of power for each unit. The dam measures 1,142 feet long and 151.5 feet high.

Recreation
There are many recreational attractions on Lake Wedowee such as: boating, swimming, fishing and camping.  Fishing brings the most attraction to the lake.  It is known to be one of the finest lakes in the Southeast because of the water quality. There are many different species of fish in the lake, they include crappie, largemouth bass, spotted bass, hybrid striped bass, bluegill, warmouth, shellcracker, white bass, bowfin, carp, flathead, blue catfish, yellow catfish and channel catfish.  During summer, the lake is filled with both residents and visitors.

Community
The town of Wedowee is relatively small with a population of 797 people, as of 2018. Wedowee is also the county seat of Randolph County. U.S. Highway 431 intersects the town as well as Alabama Highway 48. The community has grown over the years as the lake continues to develop.

References

Bodies of water of Randolph County, Alabama
Reservoirs in Alabama
Protected areas of Randolph County, Alabama
Alabama placenames of Native American origin

redpajama_set_name: RedPajamaWikipedia


Ben Wyvis (Bheinn Uais) stands alone and indomitable to the north of Inverness. Its brooding slopes and high whaleback ridge are magnets for hill walkers and the dotterel, a rare migratory bird which nests in the fragile carpet moss of the summit ridge. Climb to the top for magnificent views to Cairngorm and the Fannichs, or enjoy the forested lower slopes where aspen, birch and rowan grow beside a tumbling burn.
The nearest toilets are at Silverbridge (open all year) and Rogie Falls (summer only). You'll find shops and places to eat in Contin and Strathpeffer.
The car park is small and can fill up quickly on busy days. If you can, share a lift. There's room for a few extra cars in a layby about ¼ mile (400 metres) along the road. Please be considerate with your parking and do not obstruct access for local residents.
The 4 mile (6.4 km) route to the summit of Ben Wyvis starts from the car park and climbs steeply up An Cabar before heading along the main ridge to the summit. It takes most people about six hours to walk to the summit and back.
IV23 2PG is the nearest postcode, north of the car park.


text:
Home Rock Features Headlines Roger Waters Makes Disgusting Pink Floyd Demand
Roger Waters Makes Disgusting Pink Floyd Demand
Pink Floyd drummer Nick Mason was recently interviewed on AXS TV's 'A Life On The Road,' and he revealed how Roger Waters demanded cigarettes from a bandmate, and was rejected. Alternative Nation transcribed Mason's remarks. A Pink Floyd icon recently admitted to lip syncing in a video.
"The Regent Street Polytechnic, that's where I met Roger and Rick. We were all training to be architects. It was architecture's loss I think, or not.
We sort of met because Roger knew that I had a car. I'm not sure that he knew what the car was, because actually it was an Austin 7 Chummy, with a top speed of 20 miles per hour, no brakes. But when he asked if I might lend it to him, he said no. But he also tried to get a cigarette, and famously Rick went, 'No.' Which really set the tone for the next 50 years."
An AC/DC icon revealed a painful David Gilmour secret last week. Mason wrote a few days ago on Twitter, "Four years ago, Nick, with Roger Waters, unveiled a commemorative plaque outside London's University of Westminster (formerly the Regent Street Polytechnic). What do you think they were discussing after pulling the curtain to reveal it?"
Nick Mason's Saucerful of Secrets have also announced, "This weekend, the official Nick Mason's #SaucerfulOfSecrets store is running a special discount offer – and the more you buy, the more you save: up to 20% off the normal price! Visit http://nickmason.lnk.to/store to check out the range…" A Pink Floyd member called a bandmate an 'odd looking guy' earlier this year.
Four years ago, Nick, with Roger Waters, unveiled a commemorative plaque outside London's University of Westminster (formerly the Regent Street Polytechnic). What do you think they were discussing after pulling the curtain to reveal it? pic.twitter.com/U154FguqWw
— Nick Mason (@nickmasondrums) October 13, 2019
Previous articleJohn Lennon Revealed Who Paul McCartney Ripped Off
Next articleSlipknot Family Member Makes Bold Claim: 'I'm Gay'
Tool Add Second Guitarist In New Video

redpajama_set_name: RedPajamaCommonCrawl


text:
\section{Acknowledgements}
This work was in part supported by the NSF grant IIS-1563816, GRFP (DGE-1650044), and a Raytheon fellowship.

\bibliographystyle{ACM-Reference-Format}

\section{Introduction}

\textbf{Motivation.}
First mentioned as early as the 1970's~\cite{chvatal1973tough}, network robustness has a rich and diverse history spanning numerous fields of engineering and science~\cite{klein1993resistance,beygelzimer2005improving,tong2010vulnerability,krishnamoorthy1987fault}.
This diversity of research has generated
a variety of unique perspectives, providing fresh insight into challenging problems while equipping researchers with fundamental knowledge for their investigations.
While the fields of study are diverse, they are linked by a common definition of \textbf{robustness},
which is defined as a
{\textit{measure of a network's ability to continue functioning when part of the network is naturally damaged or targeted for attack}}~\cite{ellens2013graph,chan2016optimizing,beygelzimer2005improving}.

The study of network robustness is critical to the understanding of complex interconnected systems.
For example, consider an example of a power grid network that is susceptible to both natural \textit{failures} and targeted \textit{attacks}.
A natural failure occurs when a \textit{single} power substation fails due to erosion of parts or natural disasters.
However, when one substation fails, additional load is routed to alternative substations, potentially causing a series of \textit{cascading failures}.
Not all failures originate from natural causes, some come from \textit{targeted} attacks,
such as enemy states hacking into the grid to sabotage key equipment to maximally damage the operations of the electrical grid.
A natural counterpart to network robustness is \textbf{vulnerability},
defined as a \textit{measure of a network's susceptibility to the dissemination of entities across the network}~\cite{tong2010vulnerability},
such as how quickly a virus spreads across a computer network.

\vspace{0.1cm}
\noindent\textbf{Challenges for robustness and vulnerability research.}
Unfortunately, the nature of cross-disciplinary research also comes with significant challenges.
Oftentimes important discoveries made in one field are not quickly disseminated, leading to missed innovation opportunities.
We believe a unified and easy-to-use software framework is key to standardizing the study of network robustness, helping accelerate reproducible research and dissemination of ideas.

\begin{figure*}[t]
    \centering
    \includegraphics[width=0.9\textwidth]{figures/virus_network.pdf}
    \caption{\textsc{Tiger}\xspace{}{} provides a number of important tools for graph vulnerability and robustness research, including graph robustness measures, attack strategies, defense techniques and simulation models.
    Here, a \textsc{Tiger}\xspace{}{} user is visualizing a computer virus simulation that follows the SIS infection model (effective strength $s=3.21$) on the \textit{Oregon-1 Autonomous System} network~\cite{leskovec2005graphs}.
    Top: defending only 5 nodes with  \textit{Netshield}~\cite{tong2010vulnerability}, the number of infected entities is reduced to nearly zero.
    Bottom: without any defense, the virus remains endemic.}
    \label{fig:virus_simulation}
\end{figure*}

\vspace{0.1cm}
\noindent\textbf{\textsc{Tiger}\xspace{}{} design and implementation.}
We present \textsc{Tiger}\xspace{}{}, an open-sourced Python \textit{\textbf{T}oolbox for evaluat\textbf{I}ng \textbf{G}raph vuln\textbf{E}rability and \textbf{R}obustness}.
Through \textsc{Tiger}\xspace{}{}, our goal is to catalyze network robustness research, promote reproducibility and amplify the reach of novel ideas.
In designing \textsc{Tiger}\xspace{}{}, we consider multiple complex implementation decisions, including:
(1) the criterion for inclusion in the toolbox;
(2) identifying and synthesizing a set of core robustivity features needed by the community; and
(3) the design and implementation of the framework itself.
We address the \textit{inclusion criterion} by conducting a careful analysis of influential and representative papers (e.g., \cite{chan2016optimizing,tong2010vulnerability,malliaros2012fast,holme2002attack,beygelzimer2005improving}) across top journals and conferences from the relevant domains (e.g., ICDM, SDM, Physica A, DMKD, Physical Review E), many of which we will discuss in detail in this paper.
We also include papers posted on arXiv, as many cutting-edge papers are first released here.

Based on our analysis, we identify and include papers
that tackle one or more of the following fundamental tasks~\cite{ellens2013graph,holme2002attack,beygelzimer2005improving}:
(1) measuring network robustness and vulnerability;
(2) understanding network failure and attack mechanisms;
(3) developing defensive techniques;
and (4) creating simulation tools to model processes.
From these papers, we select and implement a total of 44 attacks, defenses and robustness measures, along with 4 simulation tools in which they can be used.
Due to a vibrant and growing community of users, we develop \textsc{Tiger}\xspace{}{} in Python 3, leveraging key libraries, such as NetworkX, SciPy, Numpy and Matplotlib.
While excellent alternative network analysis tools exist~\cite{hagberg2008exploring,azizi2020epidemics,rossetti2018ndlib,klise2018overview,korkali2017reducing,bastian2009gephi}, many of them are domain specific (e.g., EoN~\cite{azizi2020epidemics}, WNTR~\cite{klise2018overview}) or do not provide direct support for network robustness analysis (e.g., NetworkX~\cite{hagberg2008exploring}, Gephi~\cite{bastian2009gephi}).
In contrast, \textsc{Tiger}\xspace{}{} complements existing tools while providing key missing network robustness components.

\input{tables/measure_comparison}

\subsection{Contributions}

\noindent\textbf{1. TIGER.}
We present \textsc{Tiger}\xspace{}{}, the first open-sourced Python toolbox for evaluating network vulnerability and robustness of graphs.
\textsc{Tiger}\xspace{}{} contains 22 graph robustness measures with both original and fast approximate versions when possible;
17 failure and attack mechanisms; 15 heuristic and optimization based defense techniques; and 4 simulation tools.
To the best of our knowledge, this makes \textsc{Tiger}\xspace{}{} the most comprehensive open-source framework for network robustness analysis to date.

\medskip
\noindent\textbf{2. Open-Source \& Permissive Licensing.}
Our goal is to democratize the tools needed to study network robustness; assisting researchers and practitioners in the analysis of their own networks.
As such, we open-source the \textit{code} on Github with an \textit{MIT license},
available at: \url{https://github.com/safreita1/TIGER}.

\smallskip
\noindent\textbf{3. Extensive Documentation \& Tutorials.}
We extensively document the functionality of \textsc{Tiger}\xspace{}{}, providing a detailed description and working example for many robustness measures, attacks, and defense mechanisms.
In addition, we provide detailed tutorials on the analysis of network vulnerability and robustness on multiple large-scale, real-world networks, including \textit{every} figure and plot shown in this paper.
Users with Python familiarity will be able to readily pick up \textsc{Tiger}\xspace{}{} for analysis with their own data.

\smallskip
\noindent\textbf{4. Community Impact.}
\textsc{Tiger}\xspace{}{} helps enable reproducible research and the timely dissemination of new and current ideas in the area of network robustness and vulnerability analysis.
Since this is a \textit{large} and \textit{highly active} field across many disciplines of science and engineering, we anticipate that \textsc{Tiger}\xspace{}{} will have significant impact.
As the field grows, we will update \textsc{Tiger}\xspace{}{} with additional features such as multi-graphs, dynamic networks and rich attribute information.

\bigskip
\noindent
\textbf{Terminology and Notation.}
As the study of graphs has been carried out in a variety of fields (e.g., mathematics, physics, computer science), the terminology often varies from field to field.
As such, we refer to the following word pairs interchangeably: (network, graph), (vertex, node), (edge, link).
Throughout the paper, we follow standard practice and use capital bold letters for matrices (e.g., $\bm{A}$), lower-case bold letters for vectors (e.g., $\bm{a}$).
Also, we focus on undirected and unweighted graphs.

\section{TIGER Robustness Measures}\label{section:metrics}

\textsc{Tiger}\xspace{}{} contains 22 robustness measures, grouped into one of three categories depending on whether the measure utilizes the graph, adjacency, or Laplacian matrix.
In Table~\ref{table:metric_comparison}, we highlight each implemented measure, the category it belongs to (graph, adjacency, Laplacian), and its application to network robustness.
Next, we select 3 robustness measures, one from each of the three categories, to extensively discuss.
For detailed description and discussion of all 22 measures, we refer the reader to the online documentation.

\subsection{Example Measures}\label{subsec:measure_overview}

\noindent\textbf{Average vertex betweenness ($\bar{b}_v$)}\label{subsec:vertex-betweenness}
of a graph $G=(\altmathcal{V}, \altmathcal{E})$ is the summation of vertex betweenness $b_u$ for every node $u\in V$, where vertex betweenness for node $u$ is defined as the number of shortest paths that pass through $u$ out of the total possible shortest paths

\begin{equation}\label{eq:vertex-betweenness}
    \bar{b}_v = \sum_{u\in V}\sum_{s\in V}\sum_{\substack{t\in V \\ s\neq t\neq u}} \frac{n_{s,t}(u)}{n_{s,t}}
\end{equation}

where $n_{s, t}(u)$ is the number of shortest paths between $s$ and $t$ that pass through $u$ and $n_{s, t}$ is the total number of shortest paths between $s$ and $t$~\cite{freeman1977set}.
Average vertex betweenness has a natural connection to graph robustness since it measures the average load on vertices in the network.
The smaller the average the more robust the network, since load is more evenly distributed across nodes.

\begin{figure*}[t]
    \centering
    \includegraphics[width=\textwidth]{figures/measure_error.pdf}
    \caption{Error of 5 fast, approximate robustness measures supported by \textsc{Tiger}\xspace{}{}.
    Parameter $k$ represents the trade-off between speed (low $k$) and precision (high $k$).
    To measure approximation efficacy, we vary $k\in [5, 300]$ in increments of $10$ and measure the absolute error between the approximate and original measure averaged over 30 runs on a clustered scale-free graph with 300 nodes.}
    \label{fig:measure_error}
\end{figure*}

\smallskip
\noindent\textbf{Spectral scaling ($\xi$)} indicates if a network is simultaneously sparse and highly connected, known as ``good expansion'' (GE)~\cite{hoory2006expander,estrada2006network}.
Intuitively, we can think of a network with GE as a network lacking bridges or bottlenecks.
In order to determine if a network has GE, \cite{estrada2006network} proposes to combine the spectral gap measure with odd subgraph centrality $SC_{odd}$, which measures the number of odd length closed walks a node participates in.
Formally, \textit{spectral scaling} is described in Equation~\ref{eq:expansion_character},

\begin{equation}\label{eq:expansion_character}
    \xi(G) = \sqrt{\frac{1}{n} \sum_{i=1}^{n} \{log[\bm{u}_1(i)] - [log\bm{A} + \frac{1}{2} log[SC_{odd}(i)]] \}^2 }
\end{equation}

where $\bm{A}$ = $[sinh(\lambda_1)]^{-0.5}$, $n$ is the number of nodes, and $\bm{u}_1$ is the first eigenvector of adjacency matrix $\bm{A}$.
The closer $\xi$ is to zero, the better the expansion properties and the more robust the network.
Formally, a network is considered to have GE if $\xi < 10^{-2}$, the correlation coefficient $r < 0.999$ and the slope is $0.5$.

\smallskip
\noindent\textbf{Effective resistance ($R$)}
views a graph as an electrical circuit where an edge $(i, j)$ corresponds to a resister of $r_{ij}$ = $1$ Ohm and a node $i$ corresponds to a junction.
As such, the effective resistance between two vertices $i$ and $j$, denoted $R_{ij}$, is the electrical resistance measured across $i$ and $j$ when calculated using Kirchoff's circuit laws.
Extending this to the whole graph, we say the \textit{effective graph resistance} $R$ is the sum of resistances for all distinct pairs of vertices~\cite{ellens2013graph,ghosh2008minimizing}.
Klein and Randic~\cite{klein1993resistance} proved this can be calculated based on the sum of the inverse non-zero Laplacian eigenvalues:

\begin{equation}
    R = \frac{1}{2}\sum_{i, j}^{n} R_{ij} = n\sum_{i=2}^{n} \frac{1}{\mu_i}
\end{equation}

As a robustness measure, effective resistance measures how well connected a network is, where a smaller value indicates a more robust network~\cite{ghosh2008minimizing,ellens2013graph}.
In addition, the effective resistance has many desirable properties, including the fact that it strictly decreases when adding edges, and takes into account both the number of paths between node pairs and their length~\cite{ellens2011effective}.

\begin{figure*}[t]
    \centering
    \includegraphics[width=\textwidth]{figures/measure_scalability.pdf}
    \caption{Scalability of \textsc{Tiger}\xspace{}'s 22 robustness measures on a clustered scale free graph ranging from 100, 1k, 10k 100k, to 1M nodes averaged over 10 runs.
    We find 7 measures are highly scalable i.e., runs in <30 minutes on a 1M node graph.
    }
    \label{fig:measure_scalability}
\end{figure*}

\subsection{Measure Implementation \& Evaluation}\label{subsec:measure_comparison}
Our goal for \textsc{Tiger}\xspace{}{} is to implement each robustness measure in a clear and concise manner to facilitate code readability, while simultaneously optimizing for execution speed.
Each robustness measure is wrapped in a function that abstracts mathematical details away from the user;
and any default parameters are set for a balance of \textit{speed} and \textit{precision}.
Below we compare the efficacy of 5 fast, approximate robustness measures, followed by an analysis of the scalability of all 22 measures.

\smallskip
\noindent\textbf{Approximate Measures.}
It turns out that a large number of robustness measures have difficulty scaling to large graphs.
To help address this, we implement and compare 5 fast approximate measure, three spectral based (natural connectivity, number of spanning trees, effective resistance), and two graph based (average vertex betweenness, average edge betweenness)~\cite{chan2016optimizing,brandes2007centrality}.
To approximate \textit{natural connectivity} we use the top-$k$ eigenvalues of the adjacency matrix as a low rank approximation~\cite{chan2016optimizing,malliaros2012fast}.
For the \textit{number of spanning trees} and \textit{effective resistance} we take the bottom-$k$ eigenvalues of the Laplacian matrix~\cite{chan2016optimizing}.
For graph measures, \textit{average vertex betweenness} and \textit{average edge betweenness}, we randomly sample $k$ nodes to calculate centrality.
In both cases, the parameter $k$ represents the trade-off between speed (low $k$) and precision (high $k$).
When $k$ is equal to the number of nodes $n$ in the graph, the approximate measure is equivalent to the original.

To determine the efficacy of each approximation measure we vary $k\in [5, 300]$ in increments of $10$, and measure the absolute error between the approximate and original measure, averaged over 30 runs on a clustered scale free graph containing 300 nodes.
In Figure~\ref{fig:measure_error}, we observe that average vertex betweenness accurately approximates the original measure using $\sim$10\% of the nodes in the graph.
This results in a significant speed-up, and is in line with prior research~\cite{brandes2007centrality}.
While the absolute error for each spectral approximation is large, these approximations find utility in measuring the relative change in graph robustness after a series of perturbations (i.e., addition or removal of nodes/edges).
While not immediately obvious, this can enable the development a wide range of optimization based defense techniques~\cite{chan2016optimizing,chan2014make}.

\smallskip
\noindent\textbf{Scalability.}
To help \textsc{Tiger}\xspace{}{} users determine which measures would scale to large graphs,
we compare and report the scalability of all 22 robustness measures on 5 clustered scale-free graphs
ranging from 100, 1k, 10k 100k, to 1M nodes,
averaged over 10 random runs, as shown in Figure~\ref{fig:measure_scalability}.
We compute every measure on each of the 5 graphs for 30 minutes, and observe clear trends allowing us to assess the measures' potential to scale to larger graphs.
For approximate edge and vertex betweenness measures we set $k=0.1n$, where $n$ is the number of nodes~\cite{brandes2007centrality}.
For spectral measure we set $k=30$~\cite{chan2014make}.
We find that 7 measures are highly scalable, i.e., running in less than 30 minutes on a 1M million node graph,
with 2 notable runner-ups that are able to run on a 100k graph in less than 30 minutes.
We consider the remaining measures to scale poorly.

\section{TIGER Attacks}\label{section:attack}

There are two primary ways a network can become damaged---(1) \textit{natural failure} and (2) \textit{targeted attack}.
Natural failures typically occur when a piece of equipment breaks down from natural causes.
In the study of graphs, this would correspond to the removal of a node or edge in the graph.
While random network failures regularly occur, they are typically less severe than targeted attacks.
This has been shown to be true across a range of graph structures~\cite{xia2010cascading,beygelzimer2005improving}.
In contrast, targeted attacks carefully select nodes and edges in the network for removal in order to maximally disrupt network functionality.
As such, we focus the majority of our attention to targeted attacks.
In Section~\ref{subsec:attack_overview}, we provide a high-level overview of several network failure and attack strategies.
Then, in Section~\ref{subsec:comparing_attacks} we highlight 10 attack strategies implemented in \textsc{Tiger}\xspace{}{}.

\subsection{Attack Strategies}\label{subsec:attack_overview}
We showcase an example attack in Figure~\ref{fig:network_attack} on the Kentucky KY-2 water distribution network~\cite{hernadez2016water}.
The network starts under normal conditions (far left), and at each step an additional node is removed by the attacker (red nodes).
After removing only 13 of the 814 nodes, the network is split into two separate regions.
By step 27, the network splits into four disconnected regions.
In this simulation, and in general, attack strategies rely on node and edge centrality measures to identify candidates.
Below, we highlight several attack strategies~\cite{holme2002attack} contained in \textsc{Tiger}\xspace{}.

\smallskip
\noindent\textbf{Initial degree removal (ID)} targets nodes with the highest degree $\delta_v$.
This has the effect of reducing the total number of edges in the network as fast as possible~\cite{holme2002attack}.
Since this attack only considers its neighbors when making a decision, it is considered a \textit{local attack}.
The benefit of this locality is low computational overhead.

\smallskip
\noindent\textbf{Initial betweenness removal (IB)} targets nodes with high betweenness centrality $b_v$.
This has the effect of destroying as many paths as possible~\cite{holme2002attack}.
Since path information is aggregated from across the network, this is considered a \textit{global attack} strategy.
Unfortunately, global information comes with significant computational overhead compared to a local attacks.

\begin{figure}[b]
    \centering
    \includegraphics[width=\linewidth]{figures/attack_plots.pdf}
    \caption{Efficacy of 5 edge attacks (left) and 5 node attacks (right) on the KY-2 water distribution network.
    The most effective attack (RB) disconnects approximately $50\%$ of the network with less than 30 removed edges (or nodes).}
    \label{fig:attack_plots}
\end{figure}

\smallskip
\noindent\textbf{Recalculated degree ($RD$)} and \textbf{betweenness removal ($RB$)} follow the same process as $ID$ and $IB$, respectively, with one additional step to recalculate the degree (or betweenness) distribution after a node is removed.
This recalculation often results in a stronger attack,
however, recalculating these distributions adds a significant amount of computational overhead to the attack.

\begin{figure*}[t]
    \centering
    \includegraphics[width=0.95\textwidth]{figures/attack_network.pdf}
    \caption{\textsc{Tiger}\xspace{}{} simulation of an RD node attack on the KY-2 water distribution network.
    Step 0: network starts under normal conditions; at each step a node is removed by the attacker (red nodes).
    Step 13, 22 \& 27: after removing only a few of the 814 nodes, the network splits into two and three and four disconnected regions, respectively.}
    \label{fig:network_attack}
\end{figure*}

\subsection{Comparing Strategies}\label{subsec:comparing_attacks}
To help \textsc{Tiger}\xspace{}{} users determine the effectiveness of attack strategies, we evaluate $5$ node and $5$ edge attacks on the Kentucky KY-2 water distribution network in Figure~\ref{fig:attack_plots}.
We begin by analyzing each node attack strategy---$ID$, $RD$, $IB$, $RB$ and $RND$ (random selection)---on the left-side of Figure~\ref{fig:attack_plots}.
Attack success is measured based on how fractured the network becomes when removing nodes from the network.
We identify three key observations---(i) random node removal ($RND$) is not an effective strategy on this network structure; (ii) $RB$ is the most effective attack strategy; and (iii) the remaining three attacks are roughly equivalent, falling somewhere between $RND$ and $RB$.

Analyzing Figure~\ref{fig:network_attack}, we can gain insight into why $RB$ is the most effective of the attacks.
If we look carefully, we observe that certain nodes (and edges) in the network act as key bridges between various network regions.
As a result, attacks able to identify these bridges are highly effective in disrupting this network.
In contrast, degree based attacks are less effective, likely due to the balanced degree distribution.
The analysis is similar for edge based attacks.

\section{TIGER Defenses}\label{sec:defenses}
The same centrality measures effective in attacking a network are important to network defense (e.g., degree, betweenness, PageRank, eigenvector, etc.).
In fact, if an attack strategy is known a priori, node monitoring can largely prevent an attack altogether.
In Section~\ref{subsec:defense_overview}, we provide a high-level overview of several heuristic and optimization based defense techniques.
Then, in Section~\ref{subsec:defense_comparison} we show \textsc{Tiger}\xspace{}{} users how several defense techniques can be used to robustify an attacked network.

\subsection{Defense Strategies}\label{subsec:defense_overview}
We categorize defense techniques based on whether they operate heuristically, modifying graph structure independent of a robustness measure, or by optimizing for a particular robustness measure~\cite{chan2016optimizing}.
Within each  category a network can be defended i.e., improve its robustness by---(1) \textit{edge rewiring}, (2) \textit{edge addition}, or (iii) \textit{node monitoring}.
Edge rewiring is considered a \textit{low} cost, \textit{less} effective version of edge addition.
On the other hand, edge addition almost always provides stronger defense~\cite{beygelzimer2005improving}.
Node monitoring provides an orthogonal mechanism to increase network robustness by monitoring (or removing) nodes in the graph.
This has an array of applications, including: (i) preventing targeted attacks, (ii) mitigating cascading failures, and (iii) reducing the spread of network entities.
Below, we highlight several heuristic and optimization based techniques contained in \textsc{Tiger}\xspace{}.

\smallskip
\noindent\textbf{Heuristic Defenses.}
We overview $5$ edge rewiring and addition defenses~\cite{beygelzimer2005improving}, and compare the effectiveness of them in
Section~\ref{subsec:defense_comparison}:

\begin{enumerate}[label=\arabic*., topsep=4pt, leftmargin=*, itemsep=3pt]
    \item \textit{Random addition}: adds an edge between two random nodes.

    \item \textit{Preferential addition}: adds an edge connecting two nodes with the lowest degrees.

    \item \textit{Random edge rewiring}: removes a random edge and adds one using (1).

    \item \textit{Random neighbor rewiring}: randomly selects neighbor of a node and removes the edge. An edge is then added using (1).

    \item \textit{Preferential random edge rewiring}: selects an edge, disconnects the higher degree node, and reconnects to a random one.
\end{enumerate}

\smallskip
\noindent\textbf{Optimization Defenses.}
We discuss the Netshield node monitoring technique which identifies key nodes in a network to reduce the spread of entity dissemination (e.g., viruses)~\cite{tong2010vulnerability}.
To minimize the spread of entities, Netshield minimizes the spectral radius of the graph $\lambda_1$ by selecting the best set $S$ of $k$ nodes to remove from the graph (i.e., maximize eigendrop).
In order to evaluate the goodness of a node set $S$ for removal, \cite{tong2010vulnerability} proposes the Shield-value measure:

\begin{equation}
    Sv(S) = \sum_{i\in S}2\lambda_1 \bm{u}_1(i)^2 - \sum_{i,j\in S} A(i,j)\bm{u}(i)\bm{u}(j)
\end{equation}

\noindent The intuition behind this equation is to select nodes for monitoring that have high eigenvector centrality (first term), while penalizing neighboring nodes to prevent grouping (second term).
We demonstrate the utility of this defense mechanism in Section~\ref{sec:simulations}.

\begin{figure}[t]
    \centering
    \includegraphics[width=0.95\linewidth]{figures/defense_network.pdf}
    \caption{Comparing ability of 5 edge defenses to improve KY-2 network robustness after removing 30 nodes via RB attack.
    Edge addition performs the best, with random edge rewiring performing the worst.}
    \label{fig:edge_defense}
\end{figure}

\subsection{Comparing Strategies}\label{subsec:defense_comparison}
To help users evaluate the effectiveness of defense techniques, we compare 5 edge defenses on the Kentucky KY-2 water distribution network, averaged over 10 runs, in Figure~\ref{fig:edge_defense}.
The network is initially attacked using the $RB$ attack strategy (30 nodes removed), and the success of each defense is measured based on how it can reconnect the network by adding or rewiring edges in the network (higher is better).
Based on Figure~\ref{fig:edge_defense}, we identify three key observations---(i) preferential edge addition performs the best; (ii) edge addition, in general, outperforms rewiring strategies; and (iii) random neighbor rewiring typically performs better than the other rewiring strategies.

\section{TIGER Simulation Tools}\label{sec:simulations}
We implement 4 broad and important types of robustness simulation tools~\cite{kermack1927contribution,watts1998collective,holme2002attack,beygelzimer2005improving,tong2010vulnerability}---(1) dissemination of network entities,
(2) cascading failures
(3) network attacks, see Section~\ref{section:attack}, and
(4) network defense, see Section~\ref{sec:defenses}.
In Section~\ref{subsec:dissemination}, we discuss the implementation of an infectious disease models and how defense techniques implemented in \textsc{Tiger}\xspace{}{} can be used to either \textit{minimize} or \textit{maximize} the network diffusion.
Then, in Section~\ref{section:attack}, we discuss the implementation of the cascading failure model and its interactions with \textsc{Tiger}\xspace{}{} defense and attack strategies.

\begin{figure}[b]
    \centering
    \includegraphics[width=\linewidth]{figures/virus_plots.pdf}
    \caption{SIS simulation with 5 virus strengths on the Oregon-1 Autonomous System network. No defense (left), Netshield defense (right).}
    \label{fig:virus_plots}
\end{figure}

\subsection{Dissemination of Network Entities}\label{subsec:dissemination}
A critical concept in entity dissemination is \textit{network diffusion}, which attempts to capture the underlying mechanism enabling network propagation.
In order to augment this diffusion process, \textsc{Tiger}\xspace{}{} leverages the defense techniques in Section~\ref{sec:defenses} for use with two prominent diffusion models: the flu-like susceptible-infected-susceptible (SIS) model, and the vaccinated-like susceptible-infected-recovered (SIR) model~\cite{kermack1927contribution}.
For example, to \textit{minimize} the ability of viruses to spread we can monitor (remove) nodes in the graph to reduce graph connectivity.
On the other hand, if want to \textit{maximize} network diffusion e.g., marketing campaign, we can use defense techniques like edge rewiring or addition to increase graph connectivity.
Below, we highlight the SIS infectious disease model and how \textsc{Tiger}\xspace{}'s defense techniques can help contain a simulated outbreak.

\begin{figure*}[t]
    \centering
    \includegraphics[width=0.95\textwidth]{figures/cascading_network.pdf}
    \caption{
    \textsc{Tiger}\xspace{}{} cascading failure simulation on the US power grid network when 4 nodes are overloaded according to the ID attack strategy.
    Time step 1: shows the network under normal conditions.
    Time step 50: we observe a series of failures originating from the bottom of the network.
    Time step 70: most of the network has collapsed.}
    \label{fig:cascading_network}
\end{figure*}

\smallskip
\noindent\textbf{Design and Implementation.}
Each node in the SIS model can be in one of two states, infected $I$ or susceptible $S$.
At each time step $t$, an infected node $v$ has a probability $\beta$ of infecting each of it's uninfected neighbors $u\in N(v)$.
After this, each infected node $v$ has a probability $\delta$ of healing and becoming susceptible again.
The relationship between the birth rate $\beta$, death rate $\delta$ and the spectral radius $\lambda_1$ of the graph has been a widely studied topic.
In \cite{wang2003epidemic}, they show that the spectral radius of a graph is closely tied to the epidemic threshold $\tau$ of a network in an SIS model.
In particular, they prove that $\frac{\beta}{\delta} < \tau=\frac{1}{\lambda_{1}}$.
This means for a given virus strength $s$, an epidemic is more likely to occur on a graph with larger $\lambda_1$.
As such, we say that a virus has an effective strength $s = \lambda_1 \cdot b / d$, where a larger $s$ means a stronger virus~\cite{tong2010vulnerability}.

\smallskip
\noindent\textbf{Simulating dissemination of entities.}
To help users visualize the dissemination process, we enable them to create visuals like Figure~\ref{fig:virus_simulation}, where we run an SIS computer virus simulation ($s=3.21$) on the Oregon-1 Autonomous System network~\cite{leskovec2005graphs}.
The top of Figure~\ref{fig:virus_simulation} shows the virus progression when defending 5 nodes selected by Netshield~\cite{tong2010vulnerability}.
By time step 1000, the virus has nearly died out.
The bottom of Figure~\ref{fig:virus_simulation} shows that the virus remains endemic without defense.
To assist users in summarizing model results over many configurations, we enable them to create plots like Figure~\ref{fig:virus_plots}, which show results for 5
SIS effective
virus strengths
$s=\{0, 3.21, 6.42, 9.63, 12.84\}$
over a period of 5000 steps.

\subsection{Cascading Failures}\label{subsec:cascading_failures}
Cascading failures often arise as a result of natural failures or targeted attacks in a network.
Consider an electrical grid where a central substation goes offline.
In order to maintain the distribution of power, neighboring substations have to increase production in order to meet demand.
However, if this is not possible, the neighboring substation fails, which in turn causes additional neighboring substations to fail.
The end result is a series of cascading failures i.e., a blackout~\cite{crucitti2004model}.
While cascading failures can occur in a variety of network types e.g., water, electrical, communication, we focus on the electrical grid.
Below, we discuss the design and implementation of the cascading failure model and how \textsc{Tiger}\xspace{}{} can be used to both \textit{induce} and \textit{prevent} cascading failures using the attack and defense mechanisms discussed in Sections~\ref{section:attack} and \ref{sec:defenses}, respectively.

\smallskip
\noindent\textbf{Design and Implementation.}
There are 3 main processes governing the network simulation---%
(1) \textit{capacity} of each node $c_v\in [0,1]$;
(2) \textit{load} of each node $l_v\in U(0, l_{max})$; and
(3) network \textit{redundancy} $r\in [0, 1]$.
The capacity of each node $c_v$ is the the maximum load a node can handle, which is set based on the node's normalized betweenness centrality~\cite{hernandez2013probabilistic}.
The load of each node $l_v$ represents the fraction of maximum capacity $c_v$ that the node operates at.
Load for each node $c_v$ is set by uniformly drawing from $U(0, l_{max})$, where $l_{max}$ is the maximum initial load.
Network redundancy $r$ represents the amount of reserve capacity present in the network i.e., auxiliary support systems.
At the beginning of the simulation, we allow the user to attack and defend the network according to the node attack and defense strategies in Sections~\ref{section:attack} and \ref{sec:defenses}, respectively.
When a node is attacked it becomes ``overloaded'', causing it to fail and requiring the load be distributed to the neighbors.
When defending a node we increase it's capacity to protect against attacks.

\begin{figure}[b]
    \centering
    \includegraphics[width=0.95\linewidth]{figures/cascading_plot.pdf}
    \vspace{-0.25cm}
    \caption{Effect of network redundancy $r$ on the US power grid where 4 nodes are overloaded using ID.
    When $r\geq 50\%$ the network is able to redistribute the increased load.}
    \label{fig:cascading_plot}
    \vspace{-0.5cm}
\end{figure}

\smallskip
\noindent\textbf{Simulating cascading failures.}
To help users visualize cascading failures induced by targeted attacks, we enable them to create visuals like Figure~\ref{fig:cascading_network}, where
we overload 4 nodes selected by the ID attack strategy on the US power grid dataset~\cite{watts1998collective} ($l_{max}=0.8$).
Node size represents capacity i.e., larger size $\rightarrow$ higher capacity, and color indicates the load of each node on a gradient scale from blue (low load) to red (high load); dark red indicates node failure (overloaded).
Time step 1 shows the network under normal conditions; at step 50 we observe a series of failures originating from the bottom of the network; by step 70 most of the network has collapsed.
To assist users in summarizing simulation results over many configurations, we enable them to create plots like Figure~\ref{fig:cascading_plot}, which shows the effect of network redundancy $r$ when 4 nodes are overloaded by the ID attack strategy.
At $50\%$ redundancy, we observe a critical threshold where the network is able to redistribute the increased load.
For $r<50\%$, the cascading failure can be delayed but not prevented.

\section{Conclusion}\label{sec:conclusion}
The study of network robustness is a critical tool in the characterization and understanding of complex interconnected systems.
Through analyzing and understanding the robustness of these networks we can:
(1) quantify network vulnerability and robustness,
(2) augment a network's structure to resist attacks and recover from failure, and
(3) control the dissemination of entities on the network (e.g., viruses, propaganda).
While significant research has been conducted on all of these tasks, no comprehensive open-source toolbox currently exists to assist researchers and practitioners in this important topic.
This lack of available tools hinders reproducibility and examination of existing work, development of new research, and dissemination of new ideas.
To address these challenges, we contribute \textsc{Tiger}\xspace{}{}, an open-sourced Python toolbox containing 22 graph robustness measures with both original and fast approximate versions;
17 failure and attack strategies; 15 heuristic and optimization based defense techniques; and 4 simulation tools.

\section{Acknowledgements}
This work was in part supported by the NSF grant IIS-1563816, GRFP (DGE-1650044), and a Raytheon fellowship.

\bibliographystyle{ACM-Reference-Format}

\section{Introduction}

\textbf{Motivation.}
First mentioned as early as the 1970's~\cite{chvatal1973tough}, network robustness has a rich and diverse history spanning numerous fields of engineering and science~\cite{klein1993resistance,beygelzimer2005improving,tong2010vulnerability,krishnamoorthy1987fault}.
This diversity of research has generated
a variety of unique perspectives, providing fresh insight into challenging problems while equipping researchers with fundamental knowledge for their investigations.
While the fields of study are diverse, they are linked by a common definition of \textbf{robustness},
which is defined as a
{\textit{measure of a network's ability to continue functioning when part of the network is naturally damaged or targeted for attack}}~\cite{ellens2013graph,chan2016optimizing,beygelzimer2005improving}.

The study of network robustness is critical to the understanding of complex interconnected systems.
For example, consider an example of a power grid network that is susceptible to both natural \textit{failures} and targeted \textit{attacks}.
A natural failure occurs when a \textit{single} power substation fails due to erosion of parts or natural disasters.
However, when one substation fails, additional load is routed to alternative substations, potentially causing a series of \textit{cascading failures}.
Not all failures originate from natural causes, some come from \textit{targeted} attacks,
such as enemy states hacking into the grid to sabotage key equipment to maximally damage the operations of the electrical grid.
A natural counterpart to network robustness is \textbf{vulnerability},
defined as a \textit{measure of a network's susceptibility to the dissemination of entities across the network}~\cite{tong2010vulnerability},
such as how quickly a virus spreads across a computer network.

\vspace{0.1cm}
\noindent\textbf{Challenges for robustness and vulnerability research.}
Unfortunately, the nature of cross-disciplinary research also comes with significant challenges.
Oftentimes important discoveries made in one field are not quickly disseminated, leading to missed innovation opportunities.
We believe a unified and easy-to-use software framework is key to standardizing the study of network robustness, helping accelerate reproducible research and dissemination of ideas.

\begin{figure*}[t]
    \centering
    \includegraphics[width=0.9\textwidth]{figures/virus_network.pdf}
    \caption{\textsc{Tiger}\xspace{}{} provides a number of important tools for graph vulnerability and robustness research, including graph robustness measures, attack strategies, defense techniques and simulation models.
    Here, a \textsc{Tiger}\xspace{}{} user is visualizing a computer virus simulation that follows the SIS infection model (effective strength $s=3.21$) on the \textit{Oregon-1 Autonomous System} network~\cite{leskovec2005graphs}.
    Top: defending only 5 nodes with  \textit{Netshield}~\cite{tong2010vulnerability}, the number of infected entities is reduced to nearly zero.
    Bottom: without any defense, the virus remains endemic.}
    \label{fig:virus_simulation}
\end{figure*}

\vspace{0.1cm}
\noindent\textbf{\textsc{Tiger}\xspace{}{} design and implementation.}
We present \textsc{Tiger}\xspace{}{}, an open-sourced Python \textit{\textbf{T}oolbox for evaluat\textbf{I}ng \textbf{G}raph vuln\textbf{E}rability and \textbf{R}obustness}.
Through \textsc{Tiger}\xspace{}{}, our goal is to catalyze network robustness research, promote reproducibility and amplify the reach of novel ideas.
In designing \textsc{Tiger}\xspace{}{}, we consider multiple complex implementation decisions, including:
(1) the criterion for inclusion in the toolbox;
(2) identifying and synthesizing a set of core robustivity features needed by the community; and
(3) the design and implementation of the framework itself.
We address the \textit{inclusion criterion} by conducting a careful analysis of influential and representative papers (e.g., \cite{chan2016optimizing,tong2010vulnerability,malliaros2012fast,holme2002attack,beygelzimer2005improving}) across top journals and conferences from the relevant domains (e.g., ICDM, SDM, Physica A, DMKD, Physical Review E), many of which we will discuss in detail in this paper.
We also include papers posted on arXiv, as many cutting-edge papers are first released here.

Based on our analysis, we identify and include papers
that tackle one or more of the following fundamental tasks~\cite{ellens2013graph,holme2002attack,beygelzimer2005improving}:
(1) measuring network robustness and vulnerability;
(2) understanding network failure and attack mechanisms;
(3) developing defensive techniques;
and (4) creating simulation tools to model processes.
From these papers, we select and implement a total of 44 attacks, defenses and robustness measures, along with 4 simulation tools in which they can be used.
Due to a vibrant and growing community of users, we develop \textsc{Tiger}\xspace{}{} in Python 3, leveraging key libraries, such as NetworkX, SciPy, Numpy and Matplotlib.
While excellent alternative network analysis tools exist~\cite{hagberg2008exploring,azizi2020epidemics,rossetti2018ndlib,klise2018overview,korkali2017reducing,bastian2009gephi}, many of them are domain specific (e.g., EoN~\cite{azizi2020epidemics}, WNTR~\cite{klise2018overview}) or do not provide direct support for network robustness analysis (e.g., NetworkX~\cite{hagberg2008exploring}, Gephi~\cite{bastian2009gephi}).
In contrast, \textsc{Tiger}\xspace{}{} complements existing tools while providing key missing network robustness components.

\input{tables/measure_comparison}

\subsection{Contributions}

\noindent\textbf{1. TIGER.}
We present \textsc{Tiger}\xspace{}{}, the first open-sourced Python toolbox for evaluating network vulnerability and robustness of graphs.
\textsc{Tiger}\xspace{}{} contains 22 graph robustness measures with both original and fast approximate versions when possible;
17 failure and attack mechanisms; 15 heuristic and optimization based defense techniques; and 4 simulation tools.
To the best of our knowledge, this makes \textsc{Tiger}\xspace{}{} the most comprehensive open-source framework for network robustness analysis to date.

\medskip
\noindent\textbf{2. Open-Source \& Permissive Licensing.}
Our goal is to democratize the tools needed to study network robustness; assisting researchers and practitioners in the analysis of their own networks.
As such, we open-source the \textit{code} on Github with an \textit{MIT license},
available at: \url{https://github.com/safreita1/TIGER}.

\smallskip
\noindent\textbf{3. Extensive Documentation \& Tutorials.}
We extensively document the functionality of \textsc{Tiger}\xspace{}{}, providing a detailed description and working example for many robustness measures, attacks, and defense mechanisms.
In addition, we provide detailed tutorials on the analysis of network vulnerability and robustness on multiple large-scale, real-world networks, including \textit{every} figure and plot shown in this paper.
Users with Python familiarity will be able to readily pick up \textsc{Tiger}\xspace{}{} for analysis with their own data.

\smallskip
\noindent\textbf{4. Community Impact.}
\textsc{Tiger}\xspace{}{} helps enable reproducible research and the timely dissemination of new and current ideas in the area of network robustness and vulnerability analysis.
Since this is a \textit{large} and \textit{highly active} field across many disciplines of science and engineering, we anticipate that \textsc{Tiger}\xspace{}{} will have significant impact.
As the field grows, we will update \textsc{Tiger}\xspace{}{} with additional features such as multi-graphs, dynamic networks and rich attribute information.

\bigskip
\noindent
\textbf{Terminology and Notation.}
As the study of graphs has been carried out in a variety of fields (e.g., mathematics, physics, computer science), the terminology often varies from field to field.
As such, we refer to the following word pairs interchangeably: (network, graph), (vertex, node), (edge, link).
Throughout the paper, we follow standard practice and use capital bold letters for matrices (e.g., $\bm{A}$), lower-case bold letters for vectors (e.g., $\bm{a}$).
Also, we focus on undirected and unweighted graphs.

\section{TIGER Robustness Measures}\label{section:metrics}

\textsc{Tiger}\xspace{}{} contains 22 robustness measures, grouped into one of three categories depending on whether the measure utilizes the graph, adjacency, or Laplacian matrix.
In Table~\ref{table:metric_comparison}, we highlight each implemented measure, the category it belongs to (graph, adjacency, Laplacian), and its application to network robustness.
Next, we select 3 robustness measures, one from each of the three categories, to extensively discuss.
For detailed description and discussion of all 22 measures, we refer the reader to the online documentation.

\subsection{Example Measures}\label{subsec:measure_overview}

\noindent\textbf{Average vertex betweenness ($\bar{b}_v$)}\label{subsec:vertex-betweenness}
of a graph $G=(\altmathcal{V}, \altmathcal{E})$ is the summation of vertex betweenness $b_u$ for every node $u\in V$, where vertex betweenness for node $u$ is defined as the number of shortest paths that pass through $u$ out of the total possible shortest paths

\begin{equation}\label{eq:vertex-betweenness}
    \bar{b}_v = \sum_{u\in V}\sum_{s\in V}\sum_{\substack{t\in V \\ s\neq t\neq u}} \frac{n_{s,t}(u)}{n_{s,t}}
\end{equation}

where $n_{s, t}(u)$ is the number of shortest paths between $s$ and $t$ that pass through $u$ and $n_{s, t}$ is the total number of shortest paths between $s$ and $t$~\cite{freeman1977set}.
Average vertex betweenness has a natural connection to graph robustness since it measures the average load on vertices in the network.
The smaller the average the more robust the network, since load is more evenly distributed across nodes.

\begin{figure*}[t]
    \centering
    \includegraphics[width=\textwidth]{figures/measure_error.pdf}
    \caption{Error of 5 fast, approximate robustness measures supported by \textsc{Tiger}\xspace{}{}.
    Parameter $k$ represents the trade-off between speed (low $k$) and precision (high $k$).
    To measure approximation efficacy, we vary $k\in [5, 300]$ in increments of $10$ and measure the absolute error between the approximate and original measure averaged over 30 runs on a clustered scale-free graph with 300 nodes.}
    \label{fig:measure_error}
\end{figure*}

\smallskip
\noindent\textbf{Spectral scaling ($\xi$)} indicates if a network is simultaneously sparse and highly connected, known as ``good expansion'' (GE)~\cite{hoory2006expander,estrada2006network}.
Intuitively, we can think of a network with GE as a network lacking bridges or bottlenecks.
In order to determine if a network has GE, \cite{estrada2006network} proposes to combine the spectral gap measure with odd subgraph centrality $SC_{odd}$, which measures the number of odd length closed walks a node participates in.
Formally, \textit{spectral scaling} is described in Equation~\ref{eq:expansion_character},

\begin{equation}\label{eq:expansion_character}
    \xi(G) = \sqrt{\frac{1}{n} \sum_{i=1}^{n} \{log[\bm{u}_1(i)] - [log\bm{A} + \frac{1}{2} log[SC_{odd}(i)]] \}^2 }
\end{equation}

where $\bm{A}$ = $[sinh(\lambda_1)]^{-0.5}$, $n$ is the number of nodes, and $\bm{u}_1$ is the first eigenvector of adjacency matrix $\bm{A}$.
The closer $\xi$ is to zero, the better the expansion properties and the more robust the network.
Formally, a network is considered to have GE if $\xi < 10^{-2}$, the correlation coefficient $r < 0.999$ and the slope is $0.5$.

\smallskip
\noindent\textbf{Effective resistance ($R$)}
views a graph as an electrical circuit where an edge $(i, j)$ corresponds to a resister of $r_{ij}$ = $1$ Ohm and a node $i$ corresponds to a junction.
As such, the effective resistance between two vertices $i$ and $j$, denoted $R_{ij}$, is the electrical resistance measured across $i$ and $j$ when calculated using Kirchoff's circuit laws.
Extending this to the whole graph, we say the \textit{effective graph resistance} $R$ is the sum of resistances for all distinct pairs of vertices~\cite{ellens2013graph,ghosh2008minimizing}.
Klein and Randic~\cite{klein1993resistance} proved this can be calculated based on the sum of the inverse non-zero Laplacian eigenvalues:

\begin{equation}
    R = \frac{1}{2}\sum_{i, j}^{n} R_{ij} = n\sum_{i=2}^{n} \frac{1}{\mu_i}
\end{equation}

As a robustness measure, effective resistance measures how well connected a network is, where a smaller value indicates a more robust network~\cite{ghosh2008minimizing,ellens2013graph}.
In addition, the effective resistance has many desirable properties, including the fact that it strictly decreases when adding edges, and takes into account both the number of paths between node pairs and their length~\cite{ellens2011effective}.

\begin{figure*}[t]
    \centering
    \includegraphics[width=\textwidth]{figures/measure_scalability.pdf}
    \caption{Scalability of \textsc{Tiger}\xspace{}'s 22 robustness measures on a clustered scale free graph ranging from 100, 1k, 10k 100k, to 1M nodes averaged over 10 runs.
    We find 7 measures are highly scalable i.e., runs in <30 minutes on a 1M node graph.
    }
    \label{fig:measure_scalability}
\end{figure*}

\subsection{Measure Implementation \& Evaluation}\label{subsec:measure_comparison}
Our goal for \textsc{Tiger}\xspace{}{} is to implement each robustness measure in a clear and concise manner to facilitate code readability, while simultaneously optimizing for execution speed.
Each robustness measure is wrapped in a function that abstracts mathematical details away from the user;
and any default parameters are set for a balance of \textit{speed} and \textit{precision}.
Below we compare the efficacy of 5 fast, approximate robustness measures, followed by an analysis of the scalability of all 22 measures.

\smallskip
\noindent\textbf{Approximate Measures.}
It turns out that a large number of robustness measures have difficulty scaling to large graphs.
To help address this, we implement and compare 5 fast approximate measure, three spectral based (natural connectivity, number of spanning trees, effective resistance), and two graph based (average vertex betweenness, average edge betweenness)~\cite{chan2016optimizing,brandes2007centrality}.
To approximate \textit{natural connectivity} we use the top-$k$ eigenvalues of the adjacency matrix as a low rank approximation~\cite{chan2016optimizing,malliaros2012fast}.
For the \textit{number of spanning trees} and \textit{effective resistance} we take the bottom-$k$ eigenvalues of the Laplacian matrix~\cite{chan2016optimizing}.
For graph measures, \textit{average vertex betweenness} and \textit{average edge betweenness}, we randomly sample $k$ nodes to calculate centrality.
In both cases, the parameter $k$ represents the trade-off between speed (low $k$) and precision (high $k$).
When $k$ is equal to the number of nodes $n$ in the graph, the approximate measure is equivalent to the original.

To determine the efficacy of each approximation measure we vary $k\in [5, 300]$ in increments of $10$, and measure the absolute error between the approximate and original measure, averaged over 30 runs on a clustered scale free graph containing 300 nodes.
In Figure~\ref{fig:measure_error}, we observe that average vertex betweenness accurately approximates the original measure using $\sim$10\% of the nodes in the graph.
This results in a significant speed-up, and is in line with prior research~\cite{brandes2007centrality}.
While the absolute error for each spectral approximation is large, these approximations find utility in measuring the relative change in graph robustness after a series of perturbations (i.e., addition or removal of nodes/edges).
While not immediately obvious, this can enable the development a wide range of optimization based defense techniques~\cite{chan2016optimizing,chan2014make}.

\smallskip
\noindent\textbf{Scalability.}
To help \textsc{Tiger}\xspace{}{} users determine which measures would scale to large graphs,
we compare and report the scalability of all 22 robustness measures on 5 clustered scale-free graphs
ranging from 100, 1k, 10k 100k, to 1M nodes,
averaged over 10 random runs, as shown in Figure~\ref{fig:measure_scalability}.
We compute every measure on each of the 5 graphs for 30 minutes, and observe clear trends allowing us to assess the measures' potential to scale to larger graphs.
For approximate edge and vertex betweenness measures we set $k=0.1n$, where $n$ is the number of nodes~\cite{brandes2007centrality}.
For spectral measure we set $k=30$~\cite{chan2014make}.
We find that 7 measures are highly scalable, i.e., running in less than 30 minutes on a 1M million node graph,
with 2 notable runner-ups that are able to run on a 100k graph in less than 30 minutes.
We consider the remaining measures to scale poorly.

\section{TIGER Attacks}\label{section:attack}

There are two primary ways a network can become damaged---(1) \textit{natural failure} and (2) \textit{targeted attack}.
Natural failures typically occur when a piece of equipment breaks down from natural causes.
In the study of graphs, this would correspond to the removal of a node or edge in the graph.
While random network failures regularly occur, they are typically less severe than targeted attacks.
This has been shown to be true across a range of graph structures~\cite{xia2010cascading,beygelzimer2005improving}.
In contrast, targeted attacks carefully select nodes and edges in the network for removal in order to maximally disrupt network functionality.
As such, we focus the majority of our attention to targeted attacks.
In Section~\ref{subsec:attack_overview}, we provide a high-level overview of several network failure and attack strategies.
Then, in Section~\ref{subsec:comparing_attacks} we highlight 10 attack strategies implemented in \textsc{Tiger}\xspace{}{}.

\subsection{Attack Strategies}\label{subsec:attack_overview}
We showcase an example attack in Figure~\ref{fig:network_attack} on the Kentucky KY-2 water distribution network~\cite{hernadez2016water}.
The network starts under normal conditions (far left), and at each step an additional node is removed by the attacker (red nodes).
After removing only 13 of the 814 nodes, the network is split into two separate regions.
By step 27, the network splits into four disconnected regions.
In this simulation, and in general, attack strategies rely on node and edge centrality measures to identify candidates.
Below, we highlight several attack strategies~\cite{holme2002attack} contained in \textsc{Tiger}\xspace{}.

\smallskip
\noindent\textbf{Initial degree removal (ID)} targets nodes with the highest degree $\delta_v$.
This has the effect of reducing the total number of edges in the network as fast as possible~\cite{holme2002attack}.
Since this attack only considers its neighbors when making a decision, it is considered a \textit{local attack}.
The benefit of this locality is low computational overhead.

\smallskip
\noindent\textbf{Initial betweenness removal (IB)} targets nodes with high betweenness centrality $b_v$.
This has the effect of destroying as many paths as possible~\cite{holme2002attack}.
Since path information is aggregated from across the network, this is considered a \textit{global attack} strategy.
Unfortunately, global information comes with significant computational overhead compared to a local attacks.

\begin{figure}[b]
    \centering
    \includegraphics[width=\linewidth]{figures/attack_plots.pdf}
    \caption{Efficacy of 5 edge attacks (left) and 5 node attacks (right) on the KY-2 water distribution network.
    The most effective attack (RB) disconnects approximately $50\%$ of the network with less than 30 removed edges (or nodes).}
    \label{fig:attack_plots}
\end{figure}

\smallskip
\noindent\textbf{Recalculated degree ($RD$)} and \textbf{betweenness removal ($RB$)} follow the same process as $ID$ and $IB$, respectively, with one additional step to recalculate the degree (or betweenness) distribution after a node is removed.
This recalculation often results in a stronger attack,
however, recalculating these distributions adds a significant amount of computational overhead to the attack.

\begin{figure*}[t]
    \centering
    \includegraphics[width=0.95\textwidth]{figures/attack_network.pdf}
    \caption{\textsc{Tiger}\xspace{}{} simulation of an RD node attack on the KY-2 water distribution network.
    Step 0: network starts under normal conditions; at each step a node is removed by the attacker (red nodes).
    Step 13, 22 \& 27: after removing only a few of the 814 nodes, the network splits into two and three and four disconnected regions, respectively.}
    \label{fig:network_attack}
\end{figure*}

\subsection{Comparing Strategies}\label{subsec:comparing_attacks}
To help \textsc{Tiger}\xspace{}{} users determine the effectiveness of attack strategies, we evaluate $5$ node and $5$ edge attacks on the Kentucky KY-2 water distribution network in Figure~\ref{fig:attack_plots}.
We begin by analyzing each node attack strategy---$ID$, $RD$, $IB$, $RB$ and $RND$ (random selection)---on the left-side of Figure~\ref{fig:attack_plots}.
Attack success is measured based on how fractured the network becomes when removing nodes from the network.
We identify three key observations---(i) random node removal ($RND$) is not an effective strategy on this network structure; (ii) $RB$ is the most effective attack strategy; and (iii) the remaining three attacks are roughly equivalent, falling somewhere between $RND$ and $RB$.

Analyzing Figure~\ref{fig:network_attack}, we can gain insight into why $RB$ is the most effective of the attacks.
If we look carefully, we observe that certain nodes (and edges) in the network act as key bridges between various network regions.
As a result, attacks able to identify these bridges are highly effective in disrupting this network.
In contrast, degree based attacks are less effective, likely due to the balanced degree distribution.
The analysis is similar for edge based attacks.

\section{TIGER Defenses}\label{sec:defenses}
The same centrality measures effective in attacking a network are important to network defense (e.g., degree, betweenness, PageRank, eigenvector, etc.).
In fact, if an attack strategy is known a priori, node monitoring can largely prevent an attack altogether.
In Section~\ref{subsec:defense_overview}, we provide a high-level overview of several heuristic and optimization based defense techniques.
Then, in Section~\ref{subsec:defense_comparison} we show \textsc{Tiger}\xspace{}{} users how several defense techniques can be used to robustify an attacked network.

\subsection{Defense Strategies}\label{subsec:defense_overview}
We categorize defense techniques based on whether they operate heuristically, modifying graph structure independent of a robustness measure, or by optimizing for a particular robustness measure~\cite{chan2016optimizing}.
Within each  category a network can be defended i.e., improve its robustness by---(1) \textit{edge rewiring}, (2) \textit{edge addition}, or (iii) \textit{node monitoring}.
Edge rewiring is considered a \textit{low} cost, \textit{less} effective version of edge addition.
On the other hand, edge addition almost always provides stronger defense~\cite{beygelzimer2005improving}.
Node monitoring provides an orthogonal mechanism to increase network robustness by monitoring (or removing) nodes in the graph.
This has an array of applications, including: (i) preventing targeted attacks, (ii) mitigating cascading failures, and (iii) reducing the spread of network entities.
Below, we highlight several heuristic and optimization based techniques contained in \textsc{Tiger}\xspace{}.

\smallskip
\noindent\textbf{Heuristic Defenses.}
We overview $5$ edge rewiring and addition defenses~\cite{beygelzimer2005improving}, and compare the effectiveness of them in
Section~\ref{subsec:defense_comparison}:

\begin{enumerate}[label=\arabic*., topsep=4pt, leftmargin=*, itemsep=3pt]
    \item \textit{Random addition}: adds an edge between two random nodes.

    \item \textit{Preferential addition}: adds an edge connecting two nodes with the lowest degrees.

    \item \textit{Random edge rewiring}: removes a random edge and adds one using (1).

    \item \textit{Random neighbor rewiring}: randomly selects neighbor of a node and removes the edge. An edge is then added using (1).

    \item \textit{Preferential random edge rewiring}: selects an edge, disconnects the higher degree node, and reconnects to a random one.
\end{enumerate}

\smallskip
\noindent\textbf{Optimization Defenses.}
We discuss the Netshield node monitoring technique which identifies key nodes in a network to reduce the spread of entity dissemination (e.g., viruses)~\cite{tong2010vulnerability}.
To minimize the spread of entities, Netshield minimizes the spectral radius of the graph $\lambda_1$ by selecting the best set $S$ of $k$ nodes to remove from the graph (i.e., maximize eigendrop).
In order to evaluate the goodness of a node set $S$ for removal, \cite{tong2010vulnerability} proposes the Shield-value measure:

\begin{equation}
    Sv(S) = \sum_{i\in S}2\lambda_1 \bm{u}_1(i)^2 - \sum_{i,j\in S} A(i,j)\bm{u}(i)\bm{u}(j)
\end{equation}

\noindent The intuition behind this equation is to select nodes for monitoring that have high eigenvector centrality (first term), while penalizing neighboring nodes to prevent grouping (second term).
We demonstrate the utility of this defense mechanism in Section~\ref{sec:simulations}.

\begin{figure}[t]
    \centering
    \includegraphics[width=0.95\linewidth]{figures/defense_network.pdf}
    \caption{Comparing ability of 5 edge defenses to improve KY-2 network robustness after removing 30 nodes via RB attack.
    Edge addition performs the best, with random edge rewiring performing the worst.}
    \label{fig:edge_defense}
\end{figure}

\subsection{Comparing Strategies}\label{subsec:defense_comparison}
To help users evaluate the effectiveness of defense techniques, we compare 5 edge defenses on the Kentucky KY-2 water distribution network, averaged over 10 runs, in Figure~\ref{fig:edge_defense}.
The network is initially attacked using the $RB$ attack strategy (30 nodes removed), and the success of each defense is measured based on how it can reconnect the network by adding or rewiring edges in the network (higher is better).
Based on Figure~\ref{fig:edge_defense}, we identify three key observations---(i) preferential edge addition performs the best; (ii) edge addition, in general, outperforms rewiring strategies; and (iii) random neighbor rewiring typically performs better than the other rewiring strategies.

\section{TIGER Simulation Tools}\label{sec:simulations}
We implement 4 broad and important types of robustness simulation tools~\cite{kermack1927contribution,watts1998collective,holme2002attack,beygelzimer2005improving,tong2010vulnerability}---(1) dissemination of network entities,
(2) cascading failures
(3) network attacks, see Section~\ref{section:attack}, and
(4) network defense, see Section~\ref{sec:defenses}.
In Section~\ref{subsec:dissemination}, we discuss the implementation of an infectious disease models and how defense techniques implemented in \textsc{Tiger}\xspace{}{} can be used to either \textit{minimize} or \textit{maximize} the network diffusion.
Then, in Section~\ref{section:attack}, we discuss the implementation of the cascading failure model and its interactions with \textsc{Tiger}\xspace{}{} defense and attack strategies.

\begin{figure}[b]
    \centering
    \includegraphics[width=\linewidth]{figures/virus_plots.pdf}
    \caption{SIS simulation with 5 virus strengths on the Oregon-1 Autonomous System network. No defense (left), Netshield defense (right).}
    \label{fig:virus_plots}
\end{figure}

\subsection{Dissemination of Network Entities}\label{subsec:dissemination}
A critical concept in entity dissemination is \textit{network diffusion}, which attempts to capture the underlying mechanism enabling network propagation.
In order to augment this diffusion process, \textsc{Tiger}\xspace{}{} leverages the defense techniques in Section~\ref{sec:defenses} for use with two prominent diffusion models: the flu-like susceptible-infected-susceptible (SIS) model, and the vaccinated-like susceptible-infected-recovered (SIR) model~\cite{kermack1927contribution}.
For example, to \textit{minimize} the ability of viruses to spread we can monitor (remove) nodes in the graph to reduce graph connectivity.
On the other hand, if want to \textit{maximize} network diffusion e.g., marketing campaign, we can use defense techniques like edge rewiring or addition to increase graph connectivity.
Below, we highlight the SIS infectious disease model and how \textsc{Tiger}\xspace{}'s defense techniques can help contain a simulated outbreak.

\begin{figure*}[t]
    \centering
    \includegraphics[width=0.95\textwidth]{figures/cascading_network.pdf}
    \caption{
    \textsc{Tiger}\xspace{}{} cascading failure simulation on the US power grid network when 4 nodes are overloaded according to the ID attack strategy.
    Time step 1: shows the network under normal conditions.
    Time step 50: we observe a series of failures originating from the bottom of the network.
    Time step 70: most of the network has collapsed.}
    \label{fig:cascading_network}
\end{figure*}

\smallskip
\noindent\textbf{Design and Implementation.}
Each node in the SIS model can be in one of two states, infected $I$ or susceptible $S$.
At each time step $t$, an infected node $v$ has a probability $\beta$ of infecting each of it's uninfected neighbors $u\in N(v)$.
After this, each infected node $v$ has a probability $\delta$ of healing and becoming susceptible again.
The relationship between the birth rate $\beta$, death rate $\delta$ and the spectral radius $\lambda_1$ of the graph has been a widely studied topic.
In \cite{wang2003epidemic}, they show that the spectral radius of a graph is closely tied to the epidemic threshold $\tau$ of a network in an SIS model.
In particular, they prove that $\frac{\beta}{\delta} < \tau=\frac{1}{\lambda_{1}}$.
This means for a given virus strength $s$, an epidemic is more likely to occur on a graph with larger $\lambda_1$.
As such, we say that a virus has an effective strength $s = \lambda_1 \cdot b / d$, where a larger $s$ means a stronger virus~\cite{tong2010vulnerability}.

\smallskip
\noindent\textbf{Simulating dissemination of entities.}
To help users visualize the dissemination process, we enable them to create visuals like Figure~\ref{fig:virus_simulation}, where we run an SIS computer virus simulation ($s=3.21$) on the Oregon-1 Autonomous System network~\cite{leskovec2005graphs}.
The top of Figure~\ref{fig:virus_simulation} shows the virus progression when defending 5 nodes selected by Netshield~\cite{tong2010vulnerability}.
By time step 1000, the virus has nearly died out.
The bottom of Figure~\ref{fig:virus_simulation} shows that the virus remains endemic without defense.
To assist users in summarizing model results over many configurations, we enable them to create plots like Figure~\ref{fig:virus_plots}, which show results for 5
SIS effective
virus strengths
$s=\{0, 3.21, 6.42, 9.63, 12.84\}$
over a period of 5000 steps.

\subsection{Cascading Failures}\label{subsec:cascading_failures}
Cascading failures often arise as a result of natural failures or targeted attacks in a network.
Consider an electrical grid where a central substation goes offline.
In order to maintain the distribution of power, neighboring substations have to increase production in order to meet demand.
However, if this is not possible, the neighboring substation fails, which in turn causes additional neighboring substations to fail.
The end result is a series of cascading failures i.e., a blackout~\cite{crucitti2004model}.
While cascading failures can occur in a variety of network types e.g., water, electrical, communication, we focus on the electrical grid.
Below, we discuss the design and implementation of the cascading failure model and how \textsc{Tiger}\xspace{}{} can be used to both \textit{induce} and \textit{prevent} cascading failures using the attack and defense mechanisms discussed in Sections~\ref{section:attack} and \ref{sec:defenses}, respectively.

\smallskip
\noindent\textbf{Design and Implementation.}
There are 3 main processes governing the network simulation---%
(1) \textit{capacity} of each node $c_v\in [0,1]$;
(2) \textit{load} of each node $l_v\in U(0, l_{max})$; and
(3) network \textit{redundancy} $r\in [0, 1]$.
The capacity of each node $c_v$ is the the maximum load a node can handle, which is set based on the node's normalized betweenness centrality~\cite{hernandez2013probabilistic}.
The load of each node $l_v$ represents the fraction of maximum capacity $c_v$ that the node operates at.
Load for each node $c_v$ is set by uniformly drawing from $U(0, l_{max})$, where $l_{max}$ is the maximum initial load.
Network redundancy $r$ represents the amount of reserve capacity present in the network i.e., auxiliary support systems.
At the beginning of the simulation, we allow the user to attack and defend the network according to the node attack and defense strategies in Sections~\ref{section:attack} and \ref{sec:defenses}, respectively.
When a node is attacked it becomes ``overloaded'', causing it to fail and requiring the load be distributed to the neighbors.
When defending a node we increase it's capacity to protect against attacks.

\begin{figure}[b]
    \centering
    \includegraphics[width=0.95\linewidth]{figures/cascading_plot.pdf}
    \vspace{-0.25cm}
    \caption{Effect of network redundancy $r$ on the US power grid where 4 nodes are overloaded using ID.
    When $r\geq 50\%$ the network is able to redistribute the increased load.}
    \label{fig:cascading_plot}
    \vspace{-0.5cm}
\end{figure}

\smallskip
\noindent\textbf{Simulating cascading failures.}
To help users visualize cascading failures induced by targeted attacks, we enable them to create visuals like Figure~\ref{fig:cascading_network}, where
we overload 4 nodes selected by the ID attack strategy on the US power grid dataset~\cite{watts1998collective} ($l_{max}=0.8$).
Node size represents capacity i.e., larger size $\rightarrow$ higher capacity, and color indicates the load of each node on a gradient scale from blue (low load) to red (high load); dark red indicates node failure (overloaded).
Time step 1 shows the network under normal conditions; at step 50 we observe a series of failures originating from the bottom of the network; by step 70 most of the network has collapsed.
To assist users in summarizing simulation results over many configurations, we enable them to create plots like Figure~\ref{fig:cascading_plot}, which shows the effect of network redundancy $r$ when 4 nodes are overloaded by the ID attack strategy.
At $50\%$ redundancy, we observe a critical threshold where the network is able to redistribute the increased load.
For $r<50\%$, the cascading failure can be delayed but not prevented.

\section{Conclusion}\label{sec:conclusion}
The study of network robustness is a critical tool in the characterization and understanding of complex interconnected systems.
Through analyzing and understanding the robustness of these networks we can:
(1) quantify network vulnerability and robustness,
(2) augment a network's structure to resist attacks and recover from failure, and
(3) control the dissemination of entities on the network (e.g., viruses, propaganda).
While significant research has been conducted on all of these tasks, no comprehensive open-source toolbox currently exists to assist researchers and practitioners in this important topic.
This lack of available tools hinders reproducibility and examination of existing work, development of new research, and dissemination of new ideas.
To address these challenges, we contribute \textsc{Tiger}\xspace{}{}, an open-sourced Python toolbox containing 22 graph robustness measures with both original and fast approximate versions;
17 failure and attack strategies; 15 heuristic and optimization based defense techniques; and 4 simulation tools.

redpajama_set_name: RedPajamaArXiv