Survivorship bias

https://en.wikipedia.org/wiki/Survivorship_bias

Tuesday, June 12, 2018

Smooth function with first derivative continuity.

Tuesday, February 28, 2017

Open cast mining problem - Linear Matrix Inequality method

Mining problem is a famous one in operations research, in this post I show my solution for this problem using linear matrix inequality representation as follows:

where f = value - cost for block i and n = 30. Consider the constraints to extract block #16,
then the sum of these constraints will be as follows,

rearranging this term,
this constraint is the first row of the product AX i.e,,
using the same way to describe the constraints for the other blocks, then this ends up with the above formulation.

Results:  Optimal value = 17500,  Blocks to be extracted: 0, 1 ,2 , 4, 5, 6, 8, 9, 10, 16, 17, 19, 20, 25.

Heuristic solution by Matlab:

%solving without solvers - heuristic solution

clear
clc

cost = [3000*ones(1,16), 6000*ones(1,9), 8000*ones(1,4), 10000];

value = 2000* [1.5, 1.5, 1.5, 0.75,...
1.5, 2, 1.5, 0.75,...
1, 1, 0.75, 0.5,...
0.75, 0.75, 0.5, 0.25,...
4, 4, 2,...
3, 3, 1,...
2, 2, 0.5,...
12, 6,...
5, 4, ...
6];

neighbors_16=[[16,0], [16,1], [16,4], [16,5]];
neighbors_17=[[17,1], [17,2], [17,5], [17,6]];
neighbors_25=[[25,16], [25,17], [25,19], [25,20],...
[25,0], [25,1], [25,2], [25,4], [25,5], [25,6],...
[25,8], [25,9], [25,10]];

neighbors_26=[[26,17], [26,18], [26,20], [26,21],...
[26,1], [26,2], [26,3], [26,5], [26,6], [26,7],...
[26,9], [26,10], [26,11]];

neighbors_27=[[27,19], [27,20], [27,22], [27,23],...
[27,4], [27,5], [27,6], [27,8], [27,9], [27,10],...
[27,12], [27,13], [27,14]];

neighbors_28=[[28,20], [28,21], [28,23], [27,24],...
[27,5], [28,6], [28,7], [28,9], [28,10], [28,11],...
[28,13], [27,14], [27,15]];

neighbors_29=[[29, 0], [29, 1], [29,2], [29,3],...
[29, 4], [29, 5], [29,6], [29,7],...
[29, 8], [29, 9], [29,10], [29,11],...
[29, 12], [29, 13], [29,14], [29,15],...
[29, 16], [29, 17], [29,18], [29,19],...
[29, 20], [29, 21], [29,22], [29,23], [29,24]];

edges_total=[neighbors_16 zeros(1,50-length(neighbors_16));...
neighbors_17 zeros(1,50-length(neighbors_17));...
neighbors_25 zeros(1,50-length(neighbors_25));...
neighbors_26 zeros(1,50-length(neighbors_26));...
neighbors_27 zeros(1,50-length(neighbors_27));...
neighbors_28 zeros(1,50-length(neighbors_28));...
neighbors_29 zeros(1,50-length(neighbors_29))];

p_total=value-cost;

[p_max_total,l_max_total]=max(p_total);

index=find(value-cost > 0);

block_index=index-1;

value=value(index);

cost=cost(index);

p=value-cost; %non zero profits

[p_max,l_max]=max(p);

edges = edges_total(l_max-1,[1:length(neighbors_25)]);

x=edges(2:2:(length(edges)));

optimal_obj_value=sum(p_total(x+1))+max(p)

blocks_extracted=sort([x (l_max_total-1)])

Monday, October 10, 2016

DNA Sequencing Analysis

 Photo source: lectures of Prof. David Tse
Next talk by me and my colleague Sayed Hegazy ... We'll make it great!

Saturday, September 26, 2015

Abstract:

In this talk, we highlight on the fundamental concepts of digital signal processing on graphs including graph signals and graph filters, graph Fourier transform , graph frequency, and spectrum ordering, and compare them with their counterparts from the classical signal processing theory. Then, we consider product graphs as a graph model that helps in the implementation efficiency. (~temporary abstract)

-This talk will be held on 07/10/2015
-Presentation will be available after talk.

[Presentation]

Tuesday, June 30, 2015

The more I practice, the more I get lucky...

Welcome to StackEdit!

Hey! I’m your first Markdown document in StackEdit1. Don’t delete me, I’m very helpful! I can be recovered anyway in the Utils tab of the Settings dialog.

Documents

StackEdit stores your documents in your browser, which means all your documents are automatically saved locally and are accessible offline!

Note:

• StackEdit is accessible offline after the application has been loaded for the first time.
• Your local documents are not shared between different browsers or computers.
• Clearing your browser’s data may delete all your local documents! Make sure your documents are synchronized with Google Drive or Dropbox (check out the Synchronization section).

Create a document

The document panel is accessible using the button in the navigation bar. You can create a new document by clicking New document in the document panel.

Switch to another document

All your local documents are listed in the document panel. You can switch from one to another by clicking a document in the list or you can toggle documents using Ctrl+[ and Ctrl+].

Rename a document

You can rename the current document by clicking the document title in the navigation bar.

Delete a document

You can delete the current document by clicking Delete document in the document panel.

Export a document

You can save the current document to a file by clicking Export to disk from the menu panel.

Tip: Check out the Publish a document section for a description of the different output formats.

Synchronization

Note:

• Full access to Google Drive or Dropbox is required to be able to import any document in StackEdit. Permission restrictions can be configured in the settings.
• If you experience problems saving your documents on Google Drive, check and optionally disable browser extensions, such as Disconnect.

Open a document

You can open a document from Google Drive or the Dropbox by opening the Synchronize sub-menu and by clicking Open from…. Once opened, any modification in your document will be automatically synchronized with the file in your Google Drive / Dropbox account.

Save a document

You can save any document by opening the Synchronize sub-menu and by clicking Save on…. Even if your document is already synchronized with Google Drive or Dropbox, you can export it to a another location. StackEdit can synchronize one document with multiple locations and accounts.

Synchronize a document

If you just have modified your document and you want to force the synchronization, click the button in the navigation bar.

Note: The button is disabled when you have no document to synchronize.

Manage document synchronization

Since one document can be synchronized with multiple locations, you can list and manage synchronized locations by clicking Manage synchronization in the Synchronize sub-menu. This will let you remove synchronization locations that are associated to your document.

Note: If you delete the file from Google Drive or from Dropbox, the document will no longer be synchronized with that location.

Blockquote

Publication

Once you are happy with your document, you can publish it on different websites directly from StackEdit. As for now, StackEdit can publish on Blogger, Dropbox, Gist, GitHub, Google Drive, Tumblr, WordPress and on any SSH server.

Publish a document

You can publish your document by opening the Publish sub-menu and by choosing a website. In the dialog box, you can choose the publication format:

• Markdown, to publish the Markdown text on a website that can interpret it (GitHub for instance),
• HTML, to publish the document converted into HTML (on a blog for example),
• Template, to have a full control of the output.

Note: The default template is a simple webpage wrapping your document in HTML format. You can customize it in the Advanced tab of the Settings dialog.

Update a publication

After publishing, StackEdit will keep your document linked to that publication which makes it easy for you to update it. Once you have modified your document and you want to update your publication, click on the button in the navigation bar.

Note: The button is disabled when your document has not been published yet.

Manage document publication

Since one document can be published on multiple locations, you can list and manage publish locations by clicking Manage publication in the menu panel. This will let you remove publication locations that are associated to your document.

Note: If the file has been removed from the website or the blog, the document will no longer be published on that location.

Markdown Extra

StackEdit supports Markdown Extra, which extends Markdown syntax with some nice features.

Tip: You can disable any Markdown Extra feature in the Extensions tab of the Settings dialog.

Tables

Markdown Extra has a special syntax for tables:

Item Value
Computer $1600 Phone$12
Pipe 1 You can specify column alignment with one or two colons: Item Value Qty Computer1600 5
Phone $12 12 Pipe$1 234

Definition Lists

Markdown Extra has a special syntax for definition lists too:

Term 1
Term 2
Definition A
Definition B
Term 3

Definition C

Definition D

part of definition D

Fenced code blocks

GitHub’s fenced code blocks are also supported with Highlight.js syntax highlighting:

// Foo
var bar = 0;

Tip: To use Prettify instead of Highlight.js, just configure the Markdown Extra extension in the Settings dialog.

• about Prettify syntax highlighting here,
• about Highlight.js syntax highlighting here.

Footnotes

You can create footnotes like this2.

SmartyPants

SmartyPants converts ASCII punctuation characters into “smart” typographic punctuation HTML entities. For example:

ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

You can insert a table of contents using the marker [TOC]:

MathJax

You can render LaTeX mathematical expressions using MathJax, as on math.stackexchange.com:

The Gamma function satisfying $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$ is via the Euler integral

Tip: To make sure mathematical expressions are rendered properly on your website, include MathJax into your template:

<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>

UML diagrams

You can also render sequence diagrams like this:

And flow charts like this: